Skip to main content
Johannes
All projects

VaniGrow Monitoring

1st Place out of 11 teams, Bootcamp TETI 2026IoTJuly 2026

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.

VaniGrow live greenhouse fungal risk monitoring dashboard and Wokwi simulation
VaniGrow VPD and sensor timeline charts with remote actuator control

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

  1. ESP32 sensorsMeasure air and leaf conditions and listen for commands.
  2. MQTT brokerCarries readings, device status, and commands.
  3. Node.js bridgeValidates readings and writes them to the database.
  4. SupabaseStores sensor logs and device status.
  5. Next.js dashboardShows live risk, charts, and remote controls.
Readings travel from the greenhouse to the screen in a few steps, and commands travel back the same way.

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.