Introduction: Soil Moisture Feedback Controlled Internet Connected Drip Irrigation System (ESP32 and Blynk)

About: love tinkering with arduino ,hardware programming ,home automation

Worry about your garden or plants when you go on long holidays , Or forget to water your plant daily. Well here is the solution

Its a soil moisture controlled and globally connected drip irrigation system controlled by ESP32 on software front i have used Blynk as it saves you from lot of manual programming


1.)ESP32 microcontroller ( as it has lot of I/O)
2.) 5V relay board(min 4 channel)
3.)5V and 12V power supply
4.)soil moisture sensor(2nos)
5.)12V solenoid valve(2nos)
6.)drip irrigation kit (for 30 or 60 plants ,as per your requirement)
7.)PVC pipes and joints
8.)wifi connection
9.)long jumper wires(take LAN cable )
10.)Glue gun

Step 1: PVC Piping Connection

Connect PVC Piping 1/2inch from your overhead tank for all time water supply or you can connect it with Tap or with a water pump from stored water supply

Take atleast 2 T conecter with thread so as to fix solenoid valve(1/2inch) in that

First take the measurement and make aroute map for piping connection than purchase the pvc pipe and connector as required

Step 2: Drip Irrigation Piping Connection

Purchase any drip irrigation kit from Amazon
Feeder pipe will be connected from solenoid and then connect the drip pipe according to the plant position

As I have used 2 solenoid valve I have distributed my pots in half and have done the piping accordingly

Step 3: Circuit Power Supply and Wiring

I have connected solenoid valve through solar panel(12V) you can use 12v adapter also

Take very long wires for moisture sensors as they will be in the pots and wire needs to be connected to ESP32
Rest items 5V power supply,ESP32 and relay board can be at one place in a box

Give supply to solenoid through relay board we have to control water through solenoid valve only as per the soil moisture inputs

Step 4: Software Front

I have used Blynk for programming as it saves you from lot of programming like putting pin high or low

only programming you need to do is for taking soil moisture reading

Sketch is attached


1.)Use esp32 as it has lots on analogue input and lots of free pins for output

2.)Use blynk as it saves you from lot of undue programming like digital write high and low and gives you freedom to use any pin any time

3.)Use 12V supply and use IC LM7805 to convert 12V to 5V for ESP32

4.)Use 1/2 inch solenoid valves (available on amazon (250rs-300rs)

5.)Dont take continuous reading from soil moisture sensor put it in trigger mode(Use a spare pin to give supply to moisture sensor so when you want to take reading put that pin high).Continuous current through moisture sensor corrodes it very soon

6.)Calibration needs to be done with moisture sensor (Put sensor in glass full of water - this reading will be 100% humidity then put it in dry air -this reading will be 0% humidity) calibrate accordingly

Step 5: BLYNK Setup

1.)Download and add blynk libraries in arduino software

2.)Download the blynk app

3.)Make account

4.)Make a new project select ESP32 as microcontroller

5.)Get the auth key

6.)Put the auth key in the sketch along with ssid and password of your wifi network

7.)now upload the sketch in ESP32

8.)open your project in blynk app ,now ESP32 will be seen online

9.)now starts to add button and gauges for sensor input

10.) we have created virtual pins for moisture sensor readings so select virtual pis for getting readings from moisture sensor

11.) rest for triggering relay you can choose any pins (eg gp27,26,33,35 etc)