Banner. Photo by Author.

Solar Hydronics Automation System

Summer 2013

See the full research paper.


This study involved engineering an automation and communications network to control heat flow in a novel solar hydronics system in a Roseville, Minnesota home. The goal of this system was to effectively store enough of the sun's heat during the summer months to heat the home throughout the winter. We installed a Modbus network—the industry standard for RS485 communication—that consists of a master Arduino Mega and five slave Arduino Micro modules. We created software in C/C++ to run 100 temperature sensors, one humidity sensor, and eleven water circulators that direct heat flow to heat-storage components. A unique aspect of the software developed in this study is that it adjusts to time of day, outside temperatures, dew point, humidity, and time of year in order to determine the most effective allocation of the available heat. Final testing of the communications network showed 100% success rate. Because the network can be easily modified or expanded, it is easily applicable to any solar-powered hydronics system.


In hydronics systems, water flows through an extensive system of tubing to either heat or cool a residence by radiating or absorbing heat. The house in Roseville is an example of newly developing hydronics systems that use solar collectors as their source of heat. Before our work, distribution of water in the hydronics system of the home had to be controlled manually by opening and closing pumps as needed. The goal of our work was to wire and program a communications network to automate the hydronics system to respond to seasonal temperatures, time of day, dew points, humidity, and time of year.

In order to calculate the most effective heat allocation, the automation network must know input and output water temperatures of each component in the hydronics system. For this home, these components include:

Since all of these components are sparsely distributed throughout the house, we determined that a master/slave communication network would be the best way to read temperature data from all of the them.

Prototype 1: I2C

We determined that the most important aspect of this system was first to reliably read data from the temperature sensors. We created our first prototype using I2C with the goal of demonstrating multi-controller communication of temperature data. An I2C Arduino network

Our first prototype network. All of the smaller microcontrollers have their own temperature and humidity sensors and are communicating their data to the master controller.

Prototype 2: Modbus

Upon further testing, we learned that an I2C network is not reliable over the long cable-runs we needed for physical placement in the home. For this reason, we decided to update our network using the Modbus protocol. We used the MAX485 integrated circuit to accomplish full-duplex communication between the microcontrollers. They could then send all temperature values to the master controller and receive their output instructions without any lost data packets.

A schematic of the Modbus network used in this project.

A schematic of the Modbus network used in this project.


The working network.

The console output of the Arduino Mega shows that all temperature values from the slave controllers were received successfully.

After out control system was installed in the house, operating costs decreased by 75%. This is entirely due to increased storage efficiencies, since the system sends the water to the storage location where heat can be exchanged most efficiently.


Our technology uses an efficient hydronics system to heat a Roseville, Minnesota home with zero greenhouse gas emissions. With hot summers and freezing winters, a significant amount of heat must be stored throughout the non-winter months. Our technology logically decides whether to store heat in long-term storage or short-term storage or distribute heat throughout the house. The system can also be completely run off of low voltage DC power, which is provided by solar panels and batteries. These power sources will continue to run in the event of power outages.

A unique aspect of the software is that it adjusts to time of day, outside temperatures, and time of year in order to make logical decisions about where to distribute heated water from the solar panels. For example, the program directs heat into sand beds in the summer to store heat for winter. On the other hand, the program responds to high indoor air temperature readings by injecting cold water into the hydronic system water to cool the house. By calculating approximate dew points, the program keeps the colder water above the dew point to prevent condensation in the house.