This ESP32 project replaces a leaking shower head with a live temperature display that glows from blue to red
At a glance:
- ESP32 drives two 5×8 addressable LED matrices to show water temperature on a ceiling‑mounted shower head
- OneWire temperature sensor (GPIO 12) feeds live data to the ESP32, which changes colors from blue (cold) to white (comfortable) to red (hot)
- The entire firmware was generated in about 10 minutes with AI prompting, turning a broken fixture into a smart UI
How the hack works
The Reddit user Hungry_Preference107 started with a ceiling‑mounted shower head that had begun leaking. Rather than replace the whole assembly, they repurposed the existing hardware and added three key components:
- Two 5×8 addressable LED matrices mounted inside the individual spouts, wired to GPIO 2 on the ESP32
- A OneWire temperature sensor (commonly a DS18B20) clamped to the water pipe and connected to GPIO 12
- An ESP32 development board that reads the sensor, calculates the temperature range, and drives the LEDs accordingly
The LED matrices act as a tiny dot‑matrix screen. When the water temperature is below 20 °C the display glows blue, between 20 °C and 35 °C it turns white, and above 35 °C the LEDs flash red. The current temperature value is also rendered as numeric characters on the matrix, giving a clear visual cue before stepping into the shower.
Coding was a breeze thanks to AI
The author reports that writing the firmware took roughly ten minutes because they used an AI code‑generator. The prompt described the hardware layout (two 5×8 matrices on GPIO 2, OneWire sensor on GPIO 12) and the desired color logic. The AI returned a complete Arduino‑style sketch that:
- Initializes the OneWire bus and reads the temperature every second
- Maps the temperature to a hue range (blue → white → red)
- Updates the LED matrices with both the color background and the numeric temperature display
Because the AI handled the boilerplate, the tinkerer only needed to fine‑tune the temperature thresholds and upload the sketch via the Arduino IDE.
Why this matters for DIY home‑automation
Turning a faulty fixture into a smart interface demonstrates the low barrier to entry for IoT upgrades. The project uses inexpensive, readily available parts—an ESP32 (often under $10), a DS18B20 sensor, and two small LED panels—yet delivers a tangible safety benefit. Users can avoid scalding or freezing showers without installing expensive thermostatic mixers.
Moreover, the approach is highly repeatable. The same principle could be applied to other water outlets, radiators, or even HVAC vents, providing instant visual feedback on temperature conditions throughout a home.
What you need to build it
- ESP32 development board (e.g., ESP32‑DevKitC)
- Two 5×8 addressable LED matrix modules (WS2812 or similar)
- OneWire temperature sensor (DS18B20 recommended)
- Wires, heat‑shrink tubing, and a small enclosure to protect the electronics from moisture
- Arduino IDE with the
FastLEDandOneWirelibraries installed - Optional: a 3D‑printed or laser‑cut mount to secure the LED panels inside the shower head spouts
Following the original build, the only software step is to flash the AI‑generated sketch onto the ESP32, calibrate the temperature thresholds to your local water system, and mount the hardware safely. After that, the shower head becomes a live temperature gauge that’s both functional and eye‑catching.
Looking ahead
As AI‑assisted coding becomes more mainstream, hobbyists can expect even faster prototyping cycles. Projects like this showcase how a brief natural‑language prompt can produce production‑ready firmware, lowering the expertise threshold for home‑automation enthusiasts. Future iterations might integrate Wi‑Fi reporting to a smartphone app, allowing users to log temperature trends or receive alerts when the water exceeds a preset limit.
FAQ
What hardware components are required for the ESP32 shower‑head temperature display?
How does the color‑coding system indicate water temperature?
Was any special programming expertise needed to create the firmware?
More in the feed
Prepared by the editorial stack from public data and external sources.
Original article