Adaptive AgroTech← Return to control room
ENGINEERING GUIDE / VERSION 1.1

Adaptive AgroTech Greenhouse Automation and Control

Explore operating decisions in a true 3D greenhouse, rehearse faults, and inspect real sensor logs. This guide defines what the results mean and how to extend the demonstration into a real monitoring workflow.

INTERACTIVE 3D VIEW LOCAL SIMULATION LOCAL CSV ANALYSIS EDITABLE SOURCE

Navigate the 3D greenhouse

The Three.js viewer displays the greenhouse as interactive 3D geometry. Drag with the left mouse button to orbit, scroll or pinch to zoom, and right-drag to pan. Use ISO, Top and Side for preset views, Fit to frame the model, and the + / − controls to adjust zoom. Hide roof reveals the interior; Fullscreen expands the viewer. Click equipment to inspect its current control state.

Actuator animation reflects the same simulation outputs used by the charts and control explanations. The 3D view does not add spatial climate simulation, measured geometry or live equipment feedback. Changing the camera does not change the greenhouse model.

The renderer requires WebGL. If it cannot start, the application automatically uses its labelled 2D SVG fallback. Climate simulation, control logic and CSV analysis remain available. Hardware acceleration and WebGL support depend on the browser and device; enable them where supported and reload to use 3D. All rendering code is bundled locally, with no CDN dependency.

1. Where this is useful

Teaching & exhibitions

Show why opening a vent can lower temperature, waste CO₂ or remove moisture; why shading changes both heat and light; and why a requested action may be blocked by an interlock.

Operations & consultancy

Import a logger's observations, inspect time outside the selected recipe, and discuss what to measure or change next. Export recipes and reports as a reviewable record.

Scope: the simulation is a single-zone, simplified climate model. It has not been calibrated against a greenhouse. Its actuator states, scenarios and resource budgets are illustrative. It does not predict yield, disease, crop quality or validated savings, and it does not send commands to equipment.

2. Read the climate correctly

Vapor pressure deficit

Relative humidity expresses how close the air is to saturation at its current temperature. Air VPD expresses the difference between saturation vapor pressure and actual vapor pressure. Two greenhouses with the same RH can have different VPD if their temperatures differ.

eₛ(T) = 0.6108 × exp[17.27 T / (T + 237.3)]   [kPa]
eₐ = eₛ(Tair) × RH / 100
VPDair = eₛ(Tair) − eₐ

Temperature is in °C. The app also estimates leaf VPD from an assumed leaf-to-air temperature offset. A real leaf may be warmer or colder than air because of radiation, transpiration and airflow. Air-temperature sensors alone cannot measure leaf VPD.

Tleaf = Tair − 0.7 °C   [demo assumption]
VPDleaf = max[0, eₛ(Tleaf) − eₐ]

The displayed leaf VPD is limited to zero. Use the condensation margin to distinguish saturation from an assumed leaf temperature below dew point.

Dew point & condensation margin

The dew point is the temperature at which the current vapor pressure reaches saturation. The margin between assumed leaf temperature and dew point helps identify a condensation condition. It does not measure leaf wetness or establish a disease diagnosis.

γ = ln(eₐ / 0.6108)
Tdew = 237.3 γ / (17.27 − γ)
Leaf condensation margin = Tleaf − Tdew

Light: an instantaneous reading versus an accumulated dose

PPFD is measured in µmol m⁻² s⁻¹. Integrating PPFD through time gives a photon integral in mol m⁻². It is a daily light integral only when the record spans a complete day with sufficient data coverage.

Photon integral = ∫ PPFD(t) dt / 1,000,000   [mol m⁻²]

The dashboard's light accumulated during a partial simulation or CSV observation window must not be interpreted as a complete daily DLI. Missing time cannot be counted as darkness. Lux is not a drop-in replacement for a calibrated PAR quantum sensor.

3. Understand the control decisions

Automatic mode evaluates the active recipe against the simulated measurements. Hysteresis uses different switch-on and switch-off conditions so a small change around a threshold does not rapidly alternate an output. Manual requests remain subject to the demonstrated interlocks.

DecisionOperating principleWhat to verify on a real installation
Heating & ventilationHeating supports the temperature target. Ventilation exchanges heat and moisture; the two may cooperate during dehumidification.Heater type, airflow, vent geometry, combustion safety, temperature gradients and plant-level conditions.
Humidity removalHumidity-only ventilation requests 30% opening only when outdoor absolute humidity plus 0.2 g/m³ is below indoor absolute humidity. Temperature-driven ventilation remains independent. Outdoor RH alone does not determine drying potential.Both indoor and outdoor temperature/RH, sensor calibration and site-specific dehumidification performance.
Wind & rain protectionThe demo blocks roof-vent opening under its weather lock condition.Manufacturer's limits, rain ingress, wind direction, vent limit switches and independent weather protection.
CO₂ enrichmentThe demo inhibits dosing during ventilation or unsuitable operating conditions.Gas delivery, independent monitoring, occupancy procedures, leakage and the site's permitted operating limits.
MistingHumidity conditions can inhibit a cooling or humidification request.Droplet size, water quality, leaf wetness and evaporation effectiveness.
IrrigationA low-water condition inhibits a requested irrigation action.Pump dry-run protection, flow confirmation, drainage, substrate calibration and emitter uniformity.
Sensor faultA fault scenario demonstrates a fallback instead of continuing to trust a bad measurement.Per-sensor stale-data policy, redundancy, alarms and an independently engineered safe state.

