My arduino code for the irrigation controller (v2.4.1, 4/24/2012) can be found on github
(30 seconds/day) x (30 days/month) x (8 months/year) x (1 minute/60 seconds) x (1 hour/60 minutes) = 2 hours.
(2 hours run time) x (1020 Watts) = 2040 Watt-hours = 2.04 kWh.
(2.04 kWh) x ($0.113/kWh) = $0.23052 or less than one quarter dollar
The basic operation will turn the pump on at scheduled times of certain days for chosen durations. If the rain barrels begin to run low on water, the float sensor will signal the electronic valve to open at the house's spigot. This valve is connected to one of the two barrels by a hose. This prevents the water level from falling below the pump's intake pipe. A temperature sensor prevents the pump and valve from powering if it's too cold (or will soon be too cold). A rain sensor will be incorporated in the near future to prevent watering while or directly after it's rained.
*-*-*-*-*-* Operation and Navigation *-*-*-*-*-*
The current time & temperature will alternate on the display by default. If the colon is blinking when the time is displayed, the schedule is on. If the colon is not blinking and stays solid, the schedule is turned off. While the time & temperature is being displayed. The knob can be pressed to activate the control menu. Turn the knob to change a value, then press to confirm the value.
*-*-*-*-*-* Menu Options *-*-*-*-*-*
1: Exit the control menu and return to displaying the current time.
2: Display schedule(s) in the format: start time, duration on, days between running, next run day (1=Mon...7=Sun).
3: Change schedule
A: "# x" #: Which schedule, x: How many schedules to use (up to 3).
B: "XXYY" X: Starting hour, Y: Starting minute. Selecting the time will confirm & display the next schedule time.
C: "# x" #: Which schedule, x: watering duration in seconds (~5 gallons/minute).
D: "#d x" #: Which schedule, x: how many days between running the schedule.
E: "#n x" #: Which schedule, x: Which day of the week to start schedule (1=Mon...7=Sun).
4: Override the pump (to run the sprinkler) to either remain OFF or ON
5: Override the valve (to fill the barrels) to either remain OFF or ON
6: Turn the timer schedule OFF or ON
7: Reset the pump and valve overrides so they return to a scheduled operation (if schedule is turned on)
8: Display temperature history over the past 24 hours, 0 is the most current temperature stored
-*-*-*-*-* Emergency Modes *-*-*-*-*-*
If an emergency is detected, the valve and pump will remain off until the button is pressed to resume normal operation. During emergency mode, one of the following will interupt anything currently being displayed:
-E-1: The valve was open > 15 continuous seconds. This indicates the water is not activating the float switch in a timely manner. Ensure the hose going into the tank is connected & clear, the valve is operational, the spigot is open, the tanks are free of leaks, the float switch is free to move, and the switch is indeed activated when the water level reaches the sensor.
-E-2: The pressure switch began rapidly turning on and off or the pump has run dry. This indicates there is too much pressure building in the pump outlet or no water at the pump inlet. Ensure the outflow hose from the pump is not kinked, the sprinkler screen/heads are clean, and there is an adequate amount of water reaching the pump inlet.
-E-3: The float switch has been activated after more than 3 minutes from when the end of a scheduled watering. This indicates there may be a leak or water is being manually removed via the barrel's spigot. If the barrels were allowed to fill, which could take over a minute of the valve turning on and off [to equilibriate the water levels], the float switch should not activate this late. If water is being manually taken out, remember to exit emergency mode in order to resume the schedule.
Now that the circuitry is complete, I can focus on the water storage and delivery system. The general idea is that water will enter one 55 gallon barrel by flex tubing from the gutter, a hose connecting the two barrels near the bottom will equilibrate the water levels, and the pump will then pressurize it back above the water line and down to a hose that runs out to a sprinkler in the garden.
The outflow pipe from the pump rises over the point of the highest possible water line to prevent water from siphoning out while the pump is not running. This is only possible when a separate pipe extends from the top of the bend to allow air to be introduced into this bend immediately proceeding the pump being turned off. This vent serves two purposes. It allows air to flow into the top portion of the pipe when the pump shuts off, preventing the gravitational flow of water toward the sprinkler from drawing water out from the barrel, but it also alters the water pressure that's allowed to reach the sprinkler by either closing (increase pressure) or opening (decrease pressure) Ball-valve 1, diverging the flow back into the barrel so no water is lost. With Ball-valve 2 in-line after the bend, there is now the ability to completely alter the pressure from 0% to ~100% to the sprinkler beyond Ball-valve 2.
The float sensor protruding from the barrel.
Temperature sensor consisting of a thermistor encased in heat-shrink tubing and epoxy.
My rain sensor is a recycled plastic water bottle nailed to a board.
It utilizes the latest stainless steel screw technology.
...with protection from large debris.
High-heat is required to properly solder stainless steel.
2012.04.29: 3 additional 55gal barrels have been added to the system.