Hydroplant Subsystems – Week 1


Who are we?

We are Hydroplant Subsystems, and we welcome you to our very first blog post. Our goal in this project is to develop several subsystems for Hydroplant, including both new subsystems and improvements/changes to existing ones. More on Hydroplant: Hydroplant

Our team consists of:

NameDisciplineResponsibility
Shahin OstadahmadiSoftwareProject Leader
Oscar MelbySoftwareSoftware Documentation
Theo MagnorSoftwareCoordinator
Aditi DeshpandeSoftwareBlog Editor
Ivan Bergmann MaronssonElectronicsElectrical Documentation

Code standards and workflow


You can read our workflow and code standards below.

Tools

Project managementJira & Confluence
Code managementGithub

Workflow – Github

In each repository, this workflow will used during the development.

The following tasks will be automated by GitHub Actions:

  • Documentation (doxygen)
  • Formatting
  • Preferably compiling C++ code also

Code standards

Will use VSC (Visual Studio Code) as IDE with the default GIT extension. For C++-specific parts, we will most likely use PlatformIO to compile and flash the Arduino.

Code style

Code formatting

We will use “black” for formatting our Python code. clang for C++ formatting.


Requirements

Subsystems visualization

Hydroplant aims to develop an autonomous vertical farming system. A conceptual visualization of this system can be seen in the provided diagram. Our design is based on distributed subsystems, with each subsystem functioning as an independent smart unit that offers specific services. These services can then be utilized by the Master Controller.

The Master Controller serves as the central “brain” of the system, driving its autonomy. It leverages the services from the various subsystems to fulfill the overall objectives. By adhering to a scheduled sequence of tasks and making independent decisions based on collected sensor data, the Master Controller ensures the system operates autonomously.

Subsystems visualization

Requirements subsystems

Below is a detailed list of requirements for each subsystem and module. These initial requirements are broad; over the next week, we’ll delve deeper into each one. We’ll closely examine and refine the specifics of each requirement, defining the interfaces, services, and performance criteria.

ElementsMust have (A)Should have (B)Nice to have (C)
Master Controller1. Must communicate with all its subsystems
2. The system must be able to make calculated decisions and act on them based on gathered sensor data and scheduled jobs
3. The system must collect and store data from sensor measurements and actuator actions
4. The system must present collected data
  
Plant Mover1. Must be able to move a plant holder from one place to another
2. Must have an interface for wireless communication
  
Plant Scanner1. Must be able to move from one place to another
2. Must be able to capture images both day and night and send image data
3. Must have an interface for wireless communication
 1. Follow the “Plant Mover” when it is in action
Image Analysis1. Must be able to determine plant stage based on image data  
GUI Application1. Must be able to manually control the system
2. Must be able to change growing and configuration parameters (such as nutrition level, lighting (time of day), calibration values, etc.)
1. Overview and information of all the plants in the system1. Visualizing the system with real pictures of the plants in each stage with information about the plants
Electrical1. The system must have a custom-made electrical circuit board for each node  


Next week

Sprint 1 started on Monday 21.08.23, and will end on 3.09.23, and until then This is what our task list looks like:

That’s it for this week, folks. See you in seven days!


Leave a Reply