I assumed ownership of an existing irrigation system when I moved into my home two years ago. Thankfully the system works and the valves and sprinkler heads are in great shape. No complaints there. However the irrigation controller is very old and a real pain in the ass to program. Coming from a person who took over the programming of his family’s clocks, wrist watches, and VCRs at the age of 5, I think it’s safe to say that it is not a user-friendly device. Worse still, the current controller only allows for some basic programming sequences and the valve order is linear. Any time I turn on the water, I have to water everything. As a result, I felt like I was wasting significant amounts of water in the areas where two or more zones overlap. The ground gets saturated and the water has nowhere to go but across the sidewalk and down the storm drain. I feel guilty enough maintaining a water hungry lawn let alone watering the asphalt as well. The lawn is not going away any time soon, but I can at least put some effort towards the run-off.
In recent years I have built several home automation solutions with microcontrollers like Arduino and Raspberry Pi; door bell, garage door, & a weather station to name a few. My sprinkler system definitely was next on the hack list. So, I was thrilled when I stumbled across Ray Wang‘s OpenSprinkler project. Ray has designed and marketed a custom IC microcontroller package, complete with solid state relays and voltage regulation to run an Arduino-based system on 24 volt sprinkler controls. It’s a masterpiece of engineering and his documentation and support forum is top-notch! I can now program my sprinklers in more ways that I can count. I can isolate the overlapping zones and have them run at different times of the day in order to reduce soggy areas and wasteful run-off. To top it all off, it allows me to do this: