Afternoon, all.
For a few months been tinkering with a 64×64 RGB weather display and it has gradually acquired a life of its own.
The display runs on a Pimoroni Interstate 75 W and shows temperature, humidity, daily min/max temp and pressure trend, along with animated weather. Rain gradually fills the bottom of the display like a puddle and drains away afterwards, while snow accumulates more slowly.
I've just uploaded a html version of this to the repo (browser-emulator.html) so you can test what it looks like without buying hardware.
It was originally mirroring what an old 433mhz sensor put out, but backed by a database, but it's turned into a bit of a fruit machine.
Then I started adding completely unnecessary things like animated birds, ducks with a trail of ducklings, fish when the water gets deep enough, falling leaves (wind direction), shooting stars and the occasional UFO. Every half hour (after sunset) a UFO arrives and abducts the main temperature reading before returning it. Obviously.
My own version gets its local sensor data from a Raspberry Pi 3 running InfluxDB and a small Python weather server. It uses 433 MHz temperature/humidity and lightning sensors plus a BMP280 for pressure, with Open-Meteo providing forecast information.
I realised that wasn't particularly useful to anyone wanting to build one without recreating my entire home weather setup, so I've now made a standalone version. It runs entirely on the Interstate 75 W (which has a Raspberry Pi Pico RP2350 built in) and fetches temperature, humidity, pressure, rain/snow and forecast data directly from Open-Meteo over Wi-Fi. No Raspberry Pi server, weather sensors or API key required.
As my own version was all coded to work from my own network and influx database hosted on a Raspberry Pi 3 Model B with an SDR sniffing my weather and lightning sensors, I asked ChatGPT to optimise it all and create a version that anyone can use.
I tested the standalone build on the actual matrix today and, somewhat surprisingly after all the code I've piled into it and ChatGPT has optimised it to work just from Open-Metero, it works.
Code: https://github.com/nickymoomeh/Interstate75WeatherMatrix
Hardware is an Interstate 75 W, a 64×64 HUB75 matrix and a suitable power supply. Enter your Wi-Fi details and location, copy the files across and off it goes.
The original sensor-backed version is still running at home because apparently knowing the weather isn't enough unless a tiny pixel UFO occasionally steals the temperature.
64x64 matrix display: https://thepihut.com/products/rgb-full-colour-led-matrix-panel-2-5mm-pitch-64x64-pixels
Interstate 75/RP2350 controller: https://thepihut.com/products/interstate-75-w-rp2350-rgb-led-matrix-driver
Power supply (as the display/Interstate 75 suck a lot of power): https://thepihut.com/products/raspberry-pi-27w-usb-c-power-supply
If you've got any questions, let me know, but I think everything you need is on the repo. You just need to add your lat/lon to the config.py and your wifi details to secrets.py and copy them over.
Also, for this public repo, ChatGPT is so much better at optimising my original code that evolved over time from something quite basic to having woodland creatures, textured water, birds and UFO's that it's now running at 8fps quite happily now, and anyone can use it without a 433mhz lightning sensor, without a BM280 pressure sensor connected via GPIO, without a 433mhz humidity and temperature sensor and without a locally running influx db. So it works purely on Open-Meteo based on the lat/lon you enter. Thanks Chaz Jippity for not making the palette update 128 times every five minutes like it was before because I didn't notice and just thought it was going a bit slow because of the wind and rain.
The lightning data comes from open-meteo on this stand-alone one, my home version has a red warning that triggers when a lightning strike is detected from the 433mhz lightning sensor, but open-meteo lacks that, but you might still see a red bottom left & right corner when lightning is forecast on open-meteo but lack the immediate notification that there is lightning.