In our last episode, I explained how I redesigned the controller from what I first thought I was going to do. Now, I am going to explain how to make your own thermal differential controller based on mine. As it is, this setup will only control an AC load, but it would be fairly simple to convert it to run a DC load.
Here is the list of parts you’ll need. I’ve added links to where I like to get parts from.
- Arduino – There are many forms of Arduinos out there. I like the kits from ModernDevice.com since you save some money not having things assembled for you.
- 5V power supply – If you have a spare cell phone charger or wall wart laying around it’ll probably work fine, just make sure its 5 to 12V.
- AC solid state relay – This will keep wiring a bit simpler. You can use a mechanical relay, but you would need to add a diode to protect the Arduino and you might need to add a transistor to help power it.
- LM35 temperature sensors – You’ll need two of these.
- 10uf capacitor – You can probably go with a bit larger or smaller capacitor here. I recommend finding one of similar capacity in some broken electronics component laying around the house if possible. That is what I did. If you have a long wire run to each temperature sensor, you may need a capacitor on both lines.
- Telephone wire (4 conductor) – This will be used for wiring the temperature sensors.
Now that we have all the components, the circuit diagram is quite simple. Since it is so simple, to wire things up, I simply used some connectors on the arduino and ran wires to each component. That way there is no need for a bread board or shield.
Lastly, we need the code for the Arduino. If you haven’t yet, go to the Arduino website and download the Arduino development software. This is required to upload the program to the Arduino. Now, go ahead and download the code for the thermal differential controller.
Using the code should be pretty straight forward. I commented pretty throughly. To change the temperature differential to turn the load on, simply plug in a new number into the “int OnDiff =” line. By default its set to 3 degrees Celsius. The differential to control when to turn the load off is controlled likewise by “OffDiff”. There is an LED pin programmed to verify the load on/off status if you want to use it. There is also serial output for the two sensors if you want to uncomment it and datalog the temperatures.
So, that about does it. There is a bit more info on the controller in my forum thread. If you have any questions, feel free to ask. I am by no means an electronics wizard, but I’ll do what I can to help answer your questions.
Welcome to EcoRenovator! If you like the site and want to get automatic updates, check out the RSS feed. Thanks for visiting!
Its been quite some time since I started this series on making a DIY thermal differential controller. I had gotten away from the project, but more recently needed a thermal differential controller for the project you see above. I’m happy to say that I now have a working controller.
So, what has changed? Really, not that much. The main change is that I am now using LM35 temperature sensors instead of thermistors. This not only makes things easier to program, but also they’ll be a bit more accurate. In addition to that, they also cost a bit more. A thermistor is roughly $0.20 and the LM35 is about $1.70 each. Well worth the extra buck fifty each.
For my specific project, I decided to use a solid state relay. I am using 110V AC power, have a few solid state relays handy, and it works great with the Arduino since you can power it directly from the Arduino without using a transistor to provide more power to a normal relay’s coil.
Another component I realized I needed after doing some testing was a small capacitor. The long lead (20ft+) on one of the temperature sensor was susceptible to noise. I put a 10uf capacitor on the signal line and it cleaned up the signal. I’m sure a little bigger or little smaller capacitor would work just fine. The shorter (~5ft) lead didn’t have this problem so I did not add a capacitor to that signal line. If you have two long wire runs to your temperature sensors, a capacitor should be used on both.
Lastly, we need to add a power supply for the Arduino since it can’t run off 110V AC. For this, I used an old cell phone charger which is essentially just a 5V power supply. It runs off 110V AC, so it plugs right in to the wall. It also seems just about everyone has one of these laying around which makes them easy to find, and cheap.
In the last article we talked about what a thermal differential controller is and what the goal of this project is. This time we will learn about the necessary components needed to make the controller.
The first thing we need is a programmable controller. The programmable controller will monitor the temperature sensors for us and send signals to turn the pump on and off. It will let us adjust the on and off temperature differential, as well as allow us to do other things like set a maximum tank temperature, or even use it for data logging if we wanted. For this project, I decided to go with the Ardunio. Its a popular micro controller that is very versatile. It is easy to use and is quite inexpensive. You can get a fully assembled and tested unit like the one above for around $30. There are also stripped down versions or kits that you must solder together that can reduce this cost.
The next thing on the list is a relay of some sort. The relay will receive the signal from the controller to turn the pump on and off and do the actual switching for us. Which relay you use will differ depending on your specific setup. If you are planning on using an AC pump, you’ll want an AC relay. If you are planning on using a DC pump, you’ll want a DC relay. After you know that, we have another choice to make. We can go with a mechanical style relay to save some money, or go with a more expensive solid state relay (shown above). The downside to the cheaper option is that it is more prone to failure and will not last as long. However, their failure rate and longevity are usually nothing to be concerned with. A mechanical relay will only cost you about $2 where as a solid state relay will run about $13.
The other option is to try to find a relay that will accommodate both AC and DC pumps. This will be a bit trickier to find, but keeping the design the same between the two will be worth a bit more hunting. This is what I am currently looking into.
Photo: ッ Zach Hoeken ッ
The last thing on the list is sensors. Most commercial controllers use 10k thermistors. I see no reason why we can’t use them for this project as well. This gives some flexibility in the design and assembly. You can order 10k thermistor sensors that are already premade for around $13. Alternatively, you can buy a bare thermistor for around $0.60 and make your own sensor casing for it. This is the route I will be pursuing for this project to keep the cost low.
For more info on the controller, visit the thermal differential controller forum thread.
I’ve been looking into solar hot water systems for home heating and domestic hot water purposes for a while now. I simply love the idea that I could have free, clean heat and hot water. I’m also a big fan of Gary’s work over on BuildItSolar.com. Reading his site, I noticed that many people are interested in his $1000 solar hot water system. Its a great experimental setup. However, the cost of the thermal differential controller eats up a lot of that budget.
So, what the heck is a thermal differential controller anyway? A thermal differential controller is what is used to control the pump between the solar panel and hot water tank. It senses when the solar panel is hotter than the tank and starts up the pump so that the water can get warmed up. When the panel cools off, the controller turns the pump off so it doesn’t cool down the tank.
It sounds pretty simple doesn’t it? A brain box to turn the pump on and off. If you look at the price of a commercial controller you’d think that there is a lot more to it. These controllers start at $130 and go up from there. $130 is a bit high for a glorified switch in my book. That price also does not include the sensors that are needed to run the controller. Each sensor is an additional $13, and you need two. So, that brings the minimum price for a controller up to $156.
So, I’ve decided to develop my own thermal differential controller. There aren’t many parts, and the parts are fairly inexpensive. The goal here is to make DIY instructions on how to make your own thermal differential controller for less than half of what a commercial controller costs.
For more info on the controller, visit the forum thread here. I’d love some suggestions.