ESP32-S3 Smart Home Control Panel (Waveshare ESP32-S3-Touch-LCD-4B LCD, LVGL, MQTT & Home Assistant)
Hi everyone,
I wanted to share a project I’ve been working on: touch-screen Smart Home Control Panel designed specifically for the Waveshare ESP32-S3-Touch-LCD-4B.
The goal was to create a sleek, reliable interface that integrates directly with Home Assistant via MQTT while handling weather, time, and power management locally.
Key Features:
- Smart Home Control: Button grid for device control (Lights, Fans, AC, etc.) with bi-directional MQTT sync. (WIP)
- Hybrid Location/Weather: Automatic IP-based location detection or manual search (Open-Meteo API). It includes a dynamic UI that changes based on local weather and day/night cycles.
- Notification System: Supports MQTT-based alerts from Home Assistant with an on-device notification history center.
- System Management: Full on-screen WiFi manager (scan/save networks), NTP/RTC timekeeping, and brightness control via the AXP2101 PMU.
- Power Management: Deep sleep and screensaver support with hardware-level battery monitoring.
Technical Specs:
- Hardware: Waveshare ESP32-S3-Touch-LCD-4B (480x480 RGB interface).
- Graphics: Designed in SquareLine Studio and powered by LVGL.
- Storage: Custom partition scheme (10MB App) to accommodate high-res assets.
- Framework: Arduino IDE with ESP32 Core v3.x.
Project Repository:
You can find the full source code, library requirements, and partition configurations here:
I'm still working on refining the MQTT bi-directional sync (WIP), so any feedback or suggestions on the UI/logic are more than welcome!
Happy coding!