This is an old project of mine. One of my first projects I made when I started with Arduino for a couple of years ago.
The wiring is a mess but I had no prior experience with electronics then.
I often see questions about watering automation in the project guidance so I decided to show my old project.
It has worked without problem for three years now (four years if I count the first version that did not use solenoid valves).
The system use a small 12v pump and ten solenoid valves (purchased from ebay).
Only one solenoid is open at a time to withhold pressure.
I also use two 74HC595 shift registers to control two uln2803 8-channel darlington transistor arrays to drive the valves and the pump relay.
The system also has a thermometer and a home made moisture sensor. The moisture sensor can start the watering schema if the soil get to dry.
It is possible to configure the following in the menu:
Activate/Inactivate valves (each valve can be active or inactive)
Which days and time to water (supports two individual schemas)
How many seconds to water each plant.
Activate/Inactivate moister sensor
Activate/Inactivate schemas (When inactivated watering is started by pressing a button)
Save configuration to eeprom