A couple of weeks ago, I published a great little controller module that provided 6 relays able to be controlled from a computer via a network. After I published it, I got to thinking that the same basic design, with a couple of changes could be pressed into service as a garden watering system controller. So, I got to work, modified the design, and here you have it... A sprinkler controller that runs by itself, that can be programmed and monitored from your computer via your home network.
This specific version of my sprinkler controller obeys some simple rules that have had to be implemented where I live. I live in Australia, or more specifically in an inland region called the A.C.T, where our government have implemented an ODDS and EVENS watering regime. Under the system if you live in an odd numbered house, you may water on an odd day of the month. Likewise, if you live in an even numbered house, you may water on an even day of the month. Everybody may water on the 31st.
This system, along with the mandatory replacement of sprinklers for dripper systems has sucesfully reduced the load on the cities limited inland water supply so that more drastic measures were not required.
Unfortunately, this system was unable to be implemented on my commercial water controller, it wanted to water on a Monday, or a Wednesday, so I was breaking the law, and subjecting myself to a potential fine every other week... So I had to build my own controller.
This instructable shows how I built it - there certainly is enough detail shown so that you can make it yourself if you are enthusiastic, and willing to give it a go.
Update: the full source tree for the Kicad project is located here
Step 1: How do you drive the solenoids?
The sprinkler controller is built on the base of my Adruino Ethernet controller. The Arduino ethernet controller provided a basic network connected ATMega328 chip, and had a number of spare I/O lines.
I extended the PCB design to provide 6 solid state outputs, each able to drive +12v at 300mA, which is enough for a watering solenoid.
Each solenoid output is driven from a NPN transistor, as shown by the attached picture. To turn on the transistor, the port pin is simply driven high. I decided to use individual transistors, as they cost $0.03 each, and if they are destroyed, they are individually replaceable easily.
There is also a DS1302 RTC chip on the PCB - it is simply driven directly off 3 pins of the Arduino.
The whole board is driven by a 12VDC plug pack transformer.
It is not sensible to describe the full details of the Ethernet controller here, just check out the Arduino Ethernet controller (which is basically an Arduino and a NuElectronics shield) for info.
You will find the full schematic diagram attached as a PDF.