This is basically a software project with a small hardware component.

The OpenSprinkler project currently has the software and hardware control on same board. I want to break this link and have the hardware control separated from the software. I intend to do this over WiFi. A RaspberryPi will be the main controller for two reasons... I have one already and it should have enough horsepower to expand into more home automation tasks I have planned. Another plus is that the OpenSprinkler Pi project is programmed in Python. I'll need to read through the code and find all the places where the actual hardware is being controlled or read and modify that. I'll use JSON for the machine-to-machine communication.

For the remote relay control station, I want to use the fully broken out ESP8266 module from adafruit.com to control the relays. It should be perfect for this since it has 9 GPIO and I have 8 sprinkler zones and a rain sensor. I don't think the current output capability of the chip is enough to drive the relays so I'll have to use a buffer chip. Another option is to use an I2C port expander to control the relays which would take care of the buffering too. Other than that, I'll need a regulated DC power source. Pretty easy when you don't need a display or buttons! I hope to be able to program the relay station using MicroPython but if that proves to be too buggy I'll use Arduino instead.