For my irrigation system I’m using a Raspberry Pi and a 4 channel relay board I bought off Amazon for $8.50. The board is made by Sain Smart (http://www.sainsmart.com/arduino-compatibles-1/relay/4-channel-5v-relay-module-for-pic-arm-avr-dsp-arduino-msp430-ttl-logic.html). Sain Smart also makes 2, 8 and 16 relay boards, and boards with solid state relays for more $.

It’s small (75mm x 55mm x 20mm / 2.95″ x 2.17″ x 0.79″), can be driven directly from the Pi, has an LED for each channel that lights when active, and screw terminals for connecting to sprinkler valves.

I connected the relay board to the Pi with a ribbon cable. I bought a 40 conductor ribbon cable ($5 from Amazon – http://www.amazon.com/dupont-cable-200mm-male-female/dp/B00A6SOGC4/ref=pd_sim_pc_6) with individual female connectors on each and peeled of the 6 wires I needed, worked great.

Note that for each relay, the center screw terminal is the common with Normally Closed to the right and Normally Open to the left.

I mounted the Pi and relay board to a plywood board with wood screws, then mounted the plywood board to my garage wall. The Pi uses a USB WiFi adapter to connect to my home WiFi router.

sprinklers_pi needed to be set to Direct Negative for this relay board.