AgroNext · greenhouse automation system
Sensing to decision, decision to action.
ClimaNex measures the greenhouse air, TerraNex the root zone. A local AI inside the greenhouse turns these readings into irrigation, fertilisation, heating and ventilation decisions; once a decision passes the safety check, relay channels apply it to pumps, fans and heaters.

Tag values replay a real ClimaNex log.
System
One closed loop from measurement to relay.
Two sensor modules, one local decision unit and four independent control channels. Every decision rests on a measurement packet, every command passes a check, and the effect of every action shows up in the next reading.
- 01
Sensing
ClimaNex: temperature, relative humidity (BME680, I²C) and CO₂ (NDIR, UART). TerraNex: soil moisture (ADC), pH (ADC) and NPK (RS485 / Modbus RTU).
- 02
Data
Each reading is packaged with device, zone, time, unit and quality, and kept in a local store with history and the plant profile.
- 03
Local AI
The model on the Arduino-based local unit evaluates climate, root zone and recent trend together.
- 04
Decision
Separate decisions for irrigation, fertilising, ventilation and heating; each passes data-freshness, duration and on/off interval limits.
- 05
Action
The approved command goes to the right ESP32: TerraNex drives the irrigation and dosing pumps, ClimaNex the fan and heater, through relays. The next reading restarts the loop.

Module 01 · Climate
ClimaNex
ClimaNex measures temperature, relative humidity and CO₂ inside the greenhouse every five seconds, timestamps each reading and hands it to the decision system. It carries two independent control outputs, for a heater and a fan, and shows current values on its own display.
| Reading / output | Component | Interface | Unit |
|---|---|---|---|
| 1Temperature | BME680 | I²C 0x76 | °C |
| 1Relative humidity | BME680 | I²C 0x76 | %RH |
| 2CO₂ | MH-Z14A NDIR | UART | ppm |
| 3On-site display | 1.8″ TFT | SPI | — |
| 4Heater | 5 V relay, low trigger | GPIO25 | NO |
| 4Fan | 5 V relay, low trigger | GPIO26 | NO |
From the log
Temperature22 Sep 2026 · 19:10–22:45
Relative humidity22 Sep 2026 · 19:10–22:45
CO₂25 Sep 2026 · 13:40–14:50
Module 02 · Root zone
TerraNex
TerraNex reads the root zone: soil moisture and pH arrive on analog inputs, NPK values over an RS485 / Modbus line. The same board drives the irrigation pump and the dosing pump for a prepared nutrient solution through two separate relays; the two pumps never run at the same time.
| Reading / output | Component | Interface | Unit |
|---|---|---|---|
| 1Soil moisture | Capacitive probe | ADC · GPIO34 | % relative |
| 2pH | Analog interface + BNC electrode | ADC · GPIO35 | pH |
| 3NPK | RS485 probe + MAX3485 | Modbus RTU | mg/kg |
| 4Irrigation pump | 5 V relay, low trigger | GPIO25 | NO |
| 4Fertiliser dosing | 5 V relay, low trigger | GPIO26 | NO |



Field
A real greenhouse. Real data.
AgroNext is developed not on a lab bench but in a real 10 m² pepper greenhouse. The probes sit at the base of the plants, the modules between the rows. The system collected measurements in this greenhouse for 45 days.
The curves on the right come straight from ClimaNex's own log. Readings are reduced to two-minute averages and nothing else is changed. Where the log has a gap, the line breaks too.
- Sampling
- 5 s, both modules
- Timestamp
- local unit clock
- Missing reading
- left empty, never filled
- Transport
- local line + TLS every 60 s
Evening of 22 September 2026, ClimaNex
2,278 readings · 2 min average
After 19:40 temperature falls from 27.4 °C to 26 °C while relative humidity climbs from 65 % to 70 %. The decision system looks at this trend, not at a single value.
Local AI
The decision is made inside the greenhouse.
The model runs on an Arduino-based unit in the greenhouse, not on a server on the internet. It reads the sensor stream, the last hour's trend and the plant profile together; its decision passes a separate limit check before it reaches a relay.
- 01
Sensor streams
ClimaNex and TerraNex send a timestamped measurement packet every five seconds.
Example decision trace: 14:02:05 · soil moisture 38.2 % · 26.1 °C · 43 % RH
- 02
Context layer
A 12 × 5 min window, the trend, time of last irrigation and the plant profile are assembled.
Example decision trace: last 60 min: moisture −8 pts · last irrigation 3 h ago · pepper, floor 40 %
- 03
Local AI
A GRU time-series model evaluates the need over the next 30 minutes.
Example decision trace: irrigation need within 30 min: high
- 04
Decision
A channel and duration are proposed. Each channel gets its own decision.
Example decision trace: irrigation · 20 s
- 05
Safety limits
Data freshness, maximum run time, on/off interval and manual stop are checked. A failing decision is logged, not applied.
Example decision trace: data 5 s ≤ 15 s ✓ · 20 s ≤ 60 s ✓ · single pump ✓
- 06
Actuator command
The command goes to the right ESP32 with an ID, channel, duration and validity. When time is up the board switches the pump off itself.
Example decision trace: #0142 · TerraNex · GPIO25 · 20 s
Model · GRU · inputs: temperature, relative humidity, soil moisture, CO₂ · window 12 × 5 min · horizon 30 min
Why local?
- If the link drops
- Measurement, logging, decisions and control continue. The remote panel and NexAI wait for sync; buffered records are sent in time order when the link returns.
- Latency
- The decision never leaves the local network the reading arrived on. There is no internet round trip between command and relay.
- Stale commands
- An expired command is never replayed. When the link returns, a new decision is made on current readings.

