Soil cooling for greenhouses: a Flutter app that talks straight to the controller

The mobile app of a subsidised R&D project for Signum: a live soil-temperature heatmap, sensor and pump readings and temperature settings, over a REST API served by the ESP32 controller.

Client
Soil-cooling control
Role
Mobile app and controller API
Period
2026
Platforms
Mobile app

01 · Context

Cooling the soil around plant roots

Signum's subsidised R&D (B+R) project cools the soil around the roots of plants grown in greenhouses, foil tunnels and pots, with a ground heat exchanger fed by groundwater. Signum's team built the heat exchanger, the water loop and the controller hardware. In 2026 RSApps delivered the diagnostic interface the grant calls for: the API between the controller and a phone, and the mobile app.

02 · Problem

A broker in the way, and no hardware to test against

An earlier design passed every message through a hub and an external MQTT broker, with separate clients on the local and the public network. The app also had to be built and tested without a controller on the desk.

03 · What I did

A direct REST link and a mock controller

RSApps moved the link from MQTT to REST: the phone talks to the ESP32 directly over Wi-Fi, reads its state every few seconds and sends new settings back. The endpoints were specified first and served by a Python mock of the controller, so the app was built and tested without the hardware.

  • A soil-temperature heatmap drawn onto the real shape of the cooled area, from the sensors' physical positions
  • Soil, air and water-loop temperatures, humidity, and the state of both pumps and the valves
  • Target temperature and hysteresis, sent to the controller
  • The controller's alerts, with a counter on the main screen, and a notice when the connection drops or comes back
  • Several installations, each saved as a connection profile in a local Drift database
  • A layered BLoC architecture with go_router, get_it and Dio, and a Polish interface

04 · Result

Every requirement of the task met, and documented for the grant

The app meets each requirement the grant application sets for the diagnostic interface: real-time monitoring of soil and coolant temperature, alerts about faults, and remote temperature thresholds. RSApps also wrote the formal Polish report for the funding institution, mapping the delivered work to the grant's tasks.

Monitor screen: the system state and a colour heatmap of soil temperature over the cooled area, with a reading at each sensor. Further down the monitor: soil and air temperature and humidity, water temperature into and out of the loop, and whether the intake pump, the loop pump and the valves are on. Settings screen with a slider for the target temperature, a hysteresis selector and a Save button. Server list with two saved installations, a greenhouse and a foil tunnel, and a switch showing which one the app is connected to.
The app connected to the project's Python mock of the controller, on an iPhone simulator. The interface is in Polish.

Have a codebase that needs the same treatment?