Multi-Zone Heating Controller

The smart solution to control multiple zone heating in your house, Controlling the Floor Unit pump will save you over 150 Euro/Year!

Jul 30, 2017

31303 views

23 respects

Components and supplies

1

Arduino UNO

1

Honeywell MT8-230-NC Small Linear Thermoelectric Actuator (230v AC)

1

Keyes 8 channel 5Volt relay board

Project description

Code

Devices.h

c_cpp

ProjectCV.ino

c_cpp

ProjectCV.ino

c_cpp

Devices.h

c_cpp

Downloadable files

The device mounted

Inspirational

The device mounted

Multiple Controllers

Example of wiring multiple 'cascaded' controllers. One controller per Floor Unit

Multiple Controllers

Example of the Logging

Some real logging of the Serial Monitor to understand the fuctionallity. The timestamps show e.g. a delay of 5 minutes between opening valves and actually starting the floor unit pump.

Example of the Logging

Schematics

Detailed wiring of periferals (Pump, Valves, Thermostats, LED's)

Schematics

Multiple Controllers

Example of wiring multiple 'cascaded' controllers. One controller per Floor Unit

Multiple Controllers

Example of the Logging

Some real logging of the Serial Monitor to understand the fuctionallity. The timestamps show e.g. a delay of 5 minutes between opening valves and actually starting the floor unit pump.

Example of the Logging

The device mounted

Inspirational

The device mounted

Comments

Only logged in users can leave comments

Anonymous user

2 years ago

Hi Erik, Complete n00b here. Its been 20 years or so the last time I coded in C. Im currently working my way through the world of Arduino as I want to do almost exactly the same as you created (although I *do* want it connected over wifi; partially to have a central control and overview and partially because of the lack of wiring...) I'm going through you code and its very insightful. One snack however that I simply don't get is this part: void setCoolDownNeeded() { cooldownCount = ; } I get the feeling that this should be: void setCoolDownNeeded() { cooldownCount = COOLDOWN_TIME ; } is that correct? Else it makes little sense to me. I'm going to dig further so its possible that you'll see more posts from me.

forgipali

2 years ago

Hello, I have one request for you, I downloaded this program but it doesn't work, Mr. Erik, it is no longer on his own page, I can't download the program, you don't have it downloaded by chance, and if you can, we can send it, thank you Forgacs

Anonymous user

2 years ago

Hi Can You please upgrade project and add zone 4 please.

Anonymous user

2 years ago

Hello Erik, I'm trying to get this piece into the UNO, but by compiling I get an error on the device.h part. I get the message the file cannot be found. It's my first project so maybe therefor difficult to find. Can you give me a hand? regards, Mark , Hoor graag van je.

erkr

2 years ago

Hi Mark Somehow the upload to arduino create altered the Arduino file names. If I download them myself, the project doesn't compile either. Even if I renamed back the files. So please copy the zip file from my website: www.kreuwels.com/ProjectCV.zip Don't forget to select the right board type. Succes Eric

Anonymous user

2 years ago

Hi Erkr, Thank you for this very elegant piece of work. I'm not used to C so please forgive my ignorance. I would really like to modify your program to include a second floor and pump. The floor and stat are simple , just a matter of renaming one of the original zones, but including the second pump is more difficult, as there's cooldown and maintenance runs to be included.BTW, the 36 hr run is a great idea, I know from experience that circulating pumps always need a little twist to start, after a while not in use.. Thanks in advance David.

bpanco

2 years ago

Hi Erik I made the system with your project. I have a gas boiler and a manifold with 5 heating circuits with which I heat two houses and a warehouse. For the project, I used five Arduino nano in the main substation and 2 more in the second house for separate floors. Each room has its own thermostat. The heating is with fan coils and each has a motorized valve on it. In the summer, it is also used for cooling, so I fill the system with cold groundwater at a constant temperature of about 16 degrees Celsius, which when heated through the system comes out and serves to irrigate vegetables in the garden. And I can say that my system works without errors, the only thing that sometimes happens to me is that there is no delay in using the temperature in the pipes, but when the room thermostat turns off the boiler, the fan coil turns off immediately, even though I set a 3 minute delay. The system has been working constantly for over a year because it also serves me for cooling and I am really satisfied. When I use it for cooling instead of the boiler it opens the valve at the water outlet of the system. At the inlet I have a control valve that leaks pressure at 2 bar and at the outlet 1 bar. Thanks for a great project!

Anonymous user

2 years ago

Hi Erik, First of all great work! I have a question, how do you make sure the honeywell thermostats keep working? Because as I understand this Honeywell thermostat gets his power from the CV. Thanks already! Greetings, Pim

Anonymous user

2 years ago

On the comment of project not compiling: when copying the code, pasting in recent Arduino IDE (2.something), it did compile. So or the copying instead of downloading, or the recent version did the trick. But on the connection with the thermostat: pls check upfront whether your thermostat is simple on/off, or OpenTherm. As OpenTherm operates at 20V, your Arduino output voltage of 5V will then never be enough to power your thermostat, and probably needs some extra coding (for who likes to take it on: https://create.arduino.cc/projecthub/jiripraus/connect-your-central-heating-to-arduino-7818f5). Let me know when you succeeded :)

mcclosdav

4 years ago

Hi Erkr, Thank you for this very elegant piece of work. I'm not used to C so please forgive my ignorance. I would really like to modify your program to include a second floor and pump. The floor and stat are simple , just a matter of renaming one of the original zones, but including the second pump is more difficult, as there's cooldown and maintenance runs to be included.BTW, the 36 hr run is a great idea, I know from experience that circulating pumps always need a little twist to start, after a while not in use.. Thanks in advance David.

forgipali

2 years ago

Hello, I have one request for you, I downloaded this program but it doesn't work, Mr. Erik, it is no longer on his own page, I can't download the program, you don't have it downloaded by chance, and if you can, we can send it, thank you Forgacs

Robarco

4 years ago

Hi Can You please upgrade project and add zone 4 please.

forgipali

2 years ago

Hello, I have one request for you, I downloaded this program but it doesn't work, Mr. Erik, it is no longer on his own page, I can't download the program, you don't have it downloaded by chance, and if you can, we can send it, thank you Forgacs

bpanco

4 years ago

Hi Erik I made the system with your project. I have a gas boiler and a manifold with 5 heating circuits with which I heat two houses and a warehouse. For the project, I used five Arduino nano in the main substation and 2 more in the second house for separate floors. Each room has its own thermostat. The heating is with fan coils and each has a motorized valve on it. In the summer, it is also used for cooling, so I fill the system with cold groundwater at a constant temperature of about 16 degrees Celsius, which when heated through the system comes out and serves to irrigate vegetables in the garden. And I can say that my system works without errors, the only thing that sometimes happens to me is that there is no delay in using the temperature in the pipes, but when the room thermostat turns off the boiler, the fan coil turns off immediately, even though I set a 3 minute delay. The system has been working constantly for over a year because it also serves me for cooling and I am really satisfied. When I use it for cooling instead of the boiler it opens the valve at the water outlet of the system. At the inlet I have a control valve that leaks pressure at 2 bar and at the outlet 1 bar. Thanks for a great project!

forgipali

2 years ago

Hello, I have one request for you, I downloaded this program but it doesn't work, Mr. Erik, it is no longer on his own page, I can't download the program, you don't have it downloaded by chance, and if you can, we can send it, thank you Forgacs

Anonymous user

5 years ago

Hi Erik, First of all great work! I have a question, how do you make sure the honeywell thermostats keep working? Because as I understand this Honeywell thermostat gets his power from the CV. Thanks already! Greetings, Pim

forgipali

2 years ago

Hello, I have one request for you, I downloaded this program but it doesn't work, Mr. Erik, it is no longer on his own page, I can't download the program, you don't have it downloaded by chance, and if you can, we can send it, thank you Forgacs

Anonymous user

6 years ago

I have been searching a solution like this since so many time, I'm beginner on this but I'm pretty interesting. I think you use a wired thermostat but I need to use wifi. I think I can use some wemos + thermometer + humidity sensors to say to the arduino "Hey I need some heat" And then the system starts. Is this possible? How will be the code? Maybe this will be helpful. Thank you very much and congratulations.

Anonymous user

7 years ago

Hi Erik, Complete n00b here. Its been 20 years or so the last time I coded in C. Im currently working my way through the world of Arduino as I want to do almost exactly the same as you created (although I *do* want it connected over wifi; partially to have a central control and overview and partially because of the lack of wiring...) I'm going through you code and its very insightful. One snack however that I simply don't get is this part: void setCoolDownNeeded() { cooldownCount = ; } I get the feeling that this should be: void setCoolDownNeeded() { cooldownCount = COOLDOWN_TIME ; } is that correct? Else it makes little sense to me. I'm going to dig further so its possible that you'll see more posts from me.

mrood

7 years ago

Hello Erik, I'm trying to get this piece into the UNO, but by compiling I get an error on the device.h part. I get the message the file cannot be found. It's my first project so maybe therefor difficult to find. Can you give me a hand? regards, Mark , Hoor graag van je.

erkr

2 years ago

Hi Mark Somehow the upload to arduino create altered the Arduino file names. If I download them myself, the project doesn't compile either. Even if I renamed back the files. So please copy the zip file from my website: www.kreuwels.com/ProjectCV.zip Don't forget to select the right board type. Succes Eric

erkr

1 Followers

4 Projects

+1

Work attribution

23

21