I am currently working on a new thermostat for my flat. I tried to boost it with hardware that allows me to go as far as possible for this project. This is my way of learning programming :D.
It is fully working, but it is still in the early stage. Some data is stored in the EEPROM, but there is currently no menu yet.
The hardware used:
ESP32 Dev Board I2C BME680 I2C MCP23017 I2C RTC DS13017z SPI ST7735 433 Mhz transmitter 433 Mhz Relay Module
All the I2C hardware is using the same hardware I2C port on the esp32.
The ESP32 works using the Blynk Platform and it displays the data on ST7735 using the UCGLIB. The IO pins are extended using the I2c MCP23017 giving the chance to add enough buttons. It uses the Adafruit Library: https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library The offline time kept by an external I2C RTC DS13017z using a library that does not conflict with the Online RTC used by Blynk: https://github.com/Seeed-Studio/RTC_DS1307
Feel free to give me advice.
I am looking for an algorithm that allows me to tell the week nr in the year so I cover the weekly rotating shifts.
Trying to find the best way of creating the menu/submenu for setting up the time, mode, time interval,