Arduino Sprinkler System + Web Control

by nicoo in Circuits > Arduino

180958 Views, 349 Favorites, 0 Comments

Arduino Sprinkler System + Web Control

IMG_0619.JPG
A smart sprinkler system for the rest of us... No soldering involved ! Just pile up a couple of shields on top of an arduino and control your sprinkler system from anywhere.

A couple of friends wanted to replicate the sprinkler system presented in this instructable but were scared by the complexity of it.

Well, it truly isn't complicated and it does not even require to solder anything if you pick the right parts... Since I long wanted to make the system more compact, I took the opportunity to make this solder-free arduino instructable. The system is very similar to (exactly the same as?) the previous instructable and just as open (supports scheduling, twitter etc...).

Connecting this arduino to your sprinkler system will allow you to remotely turn your garden watering on and off from any web-enabled device. From there you can make it as fancy or as simple as you wish.

Enjoy !

Collect Parts

IMG_0603.JPG
For this instructable you will need:
- 1 x arduino board
- 1 x ethernet shield (e.g. Ethernet Shield V1.0 for Arduino from http://www.nuelectronics.com )
- 1 x relay shield (http://seeedstudio.com/wiki/Relay_Shield)
- 1 x 10vDC adaptor (a recycled phone charger)
- 1 x momentary push button


You will not need:
- a soldering iron.

Put It Together

IMG_0620.JPG
IMG_0604.JPG
IMG_0605.JPG
IMG_0606.JPG
IMG_0608.JPG
IMG_0610.JPG
IMG_0615.JPG
IMG_0618.JPG
To put everything together, just follow the pictures, it should be fairly self-explanatory...

The push button is optionnal, it allows you to cycle manually through the sprinklers. Otherwise your only mean of control is the web interface... which is good too !

Arduino Sketch

The sketch is very close to the one posted in my original instructable (here)

Quick comments:

- The following code turns on the pull-up resistor of the analog input. A good thing to know.

pinMode(analogInPin, INPUT);
digitalWrite(analogInPin, HIGH); // turn on pull-up resistor

- I added a check on the size of the buffer that holds the page, so you have an indication that bad things happened if the buffer was too small.

- The manual button cycles through the valves (and uses A0,A1,A2 for convenience reasons).

- The web interface can turn on/off any combination of valves.

- The valves are turned off automagically after 60 minutes (can be modified, time in seconds, 0 disables the functionality).

- Up to 4 valves can be controlled.

- Startup logic as been added to prevent spurious turn on.

Voila ?

web_water_ww.jpg
IMG_7381.JPG
IMG_7361.JPG
IMG_7362.JPG
IMG_7363.JPG
IMG_7370.JPG
Everything else is covered in my previous instructable (here).

- connect the valves.
- use the web interface.
- make the system wireless.
- (optional) scripting.

Voila.