Automatic Plant Watering Device

It is arduino based project which will water when required automatically by sensing soil moisture level.


Things used in this project

Hardware components

1 Arduino UNO
1 DFRobot HL-69 Hygrometer Soil Moisture Sensor
1 Solenoid Valve, 2 Way
1 LED (generic)
1 Wire, Hook Up
1 Jumper wires (generic)
1 Darlington High Power Transistor
1 Resistor 1k ohm
1 1N4001 Diode
1 Breadboard (generic)
1 12V Adapter

Software apps and online services

Arduino IDE


Hand tools and fabrication machines

Soldering iron (generic)
Solder Wire, Lead Free 
Wire Stripper & Cutter, 18-10 AWG / 0.75-4mm² Capacity Wires



This project is about automation in gardening this device will give water to the plant automatically by sensing the soil moisture level when required. It is a aurdino based project. In my house I have problem of watering my plant every morning and evening. So I required such a system which will detect the moisture level of soil and give water to the plant when the moisture level is low. Since we know that plant takes water from the soil through roots. So I decided to make automatic plant watering device.


The working mechanism of this device is:


- The soil moisture sensor will take analog reading of the soil moisture level. By checking the electrical conductivity of soil. If the conductivity is low means moisture contain of soil is low. It is connected to arduino A0 pin.


- When the reading shows the low moisture contain then the arduino will send digital signal to TIP 120 transistor. The transistor work as a switch to ON/OFF of solenoid valve.


- Digital pin of arduino is connected base. The collecter is connected to negative terminal of solenoid valve and the emitter is connected to common ground.


- The solenoid valve will work as a start and stop the flow of water from water tank to plant. Since it required 12V supply. So the external power is given from 12V adapter. The positive terminal of solenoid valve is connected to positive terminal of adapter. The negative terminal is connected to collector of transistor. The snubber diode 1N4001 is positive and negative terminal of solenoid valve. Reverse bias towards positive and forward bias towards negative in order to protect the solenoid valve from overheating because it may burn the coil.


- The led will work as a indicator to check weather the process is taking place or not.



Automatic Plant Watering Device


Const int moisture AO = 0;
int AO = 0;
int tmp = 0;
int solenoidPin = 4;
int LED = 13;

void setup()

Serial.println("Soil moisture sensor ");
pinMode(moisture AO, INPUT);
pinMode(solenoidPin, OUTPUT);
pinMode(LED, OUTPUT);


void loop()

  tmp = analogRead(moisture AO);
  if(tmp! = AO){
    AO = tmp;
  Serial.Print("A= ");

if (analogRead(0)>900){
  digitalWrite(solenoidPin, HIGH);
  digitalWrite(LED, HIGH);
  digitalWrite(solenoidPin, LOW );
  digitalWrite(LED, LOW);


The article was first published in hackster, December 30, 2021


author: f112

All Rights