How lmarzen/esp32-weather-epd works
This repository implements an ESP32 e-paper weather station. On wake, firmware checks battery state, connects to Wi-Fi, synchronizes time, fetches weather and air-quality data, reads the indoor sensor, renders the display, then schedules deep sleep. Configuration and AQI support provide important product capabilities. The sampled source confirms the main orchestration and network helpers; renderer internals and some configurable display features are represented from the README and tree, so their internal wiring is not inferred.
Main entry points: main.cpp Wake cycle · client_utils.cpp Wi-Fi, time, API client · renderer.h Weather renderer · display_utils.h Display control
Components 15
Device firmware
- Wake cycle
platformio/src/main.cpp - Power and sleep
platformio/src/main.cpp - Indoor sensor
platformio/src/main.cpp - Persistent preferences
platformio/src/main.cpp
Network and data
- Wi-Fi, time, API client
platformio/src/client_utils.cpp - Weather response models
platformio/include/api_response.h
Display and AQI
- Weather renderer
platformio/include/renderer.h - Display control
platformio/include/display_utils.h - AQI scales
platformio/lib/pollutant-concentration-to-aqi/aqi.c - Fonts and icons
platformio/lib/esp32-weather-epd-assets
Configuration
- Device settings
platformio/include/config.h
Other components
- OpenWeatherMap
- NTP time service
- E-paper panel
- Device owner
Connections 14
- Device owner → Wake cycle: initiates refresh
- Wake cycle → Power and sleep: checks battery; schedules sleep
- Wake cycle → Persistent preferences: reads and updates
- Wake cycle → Wi-Fi, time, API client: requests Wi-Fi, time, and forecasts
- Wi-Fi, time, API client → OpenWeatherMap: sends API requests
- Wi-Fi, time, API client → NTP time service: synchronizes time
- Wi-Fi, time, API client → Weather response models: parses responses
- Wake cycle → Indoor sensor: reads indoor conditions
- Wake cycle → Weather renderer: supplies weather and sensor data
- Weather renderer → Display control: draws display pages
- Display control → E-paper panel: updates panel
- Weather renderer → Fonts and icons: uses visual assets
- Wake cycle → Device settings: uses configured options
- AQI scales → Weather renderer: provides AQI scales