Software Architecture

The AstroPlant kit is an Internet of Things framework for monitoring and control systems, especially the namesake AstroPlant plant growth system. Kits are controlled from a central back-end, and kit data is collected there.

An overview of the official kit, back-end and web user interface implementations can be found at the GitHub Repositories section. The modules are designed to work together, but any module implementing the relevant APIs, such as a replacement of the core kit software, is supported.

Kit Architecture

The kit software is split into two parts.

  1. The core kit software manages the lifetime of and communication between peripheral devices, implements the kit Remote Procedure Call system for remote control, and communicates with the back-end using the Kit API. The core software provides a fuzzy-logic and schedule-based controller to command actuators based on time-of-day and sensor input.

  2. Implementations of peripheral devices (such as sensors and actuators) know the details of communicating with specific hardware or systems. These implementations are loaded dynamically by the core software, based on the module names as given in the kit configuration retrieved from the back-end. The peripheral devices used in the AstroPlant growth system project are implemented in the AstroPlant Peripheral Device Library.

Back-end Architecture

TO DO