NexAI
Talk to NexAI.
In the web and mobile app, NexAI answers questions about your greenhouse using measurement history, decision records and command history, and shows which readings each answer rests on.
NexAI cannot switch a pump, fan or heater directly. Its suggestions pass the same limit check as local AI decisions.
Why did irrigation start in the north section?
In the north section soil moisture fell from 46 % to 38 % over the last 50 minutes. At that rate the 40 % floor in the plant profile would be crossed within half an hour.
The local model proposed irrigation. The check confirmed data freshness, duration and time since the pump last ran. The irrigation channel ran for 20 seconds at 14:02.
- moisture 46 % → 38 %
- decision #0142
- 20 s
TerraNex · soil moisture 13:12–14:02 · decision log #0142
Example conversation.
Greenhouse panel
What is happening, why, and what was done.
Observe
Every reading shows its latest value, a six-hour trend and how old it is. A late sensor turns amber; a missing value stays empty.
Understand
The AI Decision Summary gives the latest decision and its reason; NexAI answers questions on the same screen, citing readings.
Act
Alerts and decision history show which command was issued, when, and on which reading it was based.
The panel requires sign-in. Each user sees only their own greenhouse; access is enforced in the database, row by row.
Open the greenhouse panel
Integration
It drives the equipment the greenhouse already has.
AgroNext does not replace the pump, fan or heater; it takes over the switch that turns them on and off. Each control channel provides a dry contact through a transistor driver and a 5 V relay. Small DC pumps are driven directly; mains fans and heaters through the greenhouse's existing contactor or the device's own control input.
- Channels
- 4 independent outputs · TerraNex 2, ClimaNex 2
- Relay
- CW-020 · 5 V coil · low trigger
- Driver
- 2N3904 · 1 kΩ base resistor
- Contact
- NO used, NC left open · equipment off when relay releases
- Protection
- line fuse · flyback diode on DC pumps
- Time limit
- irrigation ≤ 60 s · fertiliser ≤ 30 s · independent on-board timer
- Next channel
- motorised vent · separate driver, direction control, limit switches
Experiment
Same greenhouse, two ways of control.
For three days irrigation is done by hand, on the usual routine; for the next three days AgroNext makes the decisions. The same sensors keep measuring through both periods; the only change is where the decision comes from.
- Comparison
- two consecutive periods, same plot
- Also recorded
- weather and starting moisture
- Publication
- results with raw measurements and method
| Measured in both periods | Manual control | AgroNext control | ||||
|---|---|---|---|---|---|---|
| Measured in both periods | Day 1 | Day 2 | Day 3 | Day 4 | Day 5 | Day 6 |
| Water applied | measured | measured | measured | measured | measured | measured |
| Soil moisture curve | measured | measured | measured | measured | measured | measured |
| Irrigation count and time | measured | measured | measured | measured | measured | measured |
| Temperature · humidity · CO₂ | measured | measured | measured | measured | measured | measured |
| Plant observation | measured | measured | measured | measured | measured | measured |
Product path
From breadboard to a product installed in the greenhouse.
- 01

Field prototype
Both modules on breadboards, running in a real greenhouse.
- 02now
Sensor validation
Soil moisture dry/wet endpoints, two-buffer pH calibration, NDIR warm-up time.
- 03

Custom PCB
Carrier boards for TerraNex and ClimaNex: ESP32 socket, measurement, control and field-connection zones.
- 04
Enclosure
Moisture- and dust-sealed box, probe cable glands, display window.
- 05
Pilot greenhouse
Installation in a second greenhouse, with a method written in advance.
- 06
Scalable product
One module set per zone, repeatable installation, one panel.
TEKNOFEST 2026 · Agricultural Technologies · Fully Autonomous Greenhouse Systems finalist