Global food production faces increasing pressure from climate variability, land degradation, water scarcity, and rising demand driven by population growth. Controlled environment agriculture aims to tackle these challenges by decoupling food production from weather, soil, and season. In addition, hydroponic CEA uses 80 to 95% less water than field production, grows year-round, and largely removes pest and disease pressure.
For our senior design capstone project, we built a mobile hydroponic crop production system with integrated environmental sensing, automated control, and plant imaging. The final product cost about $4,400 in parts.

Features
- two growing levels at independent environmental setpoints for side-by-side experiments, recording temperature, humidity, CO2, light, and nutrient concentration
- circulates and doses its own nutrient solution when concentration drifts off target using nutrient film technique (NFT) hydroponics
- runs the grow lights on a daily schedule and against a measured light level at the canopy
- photographs crops daily and derives leaf area, height, and leaf count per plant for growth tracking
- streams live video, posts photos to gallery, and sends sensor readings to a web dashboard
- allows adjusting environmental setpoints and manual control of any fan, light, or pump
- logs all sensor readings and actuator changes to a timestamped database
Building It
Structure
The frame is 1010 aluminum T-slot extrusion, cut down from 72-inch stock on a band saw. T-slot lets components mount anywhere along the rail, so all components are modularly attachable with the same T-slot system. The side and rear panels are quarter-inch acrylic cut on a laser cutter, which encloses the growing space while keeping the plants visible.
There are three levels. The bottom holds the nutrient reservoirs, the pumps, and the electrical enclosure. The two above it grow lettuce on steel wire racks, with foam insulation laid over them to retain environmental conditions. Four locking casters make the unit mobile, and the overall frame was constrained to fit through a standard doorway.
The hydroponics are Nutrient Film Technique (NFT), a thin film of nutrient solution running constantly over bare roots. The channels are plastic rain gutters, cut with hand tools and supported by 3D printed attachments.

Electronics
All wiring is contained in a single IP66 waterproof enclosure on the bottom level, below the water lines. It holds ten relay channels, transformer blocks, and fused distribution, driving all electronics and actuators: grow lights, circulation and dosing pumps, fans, arduino, raspberry pis, and sensors.
Each growing level carries its own sensor set: temperature, humidity, CO2, a conductivity probe in the nutrient tank, and a PAR sensor measuring light at the canopy. Sensor values are reported to an Arduino UNO R4 WiFi.

Control System
The firmware reads every sensor on a five-second loop and drives the relays from those readings: fans when a level runs warm, dosing pumps when the nutrient solution drifts off target, lights against both a daily schedule and the measured light level. Any relay can be switched to manual from the dashboard, overriding automatic control for a single actuator while the rest stay closed-loop.
Readings publish live over MQTT and batch into a Postgres database every five minutes. A separate event log records every actuator change, threshold breach, and user command with a timestamp, which can be used to trace conditions during operation.

Dashboard
The dashboard is a Next.js web app and serves as the human control interface to the system. It shows live readings from both levels, both camera feeds, history across the last hour, day, or week, a filterable activity log, and a gallery of the daily snapshots. The dashboard allows users to change environmental setpoints. Any actuator can be switched to manual and toggled from the same interface.
Imaging
A Raspberry Pi 5 and a Sony IMX500 camera sit above each level, serving a live stream and capturing a top-down photo at 10:00 a.m. daily. Two pipelines reduce those photos to growth metrics: a color threshold that separates green canopy from the dark tray and converts pixel count to leaf area, and a depth model (Depth Anything 3) that estimates plant height above the channel surface. These metrics can be used to track growth over time.
Lettuce Party
Following the senior design showcase, we celebrated the end of the project with a lettuce harvest party! We made sandwiches with the romaine lettuce we grew. It was the perfect way to end the project and enjoy the fruits (or moreso vegetables) of our labor.

Metal Fabrication · Laser Cutting · NFT hydroponics · Arduino · Circuit Design · Raspberry Pi 5 · Cloud MQTT · Postgres · Next.js · React · TypeScript · Depth Anything 3