Skip to content

dhruvthakur0127/automatic-plant-watering-system

Repository files navigation

🌱 Automatic Plant Watering System

An Arduino-based automated irrigation system that monitors soil moisture levels and activates a water pump when the soil is too dry — ensuring plants always get the right amount of water without manual effort.

🔗 Live Simulation on Tinkercad: Click to open


🔍 Overview

This system uses a soil moisture sensor connected to an Arduino Uno to continuously monitor soil conditions. When the moisture level drops below a set threshold (sensor value < 100), the Arduino triggers a relay that switches on a DC motor (acting as a water pump). Once the soil is sufficiently moist, the pump turns off automatically.


⚙️ Components

Reference Component Quantity
U1 Arduino Uno R3 1
SEN1 Soil Moisture Sensor 1
M1 DC Motor (Pump) 1
K1 Relay SPDT 1
D1 Red LED 1
R1 330 Ω Resistor 1
P1 5V Power Supply 1
BAT1 Coin Cell 3V 1

🔌 Circuit Connections

Soil Moisture Sensor

Sensor Pin Arduino Pin
VCC 5V
GND GND
AO (Analog Out) A0

Relay (SPDT)

Relay Pin Arduino Pin
IN (Signal) Pin 7
VCC 5V
GND GND

LED Indicator

Component Arduino Pin
LED (+) via 330Ω resistor Pin 8
LED (-) GND

DC Motor

  • Connected through the Relay output terminals
  • Powers on when relay is triggered

🧠 Working Principle

  1. The soil moisture sensor reads analog values from the soil via pin A0.
  2. Higher sensor values = dry soil; lower values = wet soil.
  3. If the reading drops below 100 (dry soil threshold):
    • Pin 7 goes HIGH → Relay activates → DC motor (pump) turns ON
    • Pin 8 goes HIGH → LED turns ON (visual indicator)
  4. When moisture is sufficient (value ≥ 100):
    • Both pins go LOW → pump and LED turn OFF.
  5. The system checks continuously with a small delay for stability.

🚀 Getting Started

1. Clone the Repository

git clone https://github.com/your-username/automatic-plant-watering-system.git
cd automatic-plant-watering-system

2. Upload the Code

  1. Open src/plant_watering.ino in Arduino IDE
  2. Select Board: Arduino Uno and the correct Port
  3. Click Upload

3. Open Serial Monitor

Set baud rate to 9600 to watch live soil moisture readings.

4. Try the Simulation

No hardware? Try it directly on Tinkercad: 👉 Open Simulation


📁 Project Structure

automatic-plant-watering-system/
│
├── src/
│   └── plant_watering.ino       # Arduino sketch
│
├── docs/
│   └── project_report.md        # Detailed project documentation
│
├── diagrams/
│   └── circuit_description.md   # Pin connections reference
│
├── README.md                    # This file
└── LICENSE                      # MIT License

✅ Applications

  • 🏠 Home indoor/outdoor plant care
  • 🌾 Small-scale greenhouse automation
  • 🌱 Agriculture and precision farming
  • 🎓 Embedded systems and IoT learning projects
  • 🤖 Robotics and automation prototyping

⚠️ Limitations

  • The threshold value (100) may need tuning based on your specific soil moisture sensor.
  • Works best for small-scale, single-plant setups.
  • No real-time clock — runs continuously without scheduling.
  • DC motor current draw may require an external power source for larger pumps.

🔭 Future Scope

  • Add a real-time clock (RTC) for scheduled watering
  • Use Wi-Fi (ESP8266/ESP32) for remote monitoring via app
  • Add a water level sensor to prevent dry-run pump damage
  • Support multiple zones with multiple sensors and relays
  • Integrate temperature & humidity sensors for smarter decisions
  • Build a mobile app dashboard for live data and alerts

📚 References


👤 Author

Dhruv Thakur Birla Vishvakarma Mahavidyalaya (BVM)


📄 License

This project is licensed under the MIT License — see the LICENSE file for details.

About

Arduino-based automatic plant watering system using soil moisture sensor and relay to control a DC pump — with Tinkercad simulation.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages