u/deproxynn

▲ 12 r/IOT

https://preview.redd.it/vipml6yp90zg1.jpg?width=1280&format=pjpg&auto=webp&s=8d4aa1392329dc32b54a2f6e26a6f71945527cef

Hey everyone,

I wanted to share an open-source weather station I recently finished designing and coding. My goal was to create something small, clean, and extremely power-efficient that I could just leave on my desk.

Here is how it works:

  • Fetches real-time weather data (City, Temp, Real Feel, Min/Max, Wind, Sunrise/Sunset) via the OpenWeatherMap API.
  • Uses a Waveshare 1.54" Tri-Color (Red/Black/White) e-Paper display with custom-designed, pixel-perfect icons.
  • Aggressive Deep Sleep: It wakes up, updates the screen, and deep sleeps for 4 hours. If it fails to fetch data, it does a "Silent Fail" (preserves the last known weather on the screen to avoid ugly error messages) and retries in 10 minutes.

The Hardware & Custom Enclosure: The core of the project runs on a Seeed Studio XIAO ESP32C3. I specifically chose the XIAO because it has a built-in battery charging circuit. This means you can wire a single 18650 Li-ion battery directly to the BAT+ and BAT- pads underneath the board. You don't need any external charging modules or boost converters! You just plug a Type-C cable into the XIAO to charge the device.

I also designed a custom 3D printable enclosure using OpenSCAD to house everything perfectly. It uses M3 brass inserts and screws for a premium, sturdy feel.

(Note: If you have a classic ESP32-WROOM lying around, the code and documentation fully support that too, you'll just need an external charger/boost converter for the battery).

All the code, Fritzing wiring diagrams, and the OpenSCAD 3D models are fully open-source.

GitHub (Code, Wiring & Docs)
MakerWorld (3D Models)

Let me know what you think! I'm really happy with how clean the hardware assembly turned out.

reddit.com
u/deproxynn — 10 days ago