!!! Mediawiki has been upgraded !!! Slack integration has been disabled for now due to an incompatibility. If you want to testdrive the new skin (Tweeki), make sure your language settings are set to 'en - English' in your preferences!
|Project: Heating Controller|
|Description:||Designing and building a heating controller|
|Expertise:||Electronics, Arduino, GreenEnergy|
|Edit tags:||Heating controller|
- Solar thermal power collection,
- Hot water storage (boiler), and
- Underfloor heating
for a house.
The system is based on an ethernet enabled Arduino. Although it functions autonomously, it has connectivity (data and control) provided for Home Automation.
- The controller manages multiple heat sources and multiple heat sinks and tries to keep things in balance.
- Solar thermal power is always harvested, whenever it is available.
- There is an extra second boiler, that is only used for storing excess heat if the "normal" boiler is full.
- If the boiler needs to be heated externaly, the output (relay) that is activated is dependant on whether it is summer or winter.
One of the important things for a heating controller is to have access to temperature measurements. Therefor an interface board for PT1000 temperature sensors has been designed.
1 board can accommodate 8 different PT1000 temperature sensors and each sensor is measured sequentially. Multiple such boards can be used simultaneously.
The board can be calibrated for a certain temperature range to achieve a high resolution for the measurements.
The software allows further calibration per sensor in order to compensate differences between sensors are other external factors. (Cable length, etc...)
See http://www.splok.org/PT1000_Interface for details about the hardware and software design.
In order to make the controller behave autonomously, the important temperatures are measured directly through this interface board. These are:
- Boiler temperatures in several places
- Outside temperature
- Temperature of the thermal solar panels
- Temperature of the underfloor heating pipes.
- Possibly others
These temperatures are made available on the homenetwork as well, so the home automation system has access to this information too. Example: In order to create nice graphs. :-)
The other way around is also possible. The home automation system might know about temperatures the Heating Controller doesn't have access to (Ex: Individual room temperatures.)
These temperatures are not very important when the heating system is properly balanced, but might provide extra information to the Heating Controller to achieve even higher energy savings and comfort. (Ex: A long cooking session in the kitchen might make it possible to lower the temperature in the underfloor heating pipes.)
The solar pump is of the variable speed type and the algorithm used to determine the pumping speed tries to keep a specific and constant delta-T between the "output temperature" of the solar panel and the "boiler temperature".
The actual measurementlocation in the boiler to determine the boiler temperature (top or bottom) depends on whether there is a need for "hot water" or not.
The pumpspeed will always start at 100% and afterwards will vary between (about) 30% and 100%. The minimum speed is configurable and needs to be set to a speed that is guaranteed to reliable drive the pump from a powered off state. The actual speed during operation is determined by a PID controller.
When the controller determines the "correct" pump speed is less than the configured minimum the controller will switch after a few circulations from "continuous mode" to "intermittent mode".
In "intermittent mode", the pump will stop and the controller will wait for heat to acumulate in the solar panel.
When a temperature threshold has been reached, the pump will run at minimum speed for 1 complete circulation.
If the temperature threshold is not reached anymore, the pump will stop and wait again. If the threshold is still reached at the end of a cycle, the pump will not stop but continue. If this continuation happens 3 times in a row, the algorithm is switched back to "Continuous mode".