Skip to main content
Back to projects

Case study / Personal project

Automatic IoT Plant Watering System

A sensor-driven plant care prototype that combines embedded programming, environmental control, and a monitoring interface to automate day-to-day plant management.

Plant watering system project preview

A prototype that links sensors, control logic, and software visibility into one plant-care workflow.

[ Problem ]

Static watering schedules ignore the real condition of the plant and its environment. I wanted a system that could react to live sensor data, keep the environment stable, and give useful visibility into what the hardware was doing.

[ Approach ]

01. Built the control loop around environmental sensor readings rather than a fixed schedule, so watering decisions could respond to actual conditions.

02. Combined Arduino and ESP32 work with a lightweight web interface to surface readings, graph behaviour, and make the system easier to reason about from software as well as hardware.

03. Used predictive logic and control-system thinking to balance watering, lighting, and temperature instead of treating each variable as an isolated feature.

[ Technical decisions ]

Sensor-led automation

The core behaviour is driven by measured conditions, which makes the system more adaptable than timer-based watering alone.

Predictive decision layer

Logistic regression and KNN were used to inform watering decisions, giving the prototype a more analytical basis than a simple threshold script.

Closed-loop environmental control

A PID-based control system handled temperature and lighting so the project could operate as a broader plant-care system, not only a pump trigger.

[ Outcome ]

  • > Brought together embedded programming, hardware integration, software design, and interface work in one coherent project.
  • > Strengthened my confidence working across disciplines where software decisions have direct real-world effects.
  • > Created a case study that shows curiosity beyond standard CRUD applications.