Shows daily weather forecasts on a RGB LED stripe connected to an ESP8266.
The next 8 days are represented each by one animated, colored pixel.
Uses local weather forecast data from OpenWeatherMap (formerly used DarkSky API).
- Yellow: sunny.
- Fading between yellow and white: cloudy (more yellow or white depending on cloud coverage).
- A darker steady white shows fog.
- Blue: rain, the heavier, the more it flickers.
(Should be pretty self-explanatory)
- ESP8266 board such as NodeMCU, Adafruit Huzzah Feather or WeMos D1 mini.
- A NeoPixel compatible LED stripe with exactly 8 LEDs.
- PlatformIO (or the Arduino IDE).
- OpenWeatherMap API account (you only need the free account tier)
When using the Arduino IDE, install these:
- ESP8266 core for Arduino (via built-in board manager)
- Libraries (via built-in library manager):
- ArduinoJson 6.x +
- NeoPixelBus by Makuna 2.x +
- Connect the LEDs to +5V (red) and ground (black), the third data line goes to
GPIO3
(RX
on WeMos D1 mini).- Note: on ESP8266, only
GPIO3
will work.
- Note: on ESP8266, only
- Enter your WiFi credentials, location and the OpenWeatherMap API key into the code (definitions at the top).
- Connect the ESP8266 and program it:
- with PlatformIO:
platformio run -t upload
(or the run/upload button in VSCode). - or with Arduino IDE: open
WeatherLEDs/WeatherLEDs.ino
and click the run/upload button.
- with PlatformIO:
A not-so-perfect 3D printable enclosure (pictured above) is included (3D print parts/WeatherLEDs_V8.stl
),
suitable for a stripe with 8 30mm spaced, 5x5mm quadratic WS2812B RGB LEDs, and a WeMos D1 mini board.