02 / How it comes together
The system,
in motion.
Sunlight changes throughout the day, cultivation targets vary, and equipment speaks different protocols. The challenge was to bring measurements and control into one system that can respond to those conditions while keeping greenhouse operators informed and lighting behavior stable.
A continuous loop between the growing environment and its controls.
Select a stage to explore.
Control commands return through the gateway. New measurements close the feedback loop.
Greenhouse sensors
PPFD readings capture light intensity. Measurements over time support Daily Light Integral calculations, while supported devices also provide spectral measurements and lighting controller states.
- Light measurements
- Equipment state
This animation illustrates the flow; it is not live system activity.
03 / The thinking behind it
Good systems
start with
good decisions.
The choices that shape how this system works.
Translate at the edge.
Python gateways on Raspberry Pi connect equipment through Modbus TCP, MQTT, REST and WebSockets. They translate device-specific communication into common application messages, separating hardware integration from the cloud’s configuration and automation logic.
Measure the day, not just the moment.
The platform integrates light readings over time to track Daily Light Integral. Lighting decisions consider accumulated exposure, configured photoperiods and cultivation targets, with control logic intended to avoid excessive switching as sensor readings fluctuate.
Make operations visible and repeatable.
Live updates and historical charts bring device state and lighting information into the operator’s application. Terraform defines the cloud infrastructure; Docker and Ansible support consistent gateway deployment across the edge installations.
04 / Under the surface
A closer look.
Explore the technologies, implementation choices, and full project context at your own pace.
Python · Raspberry Pi · Modbus TCP · MQTT
React 19 · TypeScript · Recharts · Server-Sent Events
.NET 10 · Azure IoT Hub · Azure Functions · Azure SQL
Terraform · Docker · Ansible · Azure DevOps
01Project Overview
A greenhouse technology provider required a centralized platform to monitor environmental conditions, automate supplemental lighting, and integrate heterogeneous sensors and industrial control equipment.
The solution needed to connect physical greenhouse infrastructure with a modern cloud platform, enabling real-time monitoring, configurable lighting strategies, remote equipment control, and data-driven operational decisions.
The project involved designing and engineering an end-to-end IoT ecosystem, spanning embedded edge devices, industrial communication protocols, cloud infrastructure, backend services, and a real-time web application.
Primary objective: Transform independently operating greenhouse devices into a unified, cloud-connected automation platform capable of monitoring and controlling supplemental lighting based on actual environmental conditions and configurable cultivation targets.
02Business Challenges
Greenhouse lighting management presents several technical and operational challenges.
Fragmented hardware ecosystem
Sensors, lighting controllers, and other industrial devices frequently rely on different communication interfaces and protocols.
A unified platform must integrate these devices without requiring greenhouse operators to interact with each manufacturer's software independently.
Dynamic natural lighting
Natural sunlight varies throughout the day.
Supplemental lighting systems must adapt to changing daylight conditions rather than operate exclusively on fixed schedules.
Photoperiod and light exposure targets
Different cultivation strategies require specific lighting periods and target levels of accumulated light.
Maintaining these targets requires continuous measurement, aggregation, and control decisions.
Operational visibility
Operators need centralized access to environmental measurements, equipment status, automation settings, and historical performance.
Reliable edge-to-cloud communication
The platform must coordinate cloud services with devices operating inside greenhouses, where network conditions and hardware capabilities can vary.
03Solution Architecture
The solution was designed as a distributed IoT architecture with four principal layers.
Layer 1 — Greenhouse Sensors & Equipment
Integration with hardware devices used for environmental measurement and lighting control.
The lighting system incorporates measurements such as:
- PPFD (Photosynthetic Photon Flux Density): instantaneous photosynthetically active light intensity.
- DLI (Daily Light Integral): cumulative photosynthetically active light received during the day.
- Spectral measurements: blue, red, and far-red light channels, where supported.
- Lighting controller states: operational information and equipment control interfaces.
The platform supports multiple device integration mechanisms to accommodate different hardware capabilities.
Layer 2 — IoT Edge Gateway
Python-based gateway services run on Raspberry Pi devices deployed within the greenhouse environment.
Responsibilities:
- Communicating with sensors and industrial equipment.
- Integrating Modbus TCP, MQTT, REST, and WebSocket interfaces.
- Translating hardware-specific communication into standardized application messages.
- Handling device connectivity and communication with the cloud.
- Exposing equipment control capabilities through defined interfaces.
Containerized deployment using Docker enables consistent installation and maintenance across edge devices.
Ansible supports automated gateway deployment and configuration.
Layer 3 — Azure Cloud Platform
Microsoft Azure provides centralized application hosting, device communication, data persistence, and automation infrastructure.
Core components:
- Azure IoT Hub: cloud-to-device communication and IoT integration.
- Azure App Service: hosting backend APIs.
- Azure Functions: scheduled automation and background processing.
- Azure SQL: operational and historical data persistence.
- Azure Static Web Apps: frontend application hosting.
- Azure Monitor: application and infrastructure observability.
Infrastructure provisioning is automated through Terraform, while CI/CD pipelines support application delivery.
Layer 4 — Monitoring & Control Application
A browser-based interface provides operational visibility and configuration capabilities.
Technology stack:
React 19, TypeScript, Vite, Tailwind CSS, SWR, Recharts, and Server-Sent Events.
The frontend enables greenhouse operators to:
- Monitor measurements and device states.
- Observe lighting performance.
- Configure automation parameters.
- Review historical measurements.
- Visualize operational data through interactive charts.
- Follow updates without repeatedly refreshing the application.
04Intelligent Lighting Automation
A central capability of the platform is the automation of supplemental greenhouse lighting.
Rather than relying solely on predefined on/off schedules, the platform evaluates measured light conditions against cultivation targets.
Photoperiod management
Operators configure lighting periods and operational windows.
The automation system uses these settings to determine when supplemental lighting is permitted or required.
Daily Light Integral tracking
The platform calculates accumulated light exposure using PPFD measurements over time.
DLI represents the total photosynthetically active light delivered per unit area during a defined period, expressed in mol/m²/day.
To estimate accumulated light, the system integrates PPFD measurements over time.
This enables lighting decisions to consider the light already delivered by natural sunlight and artificial sources.
Daylight and supplemental lighting
The automation distinguishes between contributions from daylight and supplemental lighting to support more informed decisions about artificial light requirements.
Dynamic light adjustment
The control logic evaluates measured conditions relative to configured lighting targets.
The objective is to supply additional light when required while avoiding unnecessary lighting operation when sufficient natural light is available.
Control stability
Lighting automation must also avoid excessive switching and rapid oscillations caused by short-term sensor fluctuations.
The solution incorporates control logic intended to maintain stable operation while responding to relevant changes in greenhouse conditions.
05Backend Engineering & Automation
The backend was developed using .NET 10 and ASP.NET Core Web API, following Clean Architecture principles.
The implementation uses:
- MediatR and CQRS for application-level operations.
- Entity Framework Core for persistence.
- SQL Server for operational and historical information.
- Authentication and authorization mechanisms.
- REST APIs for frontend integration.
- Background services and scheduled cloud functions.
- Server-Sent Events for near-real-time updates.
The backend coordinates configuration, sensor information, lighting control workflows, and communication with the IoT infrastructure.
This architecture separates business rules and automation decisions from device-specific implementation details.
06Real-Time Monitoring & Data Visualization
The frontend was designed to support both operational monitoring and system administration.
Monitoring dashboards
Operators can inspect sensor measurements, lighting-related indicators, and equipment information from a centralized interface.
Historical visualization
Time-series charts provide visibility into changes in light exposure and system behavior.
Live updates
Server-Sent Events enable backend-driven updates to connected clients, reducing the need for continuous frontend polling.
Device management
The platform supports the configuration and monitoring of connected greenhouse equipment through the cloud application.
Together, these capabilities provide a unified operational interface across previously fragmented hardware systems.
07DevOps & Deployment
The solution includes cloud and edge deployment workflows.
Cloud infrastructure
Terraform defines and provisions the Azure infrastructure required by the application.
Application delivery
CI/CD pipelines automate building, testing, and deploying application components.
Edge deployment
Python gateway applications are containerized using Docker and deployed to Raspberry Pi devices.
Ansible automates gateway setup and deployment operations.
This approach supports repeatable releases across cloud services and distributed edge installations.
08Technical Ownership & Delivery
The engagement involved extensive end-to-end technical ownership.
Responsibilities included:
- Translating business and operational requirements into technical solutions.
- Designing the overall system architecture.
- Evaluating industrial hardware integration approaches.
- Developing frontend and backend applications.
- Implementing Python-based IoT gateways.
- Building integration and automation workflows.
- Provisioning Azure infrastructure.
- Implementing deployment processes.
- Working directly with stakeholders on technical decisions and delivery planning.
The work combined solution architecture, hands-on software engineering, industrial protocol integration, and cloud infrastructure management.
09Business Value
The platform was designed to deliver several key operational advantages.
Centralized visibility
A single application for monitoring greenhouse lighting and connected equipment.
Automated lighting decisions
Reduced reliance on manual control through configurable lighting targets and sensor-driven automation.
Improved resource utilization
The ability to adapt supplemental lighting to measured daylight conditions creates opportunities to reduce unnecessary electricity consumption.
Hardware interoperability
A gateway-based approach makes it possible to integrate equipment with different communication protocols into a common cloud architecture.
Scalable architecture
The separation of edge gateways, cloud services, and web applications provides a foundation for deployment across additional greenhouse installations.
Foundation for advanced optimization
Historical data, configurable cultivation parameters, and automated device control create opportunities for future predictive analytics and optimization.
These benefits describe the intended and enabled capabilities of the platform. Quantified energy savings, productivity gains, and financial returns have not been established in this case study.
10Technology Stack
| Domain | Technologies |
|---|---|
| Frontend | React 19, TypeScript, Vite, Tailwind CSS, SWR, Recharts |
| Backend | C#, .NET 10, ASP.NET Core, MediatR, CQRS, EF Core |
| Real-time communication | Server-Sent Events, WebSockets |
| Edge computing | Python, Flask, Raspberry Pi |
| Industrial integration | Modbus TCP, MQTT, REST |
| Cloud | Microsoft Azure, IoT Hub, App Service, Azure Functions, Static Web Apps |
| Database | SQL Server, Azure SQL |
| Infrastructure | Terraform, Docker, Ansible |
| Delivery | CI/CD, Azure DevOps |
11Conclusion
This project demonstrates the engineering of a production-oriented industrial IoT platform that connects physical greenhouse infrastructure with a scalable cloud application.
Its distinguishing characteristics include:
- End-to-end integration across hardware, edge, cloud, backend, and frontend layers.
- Industrial device interoperability through Python-based IoT gateways.
- Sensor-driven greenhouse lighting automation.
- DLI-based monitoring and configurable cultivation targets.
- Real-time data visualization and remote operational control.
- Infrastructure automation and repeatable deployments.
The core engineering achievement was turning heterogeneous greenhouse equipment and sensor measurements into a unified, configurable automation system.
The architecture also establishes a technical foundation for more advanced agricultural decision-support capabilities, including predictive lighting optimization and data-driven resource management.
Your challenge. Our next conversation.
What could we
build together?
Connecting physical equipment to useful software? Let’s work through the whole system, from the sensor to the person using it.
Next case study / 03
Fewer gaps. One operation.
Noian Software × Doni Trade