Introduction: Easy Programmable Watering System With Arduino

About: I'm technician on Electronic (Data Acquisition System) with a Technological University Diploma in Electrical Engineering and Industrial Computing. Arduino and 3D Print are my hobbies.

This project will keep your plants alive, without any intervention for several days or even weeks.

To summarize it's an easy Programmable Watering System, powered by Arduino.

If you like electronics and plants, this project is made for you. It's aimed at both novices and experienced.

You can go on vacation with your eyes closed.

I used it a week of heat wave during my vacation (~35°C) with two tomato plants.

It's a useful and inexpensive project that everyone should make. It's basic and can be adapted to suit any of your watering needs and conditions. Total cost are under 25 €.

It's sound like a Arduino lesson, but keep in mind, this gonna be save your plant, save your time, save your water.

I think and made it in 2h all inclusive.

You could look the pictures before/after, plants have grown a lot during one week. Now it's healthier plants, apical blossom is reduct because the waterings are regular.

It's really a basic version, I'm sure you will do a more complete version by yourself, with your own conditions.

I made this Project in Cooperation with ELEGOO company, they asked me for a useful and easy project for everybody with their material, and I probably do this. This project can be done with parts of their Uno Starter Kit.

ELEGOO send me a unit for do this. They believe on Makers and believe on our creativity.


Step 1: Required

For made this project for watering 2 plants you need:

- ELEGOOUno R3 Starter Kit Board

In the kit, you already have the wires for connect boards together and some sensors for improve the system like the DHT11 or the LCD module for keep and eye on the programmable time for exemple.

- Relays x2 Board

- RTC DS1307

- x2 Mini Priming Diaphragm Pump

- x2 Pipe for water

- x2 Water tank like bucket between 10L and 20L of capacity

- Power supply 12V with 2A min

- x2 Plants of course

All this could be replace by the same modules, caution with the Uno board, some cards from other sites do not work well in I2C.

Step 2: Schema, Wiring

You need to respect the schematic on pictures.

Connections between RTC, Relay command and Arduino Uno, are made by Dupont wires.

For water pumps, you will need to recover the power of the arduino board by soldering wires under the arduino uno respecting the polarities and the color code. Wires needed to support 12V 2A. Next soldering the power wire to water pumps and connect them to relays.

Caution: Before soldering wires power under arduino board, verify positive and negative supply.

Make it properly and caution with short circuit. Solders and connections are made without power supply.

How it works:

- Uno Board is the brain of our system, it managed everything. It's a most common controller use in the maker world. You could find other kind of microcontroller (like Micropython) could be able to do the same job, but in my mind, arduino is the most simple and the most accessible board.

- DS1307 is a tiny RTC (Real Time Clock) need to be powering with CR2032, it could keep date and time without main power supply by Uno board. The module use I2C communication, one of the most popular kind of communication between board and modules. I2C communication are represented by SCL (Serial Clock Line) and SDA (Serial Data Line). In some case, you need to look the schematic of your board to find them.

- Relays module use a Low Level for activate the output of the relays on our case. You need to set up in HIGH level position (5V) on Input pin of module to set the Output on Normally Close position, As well you could wiring your pump on Normally Open position.

- Pumps required 12V for works, also we powered by the main supply of your Uno Board by soldering two wires. These pumps are self-priming up to 2 meters, these are very cheap and powerful.

Step 3: Upload Code and Connect the Pipes

Now it's time to upload the code on your board.

Download Arduino IDE here:

Install libraries for RTC DS1307:

With ELEGOO kit, all instructions are inside for programming your boards.

Don't forget to install the pipes to your water pump. You will have to look at which inlet pumps water and which ejects it. On picture of water pumps, E is for water Entrance.

After this install buckets full of water near the plants, put the suction pipe of the pump in the bucket, and put the water drain pipe of the pump in the pot.

You will need to adapt the watering times to your plants, my watering conditions are made for tomato plants.

This kind of Water Pumps can pump 135 L/h with 12V 2A, but you will need to test their flow with your power supply. Adapt code for made 60 seconds of watering and measuring how many quantity of water have been pumped.

2 buckets are required, for me 2.25 L for one minute for only one pump. Test water pumps separately.

You could install it on a piece of wood or in a plastic box.

Step 4: Go Further

Now you have the basics to improve this system and make it your own.

You could add more watering conditions, like temperature and humidity sensor, photoresistor, rain sensor, plant humidity sensor. You could add a IR system for control watering system with a remote.

You can schedule several waterings at different times for watering your plant, choose the quantity of water.

In short, a fully customizable system to easily manage your plants.

You can add solar panel (10W) with battery rechargeable 12V lithium-ion for independant power supply.

Robots Contest

Participated in the
Robots Contest