Skip to content

Case study · IoT platform · Indoor farming

GrowOS: a grow-room controller designed from the sensor to the dashboard.

An R&D prototype for indoor growers: a controller that measures the climate and the root zone, acts on it locally, and reports to a cloud dashboard.

Client
In-house R&D
Service
IoT · web app
Timeline
2026, prototype
Stack
ESP32-S3 · ESPHome · MQTT · Node-RED · Supabase · Next.js
GrowOS prototype dashboard showing a grow tent with VPD, sensor cards, a 24-hour temperature chart and alerts, on sample data

01

Why we built it

Growing indoors replaces sun and weather with machines. That makes it precise, and unforgiving. At the large end, vertical farms showed how hard the economics are: AeroFarms filed for bankruptcy in June 2023 [1], and Plenty, after raising close to a billion dollars, filed for Chapter 11 in March 2025 [2]. Coverage of the sector keeps pointing at the same cost: electricity for lighting and climate control [3].

At the small end the problem is control rather than capital. Plant health depends on temperature and humidity together, which growers track as vapour pressure deficit (VPD): too humid invites mould and disease, too dry makes the plant close its stomata and stall [4]. Keeping VPD in range means reading sensors all the time and acting on fans, heaters and irrigation, day and night.

The options we looked at fell into three groups: monitor-only gadgets that alert but don’t act, closed systems tied to one vendor’s hardware, and enterprise platforms priced for commercial greenhouses. Open firmware works, but needs an engineer to keep it running. GrowOS is our attempt at the missing middle: open hardware, local control, and a dashboard a grower can read at a glance.

02

What we built

  • A controller that decides on the spot

    An ESP32-S3 running ESPHome reads air temperature and humidity, CO₂, and a 7-in-1 soil probe over RS485 (moisture, temperature, EC, pH, N-P-K). It computes VPD on the board and drives 8 relays and a PWM light dimmer. The light schedule, fans by VPD, heating and irrigation rules run on the controller itself, so the room stays managed if the network drops.

  • A gateway for the equipment already in the room

    Mosquitto (MQTT) and a 41-node Node-RED flow in Docker, on a Raspberry Pi or mini-PC. It polls existing equipment over Modbus TCP, forwards readings to the cloud and relays commands back to the devices.

  • A multi-tenant backend

    A Supabase Postgres schema of about 40 tables, with sensor readings partitioned by month and row-level security per organisation, plus seven edge functions for ingest, device commands, the automation engine and equipment telemetry.

  • A dashboard built around VPD

    Sample data

    A Next.js app with a zone overview and VPD gauge, sensor cards, 24-hour charts, actuator controls and alerts.

Screens · Architecture

  • GrowOS architecture in four layers: ESP32 controller, edge gateway, Supabase backend, Next.js dashboard
    Four layers, from the controller in the room to the dashboard.

Screens · Prototype

Sample data
  • GrowOS prototype dashboard with sensor cards and charts
    The prototype dashboard, running on sample data.
  • Explainer: VPD ranges from too humid to too dry, with a worked example of 24.5 °C and 65 % giving 1.08 kPa
    VPD, the number the controller steers by.

Screens · Mobile

Concept
  • GrowOS mobile concept with VPD, sensor tiles, controls and an alert
    Mobile concept, not built.

03

Where it stands

  • 4

    layers designed and coded: device, gateway, cloud, dashboard

  • 10

    sensor readings per controller, plus VPD computed on the board

  • 7

    backend functions

  • ~8,700

    lines of code and configuration

Status, October 2026: the code and architecture are written and the dashboard runs on sample data. Nothing has run on hardware yet, and GrowOS is not a commercial product.

04

What’s next

The next step is a physical pilot in a grow tent: build the controller, run it through a full grow cycle and compare the logged climate with the targets.

The pilot will show which parts of the design hold up: sensor accuracy, how well the on-board rules keep VPD in range, and what a grower actually needs on the dashboard.

Building something with sensors and data?