VaniGrow Monitoring
A sensor system that warns vanilla farmers when greenhouse conditions make a fungal disease likely.
- ESP32
- MQTT
- Node.js
- Supabase
- Next.js
- Recharts
The problem
Vanilla plants can be damaged by a fungal disease called Fusarium stem rot, which thrives when the air is warm and humid in the wrong way.
Farmers usually find out after the damage has started, because nobody watches the greenhouse climate around the clock.
What I built
Sensors in the greenhouse measure air temperature, humidity, and leaf temperature. The system turns those readings into a measure called vapor pressure deficit (VPD) and tracks how long conditions stay risky.
A live dashboard shows the current risk and lets an operator switch a fan or vent remotely. It can also export a daily report as PDF or CSV.


The result
- Won 1st place out of 11 teams at Bootcamp TETI 2026, judged by external mentors.
- Delivered a working path from sensor to dashboard: ESP32 sensors, a message broker, a Node.js bridge, a database, and a live Next.js 16 dashboard.
My role
Designed the event-driven data pipeline from the ESP32 sensors through MQTT and the Node.js bridge to Supabase and the Next.js dashboard.
Technical details
Tech stack
- Edge
- ESP32 (C++ firmware)
- DHT22
- MLX90614
- Wokwi simulator
- Messaging
- MQTT
- Backend
- Node.js bridge
- Supabase (PostgreSQL)
- Dashboard
- Next.js 16
- Recharts
Architecture
- ESP32 sensorsMeasure air and leaf conditions and listen for commands.
- MQTT brokerCarries readings, device status, and commands.
- Node.js bridgeValidates readings and writes them to the database.
- SupabaseStores sensor logs and device status.
- Next.js dashboardShows live risk, charts, and remote controls.
Key decisions
Risk based on VPD and duration
Fungal risk depends on how long conditions stay unfavorable, so the model accumulates time above thresholds instead of reacting to a single reading.
Two-way control over MQTT
The same channel that brings readings in also carries fan and vent commands out, which keeps the hardware side simple.