The technology stack consists of hardware (HW), local software (local SW) and cloud software (cloud). The HW consists of tubes, nozzles, growing trays, pumps, lights, sensors, actuators etc. that make up the physical system in which the plants grow. The local SW controls the HW and provides interfaces to the HW. Local SW runs on a Raspberry Pi connecting to each device (sensor or actuator) over USB. Each device has an Arduino Nano attached that adapts device specific signals to the JSON format used to communicate over USB.
The local SW communicates with the cloud over the internet. The plants are grown according to a growth recipe. It is possible to grow according to a pre-defined growth recipe without interacting with the cloud (local SW only), however, to dynamically update the growth recipe according to sensor inputs during the growth, the cloud is required.
The user interface enables the user to monitor and control the growth.
In the sketch to the right 1) is electromechanical HW, 2) is electronics, sensors and actuators as well as the computer that runs the local SW, 3) is the cloud SW, and 4) is a user interface.
The system described here is the actual implementation and our upcoming Wiki will focus on that. However, the underlying system architecture is general in nature defining protocols and interfaces (such as JSON) but not requiring specific programming languages, transport media (such as USB) or HW (such as Arduino).