https://github.com/b1f6c1c4/e-curtain
Minimalistic IoT on Raspberry Pi, C++, Matlab/Simulink, Rust, JavaScript
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (8.9%) to scientific vocabulary
Keywords
Repository
Minimalistic IoT on Raspberry Pi, C++, Matlab/Simulink, Rust, JavaScript
Basic Info
Statistics
- Stars: 6
- Watchers: 5
- Forks: 1
- Open Issues: 2
- Releases: 0
Topics
Metadata Files
README.md
e-curtain
Minimalistic IoT on Raspberry Pi
Features
- Everything is DIY
- Automatic bedroom temperature control for optimal sleep quality
- Automatic room ventilation for optimal air quality
- Automatic weather information retrival
- Automatic room temperature measurement
- Automatic curtain control
- Automatic window control
- Automatic AC cooling/heating/ventilating/off mode selection
- Automatic duct gate (cut-off) control
- Automatic fan control (on/off)
- Automatic space heater control using IR
- Keyfobs for easy global mode selection
- Web-based dashboard for monitoring
Hardware requirement
- Raspberry Pi Zero W (x3)
- I2C-based temperature sensor
- Continuous rotation servo
- For curtain control
- Stepper with controller
- For window control
- Servo (x4)
- For AC mode selection (x2)
- For duct gate control (x2)
- Relay
- For fan control
- IR transmitter
- For space heater remote control
- Photoresistor
- For space heater control feedback
- RF keyfob(s) with receiver
- For global mode selection
- Other stuff (electrical)
- Power adapters (x3)
- Resistors, capacitors, transistors
- Breadboards
- Jump wires
- Headers
- Other stuff (mechanical)
- AC unit
- Space heater
- Curtain with pulleys
- Duct gate (x2)
- Lead screw, copper nut, shaft coupler
- Screws, washers, nuts
- Duct tapes
- Auxilliary tools
- Oscilloscope and probes
- RF receiver
- Glue gun
- Screw driver
- Power drill
Layout
HOST0: The central controller, runningF-G0- Servo x4
- RF receiver
HOST1: The bedroom controller, runningH1-G1- Temperature sensor
- Continuous rotation servo
- Stepper with controller
- Relay
- IR transmitter
- Photoresistor
HOST2: The living room controller, runningH2andH0-C- Temperature sensor
Hardware setup
Read the source code and you will figure out.
Software setup
You need cmake, make, ssh, bash, node/npm, rustc/cargo
Prepare cross-compile toolchain
- On a Linux machine, install crosstools-ng
Get the source code:
bash git clone --depth=1 https://github.com/b1f6c1c4/e-curtain.git cd e-curtainRun the following:
bash cd ct-ng ct-ng build.128 # Depends on how many cores you have
Prepare toolchain for rust
bash
sudo systemctl start docker
cargo install cross
MATLAB Simulink code generation
You simply generate script/libdumbac.slx and put the result in a folder called libdumbac.
You may need licences for doing this.
We also need you know your MATLAB installation, so run the following:
bash
ln -s /opt/MATLAB/R2020a matlab
Compile
bash
make build -j128 # Depends on how many cores you have
Deploy
bash
make HOST0=192.168.x.x HOST1=192.168.x.x HOST2=192.168.x.x deploy
You need to put weather API key into $HOST2:/etc/e-curtain/weather.json.
Data log are written to $HOST2:/var/log/e-curtain.bin.
We are also utilizing $HOST2:/var/lib/e-curtain/ for persistent storage.
License
MIT
Owner
- Login: b1f6c1c4
- Kind: user
- Location: NJ, USA
- Company: Princeton University
- Repositories: 26
- Profile: https://github.com/b1f6c1c4
52BE D143 A92D BE96 2B83 092B 9BAC 0164 9600 1E70
GitHub Events
Total
Last Year
Issues and Pull Requests
Last synced: over 1 year ago
All Time
- Total issues: 3
- Total pull requests: 54
- Average time to close issues: 11 days
- Average time to close pull requests: 1 day
- Total issue authors: 2
- Total pull request authors: 2
- Average comments per issue: 1.67
- Average comments per pull request: 0.13
- Merged pull requests: 50
- Bot issues: 0
- Bot pull requests: 52
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- b1f6c1c4 (2)
- IoriOikawa (1)
Pull Request Authors
- dependabot[bot] (51)
- b1f6c1c4 (2)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- 223 dependencies
- actix-files 0.4.0
- actix-service 1.0.0
- actix-web 3
- crossbeam-channel 0.4.0
- env_logger 0.7
- futures 0.3.1
- json 0.12
- lazy_static *
- log *
- notify 4.0.12
- num_enum 0.5
- parking_lot *
- serde 1.0
- serde_json 1.0
- strum 0.19
- strum_macros 0.19
- tokio 0.2
- 1548 dependencies
- @react-corekit/use-interval ^1.1.1
- @testing-library/jest-dom ^4.2.4
- @testing-library/react ^9.3.2
- @testing-library/user-event ^7.1.2
- dayjs ^1.9.4
- grommet ^2.15.2
- grommet-controls ^3.0.1
- grommet-icons ^4.5.0
- ky ^0.24.0
- lodash ^4.17.21
- numbro ^2.3.2
- react ^16.13.1
- react-dom ^16.13.1
- react-gauge-chart ^0.2.5
- react-scripts 4.0.0
- styled-components ^5.2.0