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:
Name | Discipline | Responsibility |
---|---|---|
Shahin Ostadahmadi | Software | Project Leader |
Oscar Melby | Software | Software Documentation |
Theo Magnor | Software | Coordinator |
Aditi Deshpande | Software | Blog Editor |
Ivan Bergmann Maronsson | Electronics | Electrical Documentation |
Code standards and workflow
You can read our workflow and code standards below.
Tools
Project management | Jira & Confluence |
Code management | Github |
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.
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.
Elements | Must have (A) | Should have (B) | Nice to have (C) |
---|---|---|---|
Master Controller | 1. 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 Mover | 1. Must be able to move a plant holder from one place to another 2. Must have an interface for wireless communication | ||
Plant Scanner | 1. 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 Analysis | 1. Must be able to determine plant stage based on image data | ||
GUI Application | 1. 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 system | 1. Visualizing the system with real pictures of the plants in each stage with information about the plants |
Electrical | 1. 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!