. ARDUINO-BASED AUTOMATIC WATERING SYSTEM ~ SmartElectronicsDIY

ARDUINO-BASED AUTOMATIC WATERING SYSTEM

 An Arduino-based automatic watering system is a smart solution designed to provide water to plants automatically based on their actual needs. In traditional watering methods, plants are often overwatered or underwatered due to lack of monitoring and human error. This not only affects plant growth but also leads to unnecessary water wastage.




1. Block Diagram Explanation

Main Blocks:

  1. Soil Moisture Sensor

    • Measures the moisture level present in the soil

    • Sends analog signal to Arduino

  2. Arduino Uno/Nano

    • Acts as the brain of the system

    • Reads sensor data and makes decisions

  3. Relay Module

    • Works as an electronic switch

    • Turns the water pump ON or OFF safely

  4. Water Pump / Solenoid Valve

    • Supplies water to plants when activated

  5. Power Supply

    • Provides power to Arduino and pump

Signal Flow:
Soil Moisture Sensor → Arduino → Relay → Water Pump


2. Working Principle

  • The soil moisture sensor continuously checks the moisture level of the soil.

  • The sensor sends an analog value to the Arduino.

  • Arduino compares this value with a predefined threshold.

  • If soil is dry:
    → Arduino activates the relay
    → Relay turns ON the water pump

  • If soil is wet enough:
    → Arduino deactivates the relay
    → Water pump turns OFF

This process runs automatically without human intervention, ensuring optimal watering and water conservation.


3. Components List

No.Component NameQuantity
1Arduino Uno / Nano1
2Soil Moisture Sensor Module1
3Relay Module (5V)1
4DC Water Pump / Solenoid Valve1
5Connecting Wires (Jumper wires)As required
6Power Supply (5V & 12V)1
7Water PipeAs required

(Optional: LCD, LED indicator, buzzer)


4. Arduino Code (Automatic Watering System)

// Arduino Automatic Watering System int sensorPin = A0; // Soil moisture sensor pin int relayPin = 7; // Relay control pin int moistureValue = 0; int threshold = 500; // Adjust according to soil void setup() { pinMode(relayPin, OUTPUT); digitalWrite(relayPin, HIGH); // Relay OFF (active LOW) Serial.begin(9600); } void loop() { moistureValue = analogRead(sensorPin); Serial.print("Soil Moisture Value: "); Serial.println(moistureValue); if (moistureValue > threshold) { // Soil is dry digitalWrite(relayPin, LOW); // Pump ON Serial.println("Pump ON"); } else { // Soil is wet digitalWrite(relayPin, HIGH); // Pump OFF Serial.println("Pump OFF"); } delay(1000); // 1 second delay }

0 comments:

Post a Comment