Software Design - Overview of Architecture

This blog post will speak more about the software architecture within the Lilypod system. Giving an overview of the architecture, there are three main modules within the system: a Raspberry Pi, an Arduino and the Client, for running all operations.

A flow chart will be presented in a following blog, connecting all the sensors and actuators in the system to their corresponding modules. However, this post covers the underlying use cases of each of the modules.

RASPBERRY PI

Firstly, the Raspberry Pi 4, is responsible for routine management within the system. It helps decide the next steps for the overall robot, based on the current status. For example, if the pod is ready for a new treatment cycle, then the RPi will check all necessary actuators and sensors to ensure the entire robot is ready to intake polluted water for cleaning. Additionally, the spectroscopy and image processing is conducted through the RPi. As seen in the picture below, the no-IR camera is connected directly to the RPi for spectroscopy readings (i.e. wavelength measurements). Another post will do a deeper dive into the spectroscopy tools and measurements.


Additionally, the RPi is responsible to communicate important information regarding the status of the sensors and actuators, as well as water quality indications, to our online database. The online database used for this project is Cloud Firestore from Firebase. The purpose of this online database is to store data for aquaponic farmers to refer to, during treatment processes. A visualization component is being developed based on the data secured within the database. Finally, the RPi is able to localize the pod within its environment, which is also another piece of information stored in the database.

ARDUINO

Next, the Arduino Uno interfaces directly with most of the sensors and actuators on-board the system (with exception of the spectroscopy module). These sensors include the pH sensor, conductivity sensor (for water quality identification), and an ultrasonic sensor to measure garbage levels collected above the filtering mesh. The actuators include two servos; one for the trap door, which opens when the water has been correctly sampled and is ready to be filtered. The other for the garage door, which intakes water for a new treatment cycle.

CLIENT

Essentially the client works with the database, and is installed on the aquaponic farmer's computer. It polls the Firestore database, and is used to view the spectroscopy levels, the pH levels and the conductivity readings on a visual dashboard.

With these three modules, further blog posts will go deeper into identifying the software loop and interfacing between all components. The RPi and the Arduino will have more dedicated posts, as the project progresses. 



Comments

Popular posts from this blog

Mechanical Design - Watertight Locking Mechanism

Final Post (Poster, Video)

Software Development - Making Lilypod Intelligent – Part 3 (The Implementation)