Custom ESP32 Controller for Solar Hot Water Heater

Jack Henderson implemented an ESP32-based controller to keep his home's solar heater from getting too hot or cold.

Jeremy Cook
4 years agoHome Automation

Recently, mechatronics engineer Jack Henderson helped his father install a new solar hot water system onto the roof, replacing flat plate collectors with evacuated tubes. These new collectors do a great job of heating up water for the house. They do such a good job, in fact that they ended up melting the pump and valves, designed for the older less-efficient collector style.

While they could have probably purchased a new more appropriate pumping system for the tube collector, Henderson instead went to work and made his own. His configuration reads the temperature from three resistance temperature detectors, or RTDs via a voltage divider and amplifier circuit, passing this information to an ESP32 module for control.

The new setup is wired onto a perfboard and placed inside a nice enclosure, with an OLED display implemented to show the current temperature. Four different pumping modes are available, including turning off and on to supply hot water, as well as boil protect and freeze protect functions that circulate water through the system to prevent damage. In addition to pump control, data is uploaded using MQTT and visualized with a Grafana dashboard. This allows the Hendersons to monitor the state of the system, hopefully letting them know in time if anything needs human intervention!

Jeremy Cook
Engineer, maker of random contraptions, love learning about tech. Write for various publications, including Hackster!
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles