As a fan of tinkering with new hardware, I couldn’t resist pairing an ESP32 microcontroller with an ePaper display. The result? A slightly over-engineered weather station - with a touch optional AI magic.
Hardware
- LilyGO T5 v2.13 e-paper display board:
- 2.13" ePaper display
- ESP32
- Built-in battery charging circuit
- 2 buttons
- 3D Printed Case
- LiPo battery: 3.7V 500mAh recommended (fits in case, ~1 month battery life)
Since the LilyGO T5 board comes pre-assembled with the ePaper display, I didn’t have to worry about wiring it up myself. The board has a built-in battery charging circuit, so I can power it with a LiPo battery and charge it via USB. Additionally, the board has two buttons: a reset button and an additional button that I can use for various purposes.
Software
The source code for this project is available on GitHub.
Features
- Display weather forecast for the current day and location
- Meteogram view
- AI-powered weather summaries (requires OpenAI API key)
- Configuration via web interface
- Deep sleep mode to save power
Configuration
Once powered on for the first time, the device creates a WiFi access point that you can connect to. You can then configure your WiFi network, location, and optionally, your OpenAI API key and the style of the AI summary.
After connecting to the access point, your mobile browser will automatically open the configuration page.
After saving the configuration, the device will reboot and connect to your WiFi network. It will then fetch the weather data using the Open-Meteo API and display it on the ePaper screen.
The board comes with an on/off switch, along with two buttons. The first button on the left will reset the device. Unfortunately, persisting the configuration is not supported, so you will have to reconfigure it every time you power it on. The second button is used to cycle through the different screens: current weather, meteogram view, and AI summary.
AI Summary
The AI summary is an optional feature that uses the OpenAI API to generate a weather summary based on the current weather forecast. It was originally meant as a gimmick but turned out to be quite funny not to show it. You can configure the style of the summary, which leaves room for creativity:
Using the prompt style: “Marvin the depressed robot from Hitchhiker’s Guide to the Galaxy”.
Conclusion
Overall, this project was a fun way to experiment with the ESP32 and ePaper display. The LilyGO T5 board made it easy to get started, since it comes pre-assembled with the display and has a built-in battery charging circuit - saving me the hassle of wiring everything up myself. Or even worse, soldering the display to the ESP32 🫠.
I might add more features in the future to support different displays or sensors, but for now, I’m happy with the result.