ESP32 based controller to periodically run the hot water baseboard heat during extremely cold periods to prevent possible freezing of the water pipes.
Air source mini-split heat pumps have supplanted our oil fired baseboard heat system. On very cold nights it is possible that parts of the pipes supplying the base board heat system may now freeze since they are full of water but not being used. To insure against this I developed this system to periodically circulate hot water through the baseboard system during extremely cold periods.
NOTE: This design is for a two wire control, where the thermostat calls for heat by closing the switch on the thermostat wire circuit.
- This system is fail-safe: it runs in parallel to, and independently of, the existing baseboard thermostat and mini-split system.
- The existing thermostat wire is spliced to run, in parallel, to a 28 VAC rated, opto-coupled relay activated by the ESP32.
- A DS18B20 temperature sensor is used to measure outdoor temperatures.
- When the outdoor temperature
Tfalls belowT_freeze_dangerthe relay is activated for one minute everyMminutes. M = 60 / (1 + k * (T_freeze_danger - T)). By defaultk=0.1- The device keeps a log of the temperatures measured and relay activations.
- The onboard LED shows a heartbeat every 10 seconds when
Tis more thanT_freeze_danger. - The onboard LED shows a heartbeat every 2 seconds when
Tis less thanT_freeze_danger. - The onboard LED flashes every 500ms when the relay is activated
The following services/features are available if the device can connect to the home router
- The device is discoverable via mDNS as
antifreeze.localwith a service type ofantifreeze.tcp - It serves a single webpage that has a form to set (and show)
T_freeze_dangerandkwhich can be adjusted. - The webpage also shows the event log: temperature measured and relay activations
- The device gets it's time from an ntp server and log time stamps are based on UTC rather than elapsed time since boot.
[ Boiler relay box ]===========++==============[ Thermostat ]
||
||
++==========[ Relay ]----- GPIO 33
[DS18B20] ----------------------------------------------- GPIO 15
idf.py add-dependency espressif/mdns(ESP mDNS)idf.py flash
- Digital output
- RTOS multi-tasking
- WiFi connection
- mDNS
- Http server
- Getting time via SNTP
- Dallas one wire protocol
(Found in: Component config > ESP System Settings)
This should be set to reboot to avoid the possibility that the relay gets stuck in the on position. It also takes care of any transient faults that might have crashed the application.
- ZMPT101B Voltage Transformer Voltage Sensor
- HCPL3700