Back to Projects

Automated Plant Watering System

Engineering Design II — Embedded control with capacitive moisture sensing

Arduino Embedded C++ Control Logic Capacitive Sensing Power Electronics
Tools & Methods Arduino Uno · Embedded C++ · Capacitive moisture sensors · MOSFET driver circuit · Dual-pump control · Serial debugging

Project Overview

This project involved the full design, build, and testing of an autonomous dual-pump plant watering system with capacitive moisture sensing. The system monitors soil moisture and activates water pumps automatically based on a calibrated threshold — using a pulsed control strategy to prevent runoff and oversaturation.

Control Strategy

Rather than running pumps continuously when moisture falls below threshold, a pulsed ON/OFF cycle was implemented: 500 ms ON followed by a 3 s OFF delay. This approach allows moisture to redistribute through the soil between pulses, preventing surface runoff and ensuring more even watering. The moisture threshold was calibrated experimentally near 550/1023 ADC through iterative dry and wet soil testing.

Circuit Diagram — Arduino + MOSFET Driver (image pending)
Schematic showing moisture sensor inputs, MOSFET pump drivers, and LED status output.

Hardware Design

The system uses capacitive soil moisture sensors (resistive sensors were evaluated and rejected due to corrosion and impedance drift over time). Each of the two pump channels uses an N-channel MOSFET driven from a digital output pin, with a flyback diode protecting against inductive kick from the pump motor.

Formula SAE chassis geometry in SpaceClaim Breadboard prototype prior to final wiring consolidation.

Testing & Calibration

Sensor calibration was performed by recording ADC values across a range of soil moisture conditions from fully dry to field capacity. Threshold selection near 550/1023 was chosen to balance responsiveness with frequency of pump activation. Extended testing over multiple days confirmed stable operation with no pump faults or runoff events.

Soil that was allowed to dry excessively exhibited immediate surface runoff when watered continuously — the pulsed strategy eliminated this behavior and maintained stable moisture gradients throughout the soil column.

Lessons Learned

Early continuous-run pump logic revealed the oversaturation problem quickly, driving the pulsed design. Hardware debugging — particularly sensor noise from power supply interference — required adding software averaging and timing delays before readings stabilized. These adjustments reinforced the importance of testing embedded systems under realistic conditions rather than relying on ideal bench assumptions. Incremental prototyping from a minimal single-channel setup dramatically reduced troubleshooting time as complexity grew.

Formula SAE chassis geometry in SpaceClaim Final demonstrative system with override button for presentation

Future Improvements