Open source temperature differential controller based on the Arduino prototyping platform
The Parts
The Circuit
The Code
Coming soon! The differduino will soon be available as a single circuit board!
Features:
-based on established duino clone circuits
-designed to use the 812MJ Wiznet ethernet module
-on board relay circuitry
-screw terminals for all the main connections, or alternately .1" header pins
-lcd header for an lcd option
-voltage divider circuit for sensing power supply voltage, or a seperate DC voltage
-through holes for 3mm screw terminals,
-small 6x6 .1" prototyping area with ground and 5v buss.
-versitile board that can be used for all sorts of arduino projects, not just solar hot water.
-
Expected to be available for sale in May, initally as just the circuit board, and then later a full kit.
Here is a picture of the completed and working proto-type.

And here is the next iteration, and very close to the one that will actually be sold.

What's a differential controller?
A Temperature Differential Controller is a basically a thermostat.
They are used in thermal energy systems to decide when to cycle heat,
or when to collect available heat, or both at the same time. Your
home thermometer is a differential controller that decides when to
cycle heat, based on the difference
between the desired temperature, and the actual measured temperature. A
solar differential controller decides when to cycle based on the
difference in tank temperature vs collector temperature. Most modern
solar controllers allow the user to set a max tank temperature, or in
the case of a solar hot air collector, the desired maximum room
temperature. Even better controllers will log data. This is not only
interesting (everyone loves a good graph) but beneficial as you can see
the performance of your system, and be alerted to any potential
problems, or room for improvement in efficiency.The brains of a modern differential controller (or your coffee maker) is a microcontroller. It's basically a small, programmable computer on a single microchip. The Arduino is a platform for hobbyists and do-it-yourselfers that makes it easy to harness the power of microcontrollers for our own projects. They can be programmed for projects as complex as an autonomous flying machine, or a simple as blinking an LED. And since both the hardware and software of Arduino is open source, lots of code and arduino clone circuits can be found on the internet.
A good commercial differential controller can easily run you $200 or more. Add data-logging and other cool features, and they can get very expensive. Also, they are generally only for one system. You might need a controller for your radiant heat, and another one for your solar water, even though both have microcontrollers that are plenty capable of doing both.
A basic differduino project can be built, as per this guide, for around $40. Add an LCD readout and a couple other niceties, and your still around $60. Add an ethernet shield and the capability of logging data directly to the internet and have it automatically graphed for you, and your still under $100. It can do any of the things an expensive controller can do, plus some. The same device could easily control two systems at once, or even multiple systems as one smart thermal system. With the added ethernet, your device can be hooked up to the "internet of things". Then, you could even program it to make decisions based on sensors elsewhere in the 'cloud'.
Here is the solar hot water system I control with my differduino, and here are my graphs from that system.

The Differduino will provide you a basis on which to build from.
I've provided different versions of code that should work with various projects, as well as good comments so the code can easily be customized as per your needs. Features can easily be added, or taken away. For about the cost of a snap switch, a bare bones arduino clone circuit could be assembled and embedded into your system, adding much function-ability for a low price. Feel free to let me know as you suit the Differduino to your own needs and improve upon it. I would like to see this grow into something useful for many.
Some features of the Differduino:
- Based on an Arduino UNO, using the ATMEGA 328 microcontroller
- Uses Dallas DS18B20 1-wire thermometers. These solid state sensors are very acurate, and easy to use.
- Accurate control of your system with adjustable variables such as
max tank temperature, differential, minimum temp rise etc.*
- Displays useful information to a 16x2 back-lit lcd screen
- Easily customizable with more or less features including more
thermometers, a flow meter, larger
LCD, no LCD etc.
- Uses a WizNet ethernet shield to post a feed to the free graphing site, http://www.pachube.com
- Separate relay board for high voltage switching of pump.
*Currently the settings are only adjustable by modifying the variables in the code and uploading the new code to the controller. This is not a huge problem because once you adjust it to your needs, it just works. Eventually it would be nice if adjustments could be made via a web browser, or with a buttom pad and LCD screen. Feel free to contribute.
The Arduino is a powerful and flexible tool that can be made to do many things. For example, other sensors could be added, like a light sensor, or a voltage sensing circuit to control when to start photo-voltaic powered pumps. The Arduino runs on a range of DC voltages so the unit itself could be powered by solar. Data could be logged directly to an SD card using a data logging shield. Data could be logged directly to a PC using the serial i/o. Arduino's could be added throughout your house doing various automation tasks, all communicating with each other wirelessly with xbee. You only limited by your imagination.
I am not a programmer by trade. I am just an all around do-it-yourselfer who is not afraid to attempt something new. I figure it can't be that hard! Arduino is no exception. It can get very complex, but it's also not that hard to get some simple code working for you. Since Arduino is open source, the web is full of examples, guides, and many forums with people willing to help.
So Lets get started!
If you've never played with an Arduino, start here. Do a tutorial project or three. It is very helpful to be somewhat familiar with how arduino code works, that way your are better prepared to alter the code per your requirements. The smallest mistakes, like a missing bracket, can cause your program not to work, so it helps if you kind of know what your looking at.
The Parts
The Circuit
The Code