Recipe validation keeps the upper VPD threshold at least 0.2 kPa above the lower threshold and the upper substrate threshold at least five percentage points above the lower threshold. Facility volume and area must describe a mean height between 2 and 8 m. Changing facility parameters resets the run and history; climate setpoint changes apply to the current run.

Implemented demonstration limits

Rain or wind above 10 m/s closes the roof vent. Heating is inhibited at 35 °C. Misting is inhibited when RH reaches one percentage point below the recipe ceiling. Irrigation and misting stop at a 10 L tank reserve. An irrigation pulse lasts at most 120 simulated seconds and is followed by a 10-minute cooldown. CO₂ dosing is inhibited if the vent exceeds 10%, outdoor solar radiation is below 80 W/m², or concentration reaches the target plus 50 ppm or 1,500 ppm. Timed overrides expire; the default is 10 simulated minutes.

In the climate-sensor fault scenario, heating, misting and CO₂ dosing stop; the example fallback requests a 20% vent and at least 50% circulation fan. Weather protection takes priority over the vent fallback. These percentages are not a general recommendation for a real sensor failure.

The exact demo thresholds and fallback actions are defined in the source. They are examples, not certified protective functions. A generic rule such as “turn everything off” is not a complete safe-state strategy for a real greenhouse.

4. What the model leaves out

The initial dashboard includes 15 minutes of model-generated history so its trends are immediately visible. This history is simulated, not measured.

The model links greenhouse air temperature, moisture, CO₂, light and a simplified root-zone water store to weather and actuator outputs. It represents overall behavior rather than detailed spatial airflow or crop physiology. It assumes one mixed zone; an actual greenhouse may contain substantial horizontal and vertical gradients.

Thermal storage, heat loss, ventilation effectiveness, radiation transmission, evapotranspiration, CO₂ uptake and water storage depend on the structure, canopy and equipment. The supplied parameters support a coherent demonstration, not a fitted digital twin. Energy, water and CO₂ accumulators are calculated from assumed actuator rates and runtime; compare them only within the stated model.

Default house: 240 m² floor area · 960 m³ volume · 500 L tank
Effective thermal storage: 85 kJ m⁻² K⁻¹
Envelope conductance per floor area: 6 W m⁻² K⁻¹
Maximum heater input: 180 W m⁻²
Maximum irrigation / mist flow: 1.0 / 0.2 L m⁻² h⁻¹
Maximum CO₂ dosing: 0.008 kg m⁻² h⁻¹
PAR = solar radiation × 0.72 × (1 − 0.65 × shade fraction) × 2.02

The 2.02 conversion factor is an assumed solar-radiation to PPFD approximation; it is not a universal conversion for artificial lights. Heat totals represent delivered modeled heat, not a fuel bill or boiler efficiency calculation.

Crop recipes are editable starting points for learning and review. Cultivar, growth stage, light, root-zone properties, climate and management strategy affect appropriate setpoints. The source references support the concepts, not a universal “best” recipe.

Before using the model for an engineering decision

  1. Log calibrated indoor and outdoor measurements with actuator commands and feedback.
  2. Identify the greenhouse's response to controlled changes, using the site's approved operating procedure.
  3. Fit the model's structure-specific parameters to one dataset, then evaluate it on a separate period.
  4. Report errors and data coverage. Validate any claimed energy, water or crop benefit with measurements.

5. Bring your actual data

Export one sensor series or one zone's readings as a comma-separated UTF-8 CSV. Use explicit timezone information so a record is unambiguous across daylight-saving changes. Keep units consistent and identify calibration dates in your own monitoring records.

ColumnRequiredMeaning & unit
timestampYesISO 8601 timestamp with Z or a timezone offset, e.g. 2026-10-10T12:00:00Z.
air_temp_cYesAir temperature, °C.
rh_pctYesRelative humidity, %.
co2_ppmNoCarbon dioxide concentration, ppm.
substrate_pctNoA calibrated substrate moisture percentage. Specify whether your device reports volumetric water content or another defined scale.
par_umol_m2_sNoCanopy PPFD, µmol m⁻² s⁻¹.
timestamp,air_temp_c,rh_pct,co2_ppm,substrate_pct,par_umol_m2_s
2026-10-10T12:00:00Z,25.2,70.4,810,54.0,620
2026-10-10T12:05:00Z,25.4,69.8,795,53.8,645
2026-10-10T12:10:00Z,25.6,69.1,785,53.6,660

These three rows are an illustrative format example, not measured data. A missing optional reading should be empty, not zero. Zero CO₂, zero PPFD and a missing reading have different meanings.

Validation & coverage rules

