Minimalistic IoT on Raspberry Pi, C++, Matlab/Simulink, Rust, JavaScript.
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:
git clone --depth=1 https://github.com/b1f6c1c4/e-curtain.git cd e-curtain - 
Run the following:
cd ct-ng ct-ng build.128 # Depends on how many cores you have
 
Prepare toolchain for rust
sudo systemctl start docker
cargo install crossMATLAB 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:
ln -s /opt/MATLAB/R2020a matlabCompile
make build -j128 # Depends on how many cores you haveDeploy
make HOST0=192.168.x.x HOST1=192.168.x.x HOST2=192.168.x.x deployYou 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.
from https://github.com/b1f6c1c4/e-curtain 
No comments:
Post a Comment