An automatic plant watering system developed using Arduino
Keep your plants hydrated without lifting a finger!
Build a self-watering circuit that monitors soil moisture and activates a water pump when the soil gets too dry.
-
Arduino 5V 1-Channel Relay Module (JK-5V-1RS)
🔗 Purchase here -
Arduino Water Pump Motor (3–5V)
🔗 Purchase here -
Arduino Uno R3 Compatible Practice Kit (ARD-S)
🔗 Purchase here -
Soil Moisture Detection Sensor Module
🔗 Purchase here -
Air Hose for Water Pump
🔗 Purchase here -
Jumper Wires
🔗 Purchase here
Proper planning is key! Here are two wiring schemes reviewed and approved by my ECE professor:
How it works:
- The soil sensor uses a Digital Output (DO) signal to transmit either a "wet" or "dry" status to the Arduino.
- Connect the sensor’s VCC and GND pins to the Arduino’s 5V and GND pins, respectively.
- The relay module acts as a protective switch between the Arduino and the water pump, preventing potential overcurrent damage to the Arduino.
- A 3–5V external battery connects to the relay’s Common Connector (CC).
- (Alternative: You can use the Arduino’s 3–5V output as the power source. However, this is not recommended, as the water pump may require more current than the Arduino can provide. More details available here.)
- The water pump connects to the Normally Open (NO) pin on the relay and activates only when the soil is detected as dry.
Relay Module Mechanism:
What’s different?
- This version uses a MOSFET instead of a relay to control the water pump.
⚠️ Caution: The pump is directly connected to the Arduino, which may be risky if the pump draws more current than the board can safely handle.- It is essential to measure the pump’s minimum current draw before using this method.
- When the sensor touches water, the green light turns on.
- When the sensor is dry, the light turns off.
📸 Implementation snapshot:
Note: The pump is temporarily powered by the Arduino’s 5V pin, which is not recommended for long-term use.
Use a separate power source to avoid damaging the board.
This project successfully demonstrates how Arduino can automate a common task—plant watering—by integrating sensors, relays, and basic electronics. Among the two methods explored, Method 1 (Relay-based) proved to be more stable and safer due to current isolation from the Arduino board. Future improvements could include:
- Using a capacitive moisture sensor for better durability.
- Adding real-time monitoring via Bluetooth or Wi-Fi (e.g., ESP8266).
- Implementing power-saving modes for battery-operated use.




