So in the last blog Aeroponics — Smart Controller, we went through the controller’s functions, designs, and manufacturing process.

Smart Controller Architecture Design

Now with the hardware, we just need to create software to drive it to perform tasks.

There are important characteristics about the controller software architecture: Modularized, Open, Secure, Programmable, Goal-oriented, and Expandable.

Modularized

I classify the functions by modules, such as Temperature Control, Grow Light, Reservoir, and Nutrient Delivery, Camera, etc. By doing this, users can customize the appliances by picking only the modules needed. Also, modularization enables me to progressively add future functions, such as Nutrient Mixing, and others.

Open

I like the system to be open to other systems such has Smart Home solutions, access from mobile, and able to download grow-logs for diagnoses. All the communication protocols and data structures are to be compatible with industry standard as much as possible.

Secure

The system is designed with Access-Token authorization. While the owners of the appliances can safely delegate tasks or share information to others by managing appliances' access control list (ACL), the controller also prevents unauthorized access. Also when users access the appliance remotely via cloud, the data relay is encrypted with SSL.

Programmable

There are two major approaches to program the controllers . First, users can integrate with external systems through the controller's Application-Programming-Interfaces (API)s. Such systems can be third party Smart Home solutions, or users own custom applications. Second, users can customize the activities and event schedule in what is called a grow-plan. An embedded grow-plan runtime is implemented as part of the software platform.

Goal-oriented

I also want to encapsulate the low-level implementation into high-level goal-setting business routines. An obvious example is the temperature control. users just need to set the target temperature and the controller will do its job to bring the nutrient temperature to the target, just like how you use household A/C. There is no need to manage sensor reading and workload driving, which involves complex feedback loop control algorithms.

Expandable

One of the goal is to have one controller to manage multiple aeroponics appliances. Why? Well, it will simplify activity management and lower the hardware cost. Two main usages of the expanded system are:

to repeat existing growing activities, or to form orchestrated grow activities. Grow orchestrations (maybe you can suggest a better name for it) can be achieved by planning events and activities for plants in varous stages at the same time. The events and activities of associated appliances are interactive and progress together. It is suited to insure a continuous and reliable yield outputs.

The smart grow platform development

The development scope involves 5 major areas. Below is a simplfied example illustrating a temperature control function across the 5 areas.

Software Development Scope and Examples