Updated
over 5 years
ago.
4 hacker ♥️.
1 follower.
Build a smart thermostat using an Adafruit Feather HUZZAH ESP8266 board, a DHT22 temperature and humidity sensor and a 2.4 TFT touch panel.
The requirements are:
- Show current temperature and humidity
- Show current set point and heater status (on / off)
- Weekly schedule, configurable using the TFT and remotely
- Temporal set point override using the TFT and remotely
- Automatic away mode (geofencing)
- Show wifi status, schedule status, away status and current set point overrides
- No dependencies on protocols or cloud services for IoT by third parties.
Looking for hackers with the skills:
Nothing? Add some keywords!
This project is part of:
Hack Week 17
Comments
-
about 6 years ago by scabrero | Reply
Video
After a week of work this is how it looks like
Done
- Using Home Assistant hosted in a NAS box for geofencing and remote management using MQTT
- Connects to WiFi on boot
- Connects to MQTT broker and sends the status at regular intervals
- Receive remote commands from MQTT
- As the board does not have battery, gets time from NTP servers
- DST rules
- Hold modes: ** Hold until overrides schedule until a given time ** Hold permanent overrides the schedule forever (disable schedule)
- Away mode
- Home Assistant receive location from a GPS tracker installed in the mobile phone
- Away status is set remotely by Home Assistant
- Heater control loop, evaluate holds and away status to control the relay.
- Heater min run time, to avoid switching the heater too fast
- Touch UI
- Status icons are bitmaps
- Controls are drawn using the Adafruit GFX library primitives
- Scheduler
- Two modes, 5+2 and weekly schedule
- Six intervals per day
- Sensors
- Read temperature and humidity
Pending tasks
- Cleanup the code, add licence and make it available
- WiFi setup using WifiManager plugin
- Show boot progress on display
- Show errors on display
- Show humidity on idle screen
- Print a 3D case
- Add more menu pages to configure settings
- Handle reset button to format flash if file system gets corrupted
Similar Projects
This project is one of its kind!