A compact, reliable drip controller that waters plants in small, repeatable pulses instead of occasional floods. An ESP32 reads a capacitive soil moisture probe and a BH1750 light sensor, then decides when to drive a pump through a relay. Data is sent to my backend for telemetry and alerts. The aim is a system that is simple to operate, gentle on plants, and easy to tune as conditions change.
Hardware
- Controller: ESP32 for sensing, logic and Wi-Fi connectivity.
- Sensors: capacitive soil probe for moisture; BH1750 over I²C for ambient light.
- Actuation: relay module switching a small diaphragm pump for precise micro-doses.
- Power & plumbing: separate supply for the pump, common ground, drip tubing to the pot.
How it behaves
The controller continuously reads moisture and light, smooths the readings, and applies two simple ideas: a hysteresis on soil moisture (start watering below a “dry” threshold, stop after reaching a “wet” threshold) and a light guardrail that blocks watering under strong sun to avoid waste. Water is delivered as micro-doses separated by soak periods, so moisture can propagate in the soil before the next decision. A lightweight rate limit caps the total number of doses within a time window to prevent over-watering.
Control strategy
- Moisture hysteresis: two thresholds to avoid on–off chatter and keep the plant in a healthy band.
- Light-aware logic: skip irrigation when lux is high (midday sun), resume when light drops.
- Micro-dosing: short pump pulses followed by a soak period; this reduces runoff and evens out absorption.
- Rate limit: a rolling window caps the maximum number of doses—useful for hot days or sensor noise.
Telemetry & backend
Each cycle, the node publishes moisture and lux to my server. A short history is kept for quick inspection, and low-moisture events can trigger notifications. This makes it easy to validate thresholds, spot sensor drift, and correlate watering with room conditions.
Installation notes
- Probe placement: mid-depth, away from the dripper, so readings reflect the pot—not only the wet spot.
- Calibration: take a “dry” and a “fully wet” reference for your specific soil to scale moisture properly.
- Wiring & safety: keep the relay default to pump-off, separate the pump’s supply, and protect against splashes.
- Tuning: start with conservative thresholds and increase dose duration only if moisture rises too slowly.
What I learned
- Short, spaced pulses keep soil moisture more stable than long watering cycles.
- A simple lux threshold prevents a lot of wasted water at midday.
- Per-plant calibration matters—different soils and pot sizes change the “feel” of the readings.
Next steps
- One-button dry/wet calibration stored on the device.
- Historical charts and pump event overlays on the web UI.
- Tank level sensing and low-water alerts.
Gallery
