Our home brew garden watering system has entered beta testing in the backyard. The software runs on a raspberry pi and the scheduling logic is represented as a set of javascript commands which result in relays being turned on and off which control water flow.
This is the initial plan with four zones laid out in the back garden.
Each zone runs a schedule which turns the zone on for some duration and then turn it off; this runs on various days of the week.
Originally all 4 zones would come on simultaneously but running them one by one results in better water pressure.
Here is the outside zone controller, cobbled together from bits and pieces. Most of the stuff is basic garden equipment and the local hardware store has is covered.
The manifold splits into 4 lines and each can be individually turned off.
The 12 volt DC solenoid valves were an EBay purchase - they were something like $8.00 each and came from offshore and so took a while. They work perfectly and operate on a simple mechanism. No power = closed.
The control box is in the basement right by the wall where the 6-conductor wire goes through.
The raspberry pi runs a java/spring/boot application and relies on the excellent pi4j library to control the GPIO outputs to the relays.
The relays allow the raspberry pi 3 volt supply to switch on/off the 12 volts needed to cause the solenoid to allow water to flow.
Some pictures of the happy garden.