[Doug] needed to update his watering system to comply with his city’s new water saving ordinance. The old system wasn’t capable of being programmed to water only on even or odd calendar days. Rather than purchase a replacement he decided to build his own sprinkler controller. It needed to switch 12V solenoids, a job that’s not too hard to design for. Rather than re-invent the wheel, he modified a previous controller design. It is basically an Arduino and Ethernet shield on a his own etched board. In addition to the ATmega328 and an ENC28J60 (for ethernet connectivity) there is a bank of transistors to drive the watering solenoids. Now he has a web interface that controls the watering schedule and is fully in compliance with the new city code.
If you need another way to save when watering your grass you should take a look at the sidewalk-avoiding sprinkler.