PHYSICAL COMPUTING / IOT

Smart Garden

A connected planter that makes plant care visible. An ESP32 senses soil moisture and human presence, translating them into ambient light across the frame and soil bed, with live control through a cloud dashboard.

ROLE
Concept, enclosure fabrication, firmware, dashboard
STACK
Arduino IoT Cloud · C++ · ESP32 (M5Stack Core Ink)
HARDWARE
PIR motion · EARTH soil moisture · digital RGB LED strip
YEAR
2022 · Academic project
The Smart Garden planter: wooden frame with LED strip, succulents, and lit soil bed
The build — MDF frame, acrylic soil window, LED strip seated in the top rail, PIR sensor at the base.
01

Problem

Soil moisture is difficult to judge at a glance. Digital sensors can expose that information, but numerical readings still require someone to actively check a screen.

DESIGN INTENTION
Make the planter itself the interface.

Plant state should be readable at a glance through ambient physical feedback, without requiring a separate screen check. The lighting activates when someone approaches, making the system responsive to both the plant and the person.

SYSTEM OVERVIEWSENSE → PROCESS → RESPOND
SENSE
Human presence (PIR)
Soil moisture (EARTH probe)
Dashboard input
PROCESS
M5Stack ESP32 Core Ink
C++ firmware
Arduino IoT Cloud
RESPOND
Presence-aware frame lighting
Moisture-state LEDs
Live dashboard monitoring
02

Process & iterations

Built end-to-end over one term: component selection, enclosure fabrication, firmware, and the control dashboard.

2.1Hardware

M5Stack ESP32 Core Ink
M5Stack Core Ink
ESP32-based main controller connecting sensor inputs, cloud variables, and lighting outputs.
EARTH soil moisture sensor
EARTH moisture sensor
Measures moisture in the soil bed and provides the primary environmental input for moisture-state feedback.
PIR motion sensor board
PIR motion sensor
Detects movement near the planter and triggers presence-aware frame lighting.
Digital RGB LED strip
Digital RGB LED strip
Provides programmable visual feedback through the frame and soil-line lighting.

2.2Physical fabrication

01
Bare MDF frame parts on the workbench
02
First lighting test with the strip in the frame
03
Planted prototype with cyan frame light
04
Final build with green frame light and lit soil

The frame was fabricated from MDF using a laser cutter and band saw, with a milled channel in the top rail to integrate the LED strip. An acrylic front exposes the soil bed, allowing the embedded lighting feedback to remain visible.

2.3From hard-coded behavior to live control

HARD-CODED FIRMWARE→CLOUD VARIABLES→LIVE TUNING

Thresholds and lighting values initially lived in the firmware, so adjustments required re-flashing the board. Moving lighting controls to Arduino IoT Cloud enabled live adjustment of color, hue, and saturation through the dashboard while sensor values could be monitored remotely. Tuning went from a compile cycle to a slider.

Arduino IoT Cloud main dashboard with color and value controls
Arduino IoT Cloud — main dashboard and device registration.
Device registration in Arduino IoT Cloud
03

Final design — three behaviors

3.1

Presence lighting

When someone approaches the planter, the PIR sensor detects movement and activates the frame lighting. This allows the physical interface to respond to a person’s presence rather than remaining continuously active.

Hand near the planter, lights offHand near the planter, frame lit
INPUT
Person approaches
SYSTEM
PIR detects presence
FEEDBACK
Frame lighting responds
3.2

Custom lighting

Lighting controls are connected to cloud variables through Arduino IoT Cloud. Adjusting them on the dashboard updates the physical frame lighting in real time, allowing color and lighting states to be tuned without modifying the firmware.

Frame lit purpleFrame lit green
INPUT
Dashboard control
SYSTEM
Cloud variable syncs
FEEDBACK
Physical lighting changes
3.3

Moisture feedback

LEDs at the soil line translate the moisture reading into a simple physical state: red for dry and blue for sufficient moisture. The exact sensor value remains available on the dashboard, while the ambient lighting makes the overall state visible at a glance.

Blue soil LEDs indicating sufficient moistureRed soil LEDs indicating dry soil
INPUT
Soil moisture reading
SYSTEM
ESP32 evaluates state
FEEDBACK
Soil LEDs show condition
LIVE DEMO

Try the feedback logic

Drag the moisture level to see how the system translates sensor data into ambient feedback.

MOISTURE 62 · SOIL OK — LED BLUE
This simulation mirrors the prototype’s firmware logic: readings below 40 trigger the dry state and red LED feedback.
04

Learnings

4.1

Ambient feedback reduces screen dependency

Encoding plant state directly into the object made the system understandable without requiring a separate screen check. The planter itself became part of the interface.

4.2

Live variables change how you design

Once thresholds and colors became cloud variables, tuning became a design activity instead of a firmware chore.

4.3

Fabrication is interface work

The milled LED channel and the acrylic soil window aren't cosmetic — they are what make the feedback legible.