The problem
Keeping a potted plant watered looks trivial until a hosteler goes home for a week: too little water and the plant wilts, too much and the roots rot, and fixed-interval timers water the same amount whether the soil is damp or dry. Automatic irrigation answers the real problem — water on demand — but most student builds cheat: they use resistive soil probes whose exposed electrodes corrode away in wet soil within weeks, drift out of calibration, and teach nothing about measurement. This project does it properly: a capacitive soil moisture probe (no exposed electrodes, corrosion-resistant), an Arduino Uno reading it through the 10-bit ADC, a relay-isolated 5V submersible pump for actuation, and firmware built around threshold control with hysteresis so the pump does not chatter at the setpoint. The moisture-percentage math is anchored by a buyer-run dry/wet calibration on the student's own soil — a deliberate viva-strengthening step, because a moisture threshold in clay means something different in cocopeat. This is a deliberately local system: Arduino, sensor, relay, pump — no Wi-Fi, no cloud, no app. It is engineered to be understood and defended in a viva.
Capacitive probe buried at root depth; analog output rises as the soil dries, read on Arduino pin A0.
Follow the working sequence
How it works
- The capacitive soil probe is buried at root depth; its analog output rises as the soil dries. The Arduino reads it on analog pin A0 with 10-bit resolution (0–1023 counts).
- Firmware maps the raw reading to a moisture percentage between the buyer's own calibrated dry and wet reference points (taken during commissioning), sampled every few seconds.
- When the moisture percentage falls below the ON threshold (design target ~35%) and stays there across consecutive samples, the firmware energizes the 5V relay module.
- The relay switches the 5V mini submersible pump (design target ~120 L/h max per pump datasheet), which lifts water from the reservoir and delivers it through the tubing to the plant for the configured dose duration (design target 5–10 s).
- Hysteresis governs the stop: the pump switches off only when moisture rises above the higher OFF threshold (design target ~45%), preventing rapid on/off cycling around a single value.
- Fail-safes cap the build: a maximum number of watering cycles per hour (design target 6) and a lockout when the sensor reads a stuck extreme, indicating a disconnected or shorted probe.
- The optional 16x2 LCD (or the default LED/buzzer) reports live moisture percentage and pump state; a 5V 2A USB adapter powers the logic, with the pump on its own switched supply.
Tech stack:
- Arduino Uno (ATmega328P, 10-bit ADC)
- Capacitive soil moisture sensor (analog)
- Single-channel 5V relay module
- 5V mini submersible pump with tubing
- 16x2 LCD display (optional)
- Arduino IDE (C/C++ firmware)
- Breadboard + jumper-wire prototyping
- Threshold-with-hysteresis control logic
| Parameter | Value |
|---|---|
| Controller | Arduino Uno, ATmega328P (datasheet) |
| Sensor | Capacitive soil moisture probe, analog output |
| ADC resolution | 10-bit, 0–1023 counts (datasheet) |
| ON threshold | Approximately 35% moisture (design target, configurable) |
| OFF threshold | Approximately 45% moisture (design target, configurable) |
| Pump | 5 V DC mini submersible, ~120 L/h max (datasheet value) |
| Dose duration | Approximately 5–10 s per watering (design target, configurable) |
| Max cycles | Approximately 6 watering cycles per hour (design target, configurable) |
| Relay | Single-channel 5 V module, 10 A 250 VAC contacts (datasheet) |
| Supply | 5 V 2 A adapter for logic; pump on switched supply |
Project features
- [Capacitive soil moisture sensing] A corrosion-resistant capacitive probe senses through its PCB coating — no exposed electrodes, so unlike resistive YL-69 style probes it does not corrode and drift in wet soil. Analog output is read on the Arduino's 10-bit ADC (0–1023).
- [Threshold watering with hysteresis] The pump switches ON below the configured moisture threshold (design target ~35%) and OFF above a second, higher threshold (design target ~45%), so watering has a dead band and the relay never chatters at a single setpoint.
- [Relay-isolated pump drive] A single-channel 5V relay module switches the pump from a separate supply; the pump is never powered from the Arduino's 5V pin, protecting the board from inrush current and motor noise.
- [Dose-timed watering with fail-safes] Each watering runs the pump for a configurable dose duration (design target 5–10 s per cycle); firmware also enforces a maximum number of watering cycles per hour and a sensor-fault lockout, so a disconnected probe cannot flood the pot.
- [Buyer-run dry/wet calibration] The calibration guide walks the student through recording their own sensor readings in bone-dry and fully-watered soil and mapping those to 0–100%; thresholds are then chosen on real data, and the report documents the student's own calibration table.
- [Optional 16x2 LCD status display] Shows live moisture percentage and pump state; a plain LED + buzzer status channel is the default, the LCD is configurable at order time.
- [Plain, viva-friendly Arduino C firmware] Commented single-file sketch: sensor read, percentage mapping, hysteresis logic, relay drive, dose timing and fail-safes — written so the student can explain every line.
- [Bill of materials] Every part named with its role and where to source it, so the student can rebuild or repair the unit themselves.
What is included
- Working automatic plant watering prototype (Arduino, capacitive probe, relay, pump, tubing, reservoir jar)
- Well-commented Arduino firmware sketch (sensor read, calibration mapping, hysteresis, dose timing, fail-safes)
- Circuit and wiring diagram (breadboard layout + schematic)
- Dry/wet calibration guide with the student's own calibration table template
- Project report PDF (background, sensor theory, ADC interfacing, threshold control, methodology, calibration results)
- PPT presentation for final review
- Viva Q&A preparation document (capacitive vs resistive sensing, ADC, hysteresis, relay isolation, calibration)
Limitations & prerequisites
- Single watering zone: one pump, one plant pot per default build — multi-zone watering needs extra relay channels and pumps (listed as future scope).
- No remote monitoring or control: this is a deliberately local Arduino system — no Wi-Fi, no cloud dashboard, no phone app. An ESP32/cloud variant is a different project, not an unlisted feature of this one.
- The capacitive probe resists corrosion but is not immortal: buried permanently in heavily fertilized or saline soil it degrades over months; the manual includes a periodic-replacement maintenance note.
- The 5V mini pump is a low-flow hobby pump (~120 L/h max per datasheet, lift roughly 40–110 cm) — it waters pots, not fields, and cannot lift water to a terrace tank.
- Moisture thresholds are soil-dependent: 35% in clay is not 35% in cocopeat — the defaults are starting points only, and the buyer's own calibration is mandatory before the numbers mean anything.
- Not weather-aware: rain or hand-watering is not detected, and there is no rain-skip behavior (a rain-sensor input is listed as future scope).
Frequently Asked Questions
Why a capacitive sensor instead of the common resistive probe?
Resistive probes pass current through exposed electrodes into the soil; electrolysis corrodes them within weeks to months in wet soil, and the readings drift continuously. The capacitive probe senses through its PCB coating with no exposed metal, so it survives long-term burial and holds calibration — the difference itself is a good viva question.
How is the moisture percentage calculated?
The Arduino reads the probe's analog voltage and maps it linearly between two reference readings you record during commissioning — one in bone-dry soil, one in fully watered soil. The calibration guide covers the procedure; thresholds only mean something after this step.
Can it water multiple plants?
As shipped it waters one zone (one pot). The firmware structure supports extra zones, each needing its own relay channel, pump and probe — documented as future scope with a parts list.
Can I monitor the plant from my phone?
Not with this build — it is a local Arduino system with no Wi-Fi. Remote monitoring needs an ESP32 and a cloud dashboard, which is a different (IoT) project; an ESP32 retrofit path is listed as future scope.
What stops the pump from flooding the plant if the sensor fails?
Two fail-safes: a maximum number of watering cycles per hour, and a lockout when the sensor reading sticks at an extreme (disconnected or shorted probe). Both are configurable in the firmware.
Is this project suitable for a final-year project?
Yes — for Electronics, E&TC and Electrical programs. It demonstrates sensor interfacing, ADC and signal conditioning, actuator drive with relay isolation, threshold control with hysteresis, and a real calibration methodology the student performs and documents. Suitable for B.E./B.Tech final-year projects in Electronics, E&TC and Electrical engineering.
Components & software requirements
- Arduino Uno (ATmega328P, 10-bit ADC)
- Capacitive soil moisture sensor (analog)
- Single-channel 5V relay module
- 5V mini submersible pump with tubing
- 16x2 LCD display (optional)
- Arduino IDE (C/C++ firmware)
- Breadboard + jumper-wire prototyping
- Threshold-with-hysteresis control logic
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.
Download free synopsis (PDF)
Enter your name and email — the synopsis PDF downloads immediately. We may send occasional project updates; no spam, unsubscribe anytime.