Smart Water Boiler 🛜
by noalazar in Workshop > Home Improvement
39 Views, 0 Favorites, 0 Comments
Smart Water Boiler 🛜

Hey you!
In this project, you'll build a smart water boiler controller using an ESP32 microcontroller and Arduino app. The system allows you to monitor and control your boiler's water temperature remotely from your smartphone or browser.
You'll be able to:
- View real-time temperature updates
- Set a target temperature manually
- Turn the boiler ON or OFF remotely
- Schedule heating based on specific times of day
⚠️ Important Note: This project involves switching mains power, which can be extremely dangerous. All electrical connections to the boiler must be done by a licensed electrician. Do not attempt to wire the relay or heating element yourself unless you are qualified.
Supplies


In this step, you'll assemble all the electronic components on a breadboard and connect them to the ESP32 microcontroller.
Here is what you need:
- ESP32 Dev Board - The brain of the system – handles WiFi, temperature logic, and relay control.
- Breadboard - A solder - free platform to easily connect and organize all components.
- DS18B20 Temperature Sensor - Measures the water temperature inside the boiler.
- Relay Module (5V) - Used to switch the boiler's heating element ON or OFF.
- Micro USB Cable - Powers and programs the ESP32.
- 5V USB Power Supply - Standard phone charger used to power the ESP32 and relay.
- Jumper Wires - Connect everything together on the breadboard.
⚙️ Connections
Now that you have all the supplies, lets start connecting them!
DS18B20 Sensor:
- Data pin → Connect to GPIO 4 on the ESP32
- VCC → Connect to 3.3V or 5V (depending on your module)
- GND → Connect to GND
- Don’t forget: Add a 4.7kΩ pull-up resistor between the data and VCC lines
Relay Module:
- IN (control pin) → Connect to GPIO 5 on the ESP32
- VCC → Connect to 5V
- GND → Connect to GND
ESP32:
- Connected to your computer or USB power adapter via the micro USB cable
⚠️ Connecting the ESP32 to the Boiler



This is the final and most critical part of the project — connecting the relay module (controlled by the ESP32) to the boiler’s power circuit.
⚠️ Important Safety Warning: This step involves working with high-voltage electricity (110V or 220V), which is extremely dangerous.
This connection must be done by a licensed electrician only! Do not attempt to connect the relay to your boiler unless you are professionally certified.
đź’ľ Upload the Code
I’ve attached the complete code for this project below.
📌 Unfortunately, I cannot attach this specific file (index.h), which contains the HTML code for the boiler’s web interface. This file is essential for the project to work properly. If you'd like to receive it, feel free to email me directly and I’ll be happy to send it to you.
All you need to do is open it in the Arduino IDE and edit just two lines in wifi_credentials.h to connect your ESP32 to WiFi:
Then upload the code to your ESP32 using a USB cable.
Once connected, the ESP32 will host a smart boiler control panel on your local network. You can access it by typing the IP address shown in the Serial Monitor into your browser.
📱 Using the Web App Interface


Once the ESP32 is connected to your WiFi and running the code, it creates a simple and friendly web-based control panel. You can access it from your smartphone, tablet, or computer by typing the ESP32's IP address into your browser.
What the System Does?
The smart boiler interface lets you monitor the current water temperature, turn the boiler ON or OFF, set a custom temperature, schedule automatic heating based on time and temperature
This makes your boiler smarter, more efficient, and controllable from anywhere in your home.
Interface Overview
Here’s what you’ll see on the screen:
- Temperature: Shows the current water temperature (e.g. 42°C)
- Relay State: Indicates whether the boiler is ON or OFF
- Active Logic: Shows which logic mode is currently controlling the boiler
- Scheduler: Shows whether a heating schedule is active or not
Understanding “Active Logic” Modes
There are three logic modes that control how the boiler behaves:
👉 TEMP_CONTROL
- This mode is activated when you set a target temperature using the input field.
- Once you press "set temperature", the boiler will turn ON to reach and maintain that exact temperature.
👉 MANUAL (default temperature)
- This acts like a classic boiler
- You press "Turn ON" or "Turn OFF", and the boiler heats the water automatically based on a default setpoint (42°C - can be changed in the code).
👉 SCHEDULER
- This tells you that the current time matches the defined time slots, and the system is actively heating the water based on that schedule and the temperature defined.
- During scheduled time periods, the boiler will turn ON and heat the water to your specified target temperature.
Scheduler (✅ / ❌)
- This shows whether a schedule has been defined.
- If you’ve saved schedule using the “Save Schedule” button, you’ll see a green ✅.
- If there are no saved schedules, it shows a red ❌.
Get Into the App!

Once the ESP32 is connected to WiFi and running the code, it starts hosting a local web interface you can access from any device on the same network — like your smartphone, tablet, or computer.
How to Access the Interface?
- Connect the ESP32 to USB power
- Open the Serial Monitor in the Arduino IDE (baud rate: 115200)
- Wait a few seconds until you see a message like:
- On your phone or computer (connected to the same WiFi), open a browser
- Type the IP address shown in the Serial Monitor (e.g. http://10.100.102.13)
- The smart boiler control interface will appear!
🎥 Demonstration Videos – It Really Works!


To show that the system really works, I’ve included short demonstration videos. In the videos, you can see the boiler turning ON when pressing the “ON” button, and the temperature rising in real-time. You’ll also see how the system enters SCHEDULER mode when the current time matches a defined schedule, and the relay activates automatically based on the target temperature.
You're Done – Enjoy Hot Water, Whenever You Want !

Your smart boiler is now ready! You can enjoy hot water anytime you want — manually, by temperature, or on a schedule — all from your phone. Simple, smart, and efficient.