Teaching prototype builtPID minibot
A heading-controlled robot and live PID-tuning remote, developed as a reference for a 14-week WE FIRST workshop series.
The forecast, before the phone.

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.
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.
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.
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.
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.
Two colour engines share the display through a scheduler and fader. Select a stage to explore the flow.
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.