All projects
EMBEDDED & CONTROLS

Weather lights

The forecast, before the phone.

  • ESP32
  • Non-blocking C++
  • Product development
The weather-light electronics assembled on a prototype board, connected to the LED system.
The prototype-board electronics for the lights installed under my bed.

An ESP32 lighting system that turns the morning forecast into colour, brightness and animation, without needing to open a phone.

I would check the weather to decide what to wear, then get distracted by messages, email and social media. I also prefer waking up to light rather than a noisy alarm. This project brings those two needs together.

My contribution

  • Design and build the electronics on a prototype board.
  • Write the firmware, display logic and morning schedule.
  • Design and print the enclosure.
  • Install the lights under my bed and refine their daily operation.
01 / THE PROCESS

A small display for an everyday decision

The LED strip alternates between temperature and weather. Temperature colours step through the morning, afternoon, evening and night forecast. Weather uses colour and effects such as rain flicker, lightning flashes and sunbeam patterns, with brightness related to cloud cover.

The display runs for 20 minutes at 7 a.m. on weekdays and 9 a.m. on weekends, then uses deep sleep between morning showings. It is deliberately something I can read without opening another screen.

02 / THE PROCESS

Keeping the colour engines from fighting

Getting the temperature fades and weather effects to behave together was the main software challenge. Pattern effects could interfere with a transition and produce unexpected colours.

I separated temperature and weather into two colour engines, coordinated by a scheduler and fader. Weather effects pause while the fade runs, so the transition has a clear owner instead of competing updates.

03 / THE PROCESS

Making it work at seven in the morning

Connection handling first attempts a fast reconnect to the last network, then retries a full connection. If necessary it sleeps briefly and retries again, eventually showing a distinct failure-only colour indication when weather data cannot be obtained.

Repeated ESP32 startup and serial failures led me to a supply-brownout problem during boot and Wi-Fi connection. Adding electrolytic and ceramic capacitance around the buck converter, plus capacitance between 3.3 V and ground, stabilized the board in my use. The circuit remains a prototype-board build, not a custom-manufactured PCB.

WHERE IT LANDED

Built for my own morning routine.

I completed the project in late August and have used it under my bed for about a month at the time of writing. A personal frustration became a product I could design, build and use in my own room.

THE SOFTWARE IDEA

One transition. One owner.

Two colour engines share the display through a scheduler and fader. Select a stage to explore the flow.

ENGINE ATemperature
SCHEDULERFader
ENGINE BWeather

The temperature engine steps through morning, afternoon, evening and night forecast indications.

Illustrative control flow based on the implemented architecture. This does not reproduce the device’s exact colours or timing.