An Arduino plant watering system automatically waters your plants when the soil gets dry, ensuring optimal moisture levels even when you are away from home. This smart garden kit project is perfect for Indian terrace gardens, balcony planters, and indoor plants that suffer during hot summers or when owners travel. Build the complete system for under Rs 800.
Table of Contents
- Components and Cost
- Understanding Soil Moisture Sensors
- Water Pump and Tubing Setup
- Wiring Everything Together
- Arduino Code for Smart Watering
- Expanding to Multiple Zones
- Frequently Asked Questions
- Conclusion
Components and Cost
The basic plant watering system requires an Arduino Uno or Nano (Rs 300 to Rs 400), a capacitive soil moisture sensor (Rs 80 to Rs 150), a 5V mini submersible water pump (Rs 100 to Rs 200), a relay module or MOSFET switch (Rs 50 to Rs 100), silicone tubing (Rs 50), a water container, and a 5V power supply (Rs 100). Total cost: Rs 680 to Rs 1,000 for a single-zone system.
Understanding Soil Moisture Sensors
Two types of soil moisture sensors are commonly available. Resistive sensors are cheap (Rs 30 to Rs 50) but corrode quickly because they pass current through the soil. Capacitive sensors (Rs 80 to Rs 150) measure moisture through capacitance changes without direct electrical contact with the soil, lasting much longer. Always choose capacitive sensors for any permanent installation.
The sensor outputs an analogue voltage proportional to soil moisture. Dry soil gives a higher reading (700 to 1023 on Arduino’s 10-bit ADC) and wet soil gives a lower reading (300 to 500). Calibrate by reading the sensor value in completely dry soil and in fully saturated soil to establish your specific range.
Water Pump and Tubing Setup
Use a small 3V to 5V submersible water pump placed inside a water container (a 5-litre bottle works well for indoor plants). Connect silicone tubing from the pump outlet to the plant pot. For multiple plants, use a manifold or T-connectors to split the water flow. Secure the tubing to prevent it from slipping out of the pot.
The pump should never run dry as this damages the motor. Add a water level check, either a simple float switch in the container or an ultrasonic sensor above the water surface that alerts you when the container needs refilling.
Wiring Everything Together
Connect the soil moisture sensor’s analogue output to Arduino pin A0, VCC to 5V, and GND to GND. Connect the relay module’s signal pin to digital pin 7. The pump connects through the relay, powered by the 5V supply through the relay’s normally open contact. When Arduino sets pin 7 HIGH, the relay closes and the pump runs.
For a cleaner setup, use a MOSFET (like IRLZ44N) instead of a relay. The MOSFET switches silently, is more compact, and can handle the pump’s small current easily. Connect the MOSFET gate to Arduino pin 7 through a 220-ohm resistor, source to ground, and drain to the pump’s negative terminal. The pump’s positive terminal connects directly to 5V.
Arduino Code for Smart Watering
The core logic is simple. Read the soil moisture sensor. If the value exceeds the dry threshold, activate the pump for a set duration (10 to 30 seconds depending on pot size). Wait a settling period (5 minutes) for water to distribute through the soil before reading again. This prevents over-watering by allowing the sensor to register the added moisture.
Add time-based constraints to prevent excessive watering: limit watering to a maximum of 3 times per day. Use a simple counter that resets every 24 hours (track elapsed time with millis()). This provides a safety net against sensor malfunction that could leave the pump running continuously.
Expanding to Multiple Zones
For a terrace garden with different plants, create a multi-zone system. Each zone has its own soil moisture sensor and pump (or solenoid valve). Use an Arduino Mega for more analogue inputs, or multiplex sensors using analogue switches. Each zone can have independent moisture thresholds since different plants have different water needs. Succulents might trigger watering at a sensor value of 800, while ferns trigger at 600.
Frequently Asked Questions
How long will the system run on battery?
The Arduino draws approximately 50mA continuously. A soil moisture check and 15-second pump run uses about 200mA during pumping. With a 10,000mAh power bank, the system runs for approximately 5 to 7 days with 3 watering events per day. For longer operation, add a small solar panel and charge controller.
Can I water multiple pots from one pump?
Yes. Use T-connectors and silicone tubing to split the water flow. However, the pots closest to the pump receive more water than distant pots due to pressure drop. Use drip emitters at each pot to equalise flow. Alternatively, use individual pumps per pot for precise control.
Will the soil moisture sensor work in Indian summer heat?
Capacitive sensors work well in hot conditions. Soil dries faster in Indian summers, so the system will water more frequently. Ensure the sensor’s electronics are shaded from direct sunlight and adjust the dry threshold seasonally as soil characteristics change with temperature.
Conclusion
An Arduino plant watering system is a practical project that saves plants and water. The under Rs 1,000 investment pays for itself by preventing plant loss during vacations and hot weather. Start with a single pot, refine the threshold settings, then expand to your entire garden with a multi-zone system.
Get soil moisture sensors, pumps, and Arduino boards at Zbotic.in for your smart garden project.
Add comment