Greenhouse irrigation system


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

Two more pictures.

could you email me the code?


Ok, I will send you the code.

This project is far too cool to be overlooked! Here are those same images embedded, so the people that just scroll through don't miss out on the awesomeness :3

What do the buttons do? What are the menus like? Have any data from the sensors? Perhaps a cool graph or two? There's some stuff getting overlooked as well, I believe there's a water level sensor in that bin? What pump are you using? 12v could be anything! What happens if the water level gets low? What is sourcing the water, is it from the roof?

Glad you like it :slight_smile:
This was one of my first Arduino projects. It turned out better than expected.

I have thought about making a version 2 with a web interface, maybe use a Raspberry Pi Zero as a webserver and a Arduino as slave.
It would be nice to be able to view graphs on temperature etc. and configure the irrigation system with a phone or computer.

But because the current solution "just works" (and have worked for years) I have not started yet.
A touch screen would also be nice.

What do the buttons do? What are the menus like?
It is just simple text menus.
Like enabling/disabling valves, set schedules (days and time).

Have any data from the sensors?
No just max/min (last 24 hours) and current value.
Actually I have tested to log values each 10 minutues with a ESP8266 and save the data on ThinkSpeak just to check temperatur and humidity.

Perhaps a cool graph or two?
I log a lot of things at home :slight_smile:

Weather: ESP8266 posts data every 10 minuter to ThinkSpeak. Both indoor and outdoor.

Heat/Pumps and storage tank: DIY VBUS interface that decodes my solar computer (brand Resol), decoder written in C on a Raspberry Pi Zero.

Energymeter: Arduino measures pulses with a photo transistor. History data is send over I2C to the Raspberry Pi Zero.

There's some stuff getting overlooked as well, I believe there's a water level sensor in that bin?
Yes I have a water level to protect the pump, it happens that I forget to refill the bin.

What pump are you using? 12v could be anything!
Yes it is 12V.
This one: Dränkbar pentrypump, 12 V -
Only ~ 14$, have worked for several years now.

What happens if the water level gets low? What is sourcing the water, is it from the roof?
I have to fill the 200L bin manually. But 200L of water is enough for several weeks.
Here is somethink that i could improve. A mail message or SMS could be send.

Well, if you ever get round to making your garden monitor a web interface, I'd love to see it! That website you've got is awesome!! What are you doing with all that information? You could literally write weather prediction software with such extensive info (depending on how long you've been logging it for I guess).

You could probably also sell it, if you found the right person.

Have you considered using prettier graphing software? Something sleeker and more modern :33

And finally, what other awesome projects are you working on? I've considered setting up a weather monitoring system myself, so maybe you've done something else I'd love to try :open_mouth:

Web interfaces is really not my thing :slight_smile:
A cloud service like Thinkspeak realy helps so I don't need to write the web code.

On my local server I use Sqlite (very lightweight database), Gnuplot (ugly graphs :slight_smile: ) and Python/C.

My last weather station was build with a Atmega1284 (lots of RAM) and Sparkfun weather meters. Communication was made with 433Mhz radio.
Because the wind meter broke I replaced everything with the current much simpler solution (ESP8266 without wind sensors).

For now I don't have any current projects.
The long winter in Sweden approaches so it's time to start something new.

Maybe "Irrigation system 2.0" is next. I then need to make a web interface.

Do you have any advice on something I could use to make a webpage that is simple?
I have thought about using Python and Falcon framework.


Unfortunately I don't know much about web development, so I can't write something for you. I'm very interested to see what else you make, however! If you make something, upload it here!

Cool project - appreciate ! Was it in use on last summer (2017) what about coming summer 2018 ?


Yes I used it last summer. Have used it for many years now, still no problems.

This year I have bought a second greenhouse so now I have to make a new irrigation system :slight_smile:
But I think I will make it simple. Just one gravity feed valve and pipes with drilled holes.



It looks awesome:-)

is it possible to get the code?

Best Regards Finn

Ok, I will send you the code.

Hey there, I would also be very keen to see some code examples if possible? I'm working on a similar system and I'm struggling to get my head around some of the logic using variables and states for opening valves to each area that needs watering etc.

(panicacid at g mail dot com) if you would prefer not to post it on here.

Project looks awesome though so kudos to you!

Best Regards


Hi Steve!

I attach the complete code.
The code is not pretty but I hope you find some parts useful.

The text on the display is in Swedish, use google translate :slight_smile:

Best Regards


Irrigation.ino (27.7 KB)