Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

Arduino-Controlled Soil Moisture-Activated Water Pump

View and Edit Project In Cirkit DesignerImage of Arduino-Controlled Soil Moisture-Activated Water Pump

Circuit Documentation

Summary

This circuit is designed to control a water pump based on soil moisture levels detected by a capacitive soil moisture sensor. An Arduino UNO microcontroller reads the moisture level and controls a 12v relay, which in turn powers the water pump. The relay ensures that the pump is turned on when the soil is dry and turned off when the soil is wet. The system is powered by a battery case.

Component List

12v Relay

Arduino UNO

Water Pump

My Battery Case

Capacitive Soil Moisture Sensor V1.2

Wiring Details

12v Relay

Arduino UNO

Water Pump

My Battery Case

Capacitive Soil Moisture Sensor V1.2

Documented Code

#define RELAY_PIN    2  // Arduino pin that connects to relay
#define MOISTURE_PIN A0 // Arduino pin that connects to AOUT pin of moisture sensor

#define THRESHOLD 530 // CHANGE YOUR THRESHOLD HERE

void setup() {
  Serial.begin(9600);
  pinMode(RELAY_PIN, OUTPUT);
}

void loop() {
  int value = analogRead(MOISTURE_PIN); // read the analog value from sensor

  if (value > THRESHOLD) {
    Serial.print("The soil is DRY => turn pump ON");
    digitalWrite(RELAY_PIN, HIGH);
  } else {
    Serial.print("The soil is WET => turn pump OFF");
    digitalWrite(RELAY_PIN, LOW);
  }

  Serial.print(" (");
  Serial.print(value);
  Serial.println(")");

  delay(500);
}

Code Description