The importer accepts UTF-8 files up to 2 MiB and processes the first 20,000 data rows, disclosing overflow. It supports quoted CSV fields and CRLF line endings. Timestamps require an explicit Z or ±HH:mm offset; invalid calendar dates are rejected. Rows with invalid required values are rejected; optional blanks remain missing. Valid rows are sorted chronologically, and the first valid record at a duplicate UTC timestamp is retained.

Accepted bounds are −10 to 60 °C, RH greater than 0 and up to 100%, CO₂ 0–5,000 ppm, substrate 0–100%, and PPFD 0–4,000 µmol m⁻² s⁻¹. These are importer limits, not agronomic targets.

Sample means and extrema are calculated from accepted readings; means are not time-weighted. Gaps longer than 15 minutes are excluded from time coverage and trapezoidal light integration. An interval also needs PPFD at both ends to contribute to the photon integral. A result is called daily light integral only when the exact 24-hour observation window has continuous light coverage with intervals no longer than 15 minutes. Otherwise the result is a partial observed light integral.

Review the validation and coverage summary before interpreting charts. Statistics describe the uploaded observation period; they do not establish causation or prove control performance. Imported files are read in the browser and are not uploaded to a server.

The bundled data/sample-sensors.csv is synthetic: 289 readings at 5-minute intervals from 15 July 2026 00:00 UTC to 16 July 2026 00:00 UTC. For real-world use, replace it with your own timestamped logger export. The analysis view is separate from the simulated greenhouse; importing data does not create a live equipment connection.

6. A practical integration architecture

The first valuable deployment is read-only monitoring: collect trustworthy measurements and make them easy to inspect. The diagram below is an integration roadmap, not a connection already implemented in this package.

01 / MEASURESensorsAir T/RH, CO₂, substrate, PPFD, weather.
02 / ACQUIREESP32 or PLCRead sensors; timestamp, validate and flag quality.
03 / TRANSPORTMQTT / ModbusSite-specific wired or wireless links and protocol mapping.
04 / STORERPi / gatewayNormalise units, log readings, export CSV or serve read-only JSON.
05 / INSPECTControl roomLoad CSV today; build an authenticated data adapter for live monitoring later.

Example normalised gateway record

{
  "timestamp": "2026-10-10T12:00:00Z",
  "air_temp_c": 25.2,
  "rh_pct": 70.4,
  "co2_ppm": 810,
  "substrate_pct": 54.0,
  "par_umol_m2_s": 620
}

The JSON schema mirrors the CSV fields. An actual gateway should also retain sensor identity, quality flags, calibration metadata, ingestion time and sequence information in its database. Export the selected zone as the flat CSV schema supported here. Read-only JSON is a future adapter format; there is no live API adapter in this release.

Keep control local

The PLC or local controller owns time-critical control, equipment protection and site-specific interlocks. It must continue operating safely when the browser, network, gateway or cloud is unavailable. A browser page is a supervisory interface, not the safety controller.

Make access explicit

Terminate device access at a controlled backend, isolate the control network and authenticate authorised users. Do not expose a PLC directly on the public internet or embed device passwords, broker secrets or command credentials in page source.

A sensible commissioning sequence

  1. Verify sensor range, shielding, mounting position, calibration and timestamp quality.
  2. Run a read-only logger and compare the dashboard with independent reference measurements.
  3. Review alarm and stale-data rules with the site operator. Check how missing or invalid measurements are presented.
  4. Test proposed logic in a simulator and on a controlled test setup. Confirm equipment feedback and protective behavior independently.
  5. If command capability is later engineered, use authorised backend mediation, command acknowledgements and an audit trail. Retain local controller authority and independent protective functions.

7. Use the exports

ExportUseful purposeBoundary
Recipe JSONKeep a readable record of the selected settings for discussion and reproducibility.A software configuration record, not an executable PLC program.
Simulation CSVPlot the modeled time series in a spreadsheet or analysis script.Generated simulation output, not measured greenhouse data.
HTML reportShare or print the current scenario, its assumptions and a PNG of the current 3D camera view. The SVG scene is included when the 2D fallback is active.A snapshot of the demonstrated result, not a commissioning certificate.

For an experiment, keep the original measurement log, the selected recipe, the software version and the start/end conditions together. Label simulated and measured results separately in presentations and reports.

8. Technical references

These primary extension sources support the climate concepts. All are available as external references; the app itself works without retrieving them.

  1. UMass Amherst Extension. Reducing Humidity in the Greenhouse. Dew point, surface condensation, and coordinated ventilation/heating.
  2. Ariana P. Torres & Roberto G. Lopez, Purdue University Extension. Measuring Daily Light Integral in a Greenhouse, HO-238. PPFD, photon integration and sensor placement. This app does not use the older equipment-price discussion.
  3. Heidi Wollaeger & Erik Runkle, Michigan State University Extension. VPD vs. RH. Temperature, relative humidity and vapor pressure deficit.
  4. University of Florida IFAS Extension. Greenhouse Ventilation, AE-10/AE030. Ventilation and the balance between moisture removal and heating.

Accessed 10 October 2026. Thresholds and model coefficients in this demonstration are implementation assumptions, not values validated by these references.