An application for real greenhouse lighting control over Modbus TCP, divided into independent zones.
Delivered scope
- Tkinter application controlling eight lighting modules over Modbus TCP
- Manual control for an individual zone or the complete installation
- Automatic brightness calculation from PAR measurements and operating limits
Concrete outcomes
- Real device communication through Modbus register reads and writes
- Zone-based supplemental plant lighting control in a greenhouse
- Power consumption visibility and response to installation energy limits
Problem
Greenhouse supplemental lighting requires independent zone control, reactions to current light measurements and power consumption monitoring. Setting every module manually makes consistent growing conditions difficult to maintain.
Solution
The Python application connects to eight slave devices over Modbus TCP. An operator selects a zone, sets its brightness percentage or applies a setpoint to all modules, while the interface reports connection state and power consumption.
- Operating mode and setpoint writes to device registers.
- Power consumption register reads for every zone.
- Automatic control running in a separate thread.
- Brightness interpolation from PAR measurements and thresholds.
- Emergency setpoint reduction when import or export limits are exceeded.
Key decisions
The Modbus layer is separated from zone logic and the operator interface. Automation maps sensors to modules so every greenhouse area receives a setpoint based on its own light measurement.
The repository keeps the installation address and data source configurable. The code shows real register operations while production environment credentials remain unpublished.
Result
The project demonstrates a complete operator application and Modbus installation integration, from light measurements and setpoint calculation to luminaire control and zone power monitoring.
