← All projects in the gallery
Heating Thermostat
by jonathan harrocks
A thermostat that behaves like one.
The dial writes a setpoint and the firmware reads it back, so the number on screen is the number the logic uses. Heat comes on 0.3 C below target and off 0.2 C above it - the gap is what stops a relay chattering when the room sits exactly on the setpoint. Boost adds 2 C for half an hour and counts itself down a minute at a time.
A BME280 on the capacitive CYD CN1 connector measures the room.
The settings screen is the same dial showing the boost run down, so the two screens share one backdrop.
Exported with Home Assistant turned on, the setpoint, the temperature and the heat demand all appear as entities - so a schedule can live in Home Assistant while the panel keeps working when the network does not.
About this design
Heating Thermostat is an LVGL interface for the ESP32-2432S028C (capacitive CYD) (ILI9341 320 x 240, CST820 touch), with 2 screens and 27 widgets, made for ESPHome on LVGL 9.
Screens
- Main
- Settings
Hardware and build
- Board
- ESP32-2432S028C (capacitive CYD)
- MCU
- ESP32 (WROOM / WROVER)
- Display
- ILI9341
- Resolution
- 320 x 240
- Touch
- CST820
- Graphics library
- TFT_eSPI
- LVGL
- v9
- Exports to
- ESPHome
- Peripherals
- BME280
- Libraries
- lvgl, TFT_eSPI, Adafruit BME280 Library
Notes from the author
A room thermostat with a dial, hysteresis, and a boost that expires by itself.
Using it
Open a copy in the designer and it is yours to edit: restyle the screens, move it to another board, and export the ESPHome project. Designing is free, and a copy needs no account. Open the designer.