{"id":7264,"date":"2023-08-25T16:09:35","date_gmt":"2023-08-25T15:09:35","guid":{"rendered":"https:\/\/dronesonen.usn.no\/?p=7264"},"modified":"2023-08-26T15:43:51","modified_gmt":"2023-08-26T14:43:51","slug":"hydroplant-subsystems-week-0","status":"publish","type":"post","link":"https:\/\/dronesonen.usn.no\/?p=7264","title":{"rendered":"Hydroplant Subsystems &#8211; Week 1"},"content":{"rendered":"\n<h2 class=\"alignwide wp-block-heading\">Who are we?<\/h2>\n\n\n\n<div class=\"wp-block-group alignwide is-vertical is-layout-flex wp-container-core-group-is-layout-fe9cc265 wp-block-group-is-layout-flex\">\n<p>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: <a rel=\"noreferrer noopener\" href=\"https:\/\/hydroplant.no\/\" target=\"_blank\">Hydroplant<\/a><\/p>\n\n\n\n<p><strong>Our team consists of:<\/strong><\/p>\n<\/div>\n\n\n\n<figure class=\"wp-block-table alignwide has-small-font-size\"><table class=\"has-tertiary-background-color has-background\"><thead><tr><th><strong>Name<\/strong><\/th><th><strong>Discipline<\/strong><\/th><th><strong>Responsibility<\/strong><\/th><\/tr><\/thead><tbody><tr><th><strong>Shahin Ostadahmadi<\/strong><\/th><td>Software<\/td><td>Project Leader<\/td><\/tr><tr><th><strong>Oscar Melby<\/strong><\/th><td>Software<\/td><td>Software Documentation<\/td><\/tr><tr><th><strong>Theo Magnor<\/strong><\/th><td>Software<\/td><td>Coordinator<\/td><\/tr><tr><th><strong>Aditi Deshpande<\/strong><\/th><td>Software<\/td><td>Blog Editor<\/td><\/tr><tr><th><strong>Ivan Bergmann Maronsson<\/strong><\/th><td>Electronics<\/td><td>Electrical Documentation<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div class=\"wp-block-group alignwide is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group alignwide is-layout-constrained wp-block-group-is-layout-constrained\">\n<div class=\"wp-block-group alignwide is-layout-constrained wp-block-group-is-layout-constrained\">\n<figure class=\"wp-block-gallery alignwide has-nested-images columns-5 is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"7298\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/20230420_223622-1-768x1024.jpg\" alt=\"\" class=\"wp-image-7298\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/20230420_223622-1-768x1024.jpg 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/20230420_223622-1-225x300.jpg 225w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/20230420_223622-1-1152x1536.jpg 1152w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/20230420_223622-1-1536x2048.jpg 1536w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/20230420_223622-1-scaled.jpg 1920w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><figcaption class=\"wp-element-caption\">Ivan<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"683\" height=\"1024\" data-id=\"7300\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Theo-DDA-Profil-768x1152-1-683x1024.png\" alt=\"\" class=\"wp-image-7300\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Theo-DDA-Profil-768x1152-1-683x1024.png 683w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Theo-DDA-Profil-768x1152-1-200x300.png 200w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Theo-DDA-Profil-768x1152-1.png 768w\" sizes=\"auto, (max-width: 683px) 100vw, 683px\" \/><figcaption class=\"wp-element-caption\">Theo<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"683\" height=\"1024\" data-id=\"7297\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Aditi-2-6-of-7-scaled-1-683x1024.jpg\" alt=\"\" class=\"wp-image-7297\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Aditi-2-6-of-7-scaled-1-683x1024.jpg 683w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Aditi-2-6-of-7-scaled-1-200x300.jpg 200w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Aditi-2-6-of-7-scaled-1-768x1152.jpg 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Aditi-2-6-of-7-scaled-1-1024x1536.jpg 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Aditi-2-6-of-7-scaled-1-1366x2048.jpg 1366w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Aditi-2-6-of-7-scaled-1.jpg 1707w\" sizes=\"auto, (max-width: 683px) 100vw, 683px\" \/><figcaption class=\"wp-element-caption\">Aditi<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"683\" height=\"1024\" data-id=\"7301\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Shahin-4-of-4-scaled-1-683x1024.jpg\" alt=\"\" class=\"wp-image-7301\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Shahin-4-of-4-scaled-1-683x1024.jpg 683w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Shahin-4-of-4-scaled-1-200x300.jpg 200w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Shahin-4-of-4-scaled-1-768x1152.jpg 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Shahin-4-of-4-scaled-1-1024x1536.jpg 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Shahin-4-of-4-scaled-1-1366x2048.jpg 1366w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Shahin-4-of-4-scaled-1.jpg 1707w\" sizes=\"auto, (max-width: 683px) 100vw, 683px\" \/><figcaption class=\"wp-element-caption\">Shahin<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"683\" height=\"1024\" data-id=\"7299\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Oscar-2-of-2-scaled-1-683x1024.jpg\" alt=\"\" class=\"wp-image-7299\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Oscar-2-of-2-scaled-1-683x1024.jpg 683w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Oscar-2-of-2-scaled-1-200x300.jpg 200w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Oscar-2-of-2-scaled-1-768x1152.jpg 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Oscar-2-of-2-scaled-1-1024x1536.jpg 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Oscar-2-of-2-scaled-1-1366x2048.jpg 1366w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/Oscar-2-of-2-scaled-1.jpg 1707w\" sizes=\"auto, (max-width: 683px) 100vw, 683px\" \/><figcaption class=\"wp-element-caption\">Oscar<\/figcaption><\/figure>\n<\/figure>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-group alignwide is-vertical is-layout-flex wp-container-core-group-is-layout-fe9cc265 wp-block-group-is-layout-flex\">\n<h2 class=\"wp-block-heading\">Code standards and workflow<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-default\" \/>\n\n\n\n<p>You can read our workflow and code standards below.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Tools<\/h4>\n<\/div>\n\n\n\n<figure class=\"wp-block-table has-small-font-size\"><table class=\"has-tertiary-background-color has-background\"><tbody><tr><td>Project management<\/td><td>Jira &amp; Confluence<\/td><\/tr><tr><td>Code management<\/td><td>Github<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div class=\"wp-block-group alignwide is-vertical is-layout-flex wp-container-core-group-is-layout-fe9cc265 wp-block-group-is-layout-flex\">\n<h4 class=\"wp-block-heading\">Workflow &#8211; Github<\/h4>\n\n\n\n<p>In each repository, this workflow will used during the development. <\/p>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"792\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/image-20230823-135732-1024x792.png\" alt=\"\" class=\"wp-image-7305\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/image-20230823-135732-1024x792.png 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/image-20230823-135732-300x232.png 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/image-20230823-135732-768x594.png 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/image-20230823-135732.png 1088w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-group alignwide is-vertical is-layout-flex wp-container-core-group-is-layout-fe9cc265 wp-block-group-is-layout-flex\">\n<p>The following tasks will be automated by GitHub Actions:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Documentation (doxygen)<\/li>\n\n\n\n<li>Formatting<\/li>\n\n\n\n<li>Preferably compiling C++ code also<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\">Code standards<\/h4>\n\n\n\n<p>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.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Code style<\/h4>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"807\" height=\"757\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/image.png\" alt=\"\" class=\"wp-image-7327\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/image.png 807w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/image-300x281.png 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/image-768x720.png 768w\" sizes=\"auto, (max-width: 807px) 100vw, 807px\" \/><\/figure>\n\n\n\n\n\n<div class=\"wp-block-group alignwide is-vertical is-layout-flex wp-container-core-group-is-layout-fe9cc265 wp-block-group-is-layout-flex\">\n<h4 class=\"wp-block-heading\">Code formatting<\/h4>\n\n\n\n<p>We will use \u201cblack\u201d for formatting our Python code. clang for C++ formatting.<\/p>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-default\" \/>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"alignwide wp-block-heading\"><strong>Requirements<\/strong><\/h3>\n\n\n\n<h4 class=\"alignwide wp-block-heading\">Subsystems visualization<\/h4>\n\n\n\n<div class=\"wp-block-group alignwide is-vertical is-content-justification-left is-layout-flex wp-container-core-group-is-layout-dd225191 wp-block-group-is-layout-flex\">\n<p>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.<\/p>\n\n\n\n<p>The Master Controller serves as the central &#8220;brain&#8221; 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.<\/p>\n<\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"699\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/image-20230825-151811-1024x699.png\" alt=\"\" class=\"wp-image-7314\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/image-20230825-151811-1024x699.png 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/image-20230825-151811-300x205.png 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/image-20230825-151811-768x524.png 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/image-20230825-151811.png 1177w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Subsystems visualization<\/figcaption><\/figure>\n\n\n\n<h4 class=\"alignwide wp-block-heading\">Requirements subsystems<\/h4>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<p>Below is a detailed list of requirements for each subsystem and module. These initial requirements are broad; over the next week, we&#8217;ll delve deeper into each one. We&#8217;ll closely examine and refine the specifics of each requirement, defining the interfaces, services, and performance criteria. <\/p>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:100%\">\n<figure class=\"wp-block-table has-small-font-size\"><table class=\"has-light-green-cyan-background-color has-background\"><tbody><tr><th><strong>Elements<\/strong><\/th><th><strong>Must have (A)<\/strong><\/th><th><strong>Should have (B)<\/strong><\/th><th><strong>Nice to have (C)<\/strong><\/th><\/tr><tr><th>Master Controller<\/th><td>1. Must communicate with all its subsystems<br>2. The system must be able to make calculated decisions and act on them based on gathered sensor data and scheduled jobs<br>3. The system must collect and store data from sensor measurements and actuator actions <br>4. The system must present collected data<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><\/tr><tr><th>Plant Mover<\/th><td>1. Must be able to move a plant holder from one place to another <br>2. Must have an interface for wireless communication <\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><\/tr><tr><th>Plant Scanner<\/th><td>1. Must be able to move from one place to another<br>2. Must be able to capture images both day and night and send image data<br>3. Must have an interface for wireless communication<\/td><td>&nbsp;<\/td><td>1. Follow the \u201cPlant Mover\u201d when it is in action<\/td><\/tr><tr><th>Image Analysis<\/th><td>1. Must be able to determine plant stage based on image data<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><\/tr><tr><th>GUI Application<\/th><td>1. Must be able to manually control the system<br>2. Must be able to change growing and configuration parameters (such as nutrition level, lighting (time of day), calibration values, etc.)<\/td><td>1. Overview and information of all the plants in the system<\/td><td>1. Visualizing the system with real pictures of the plants in each stage with information about the plants<\/td><\/tr><tr><th>Electrical<\/th><td>1. The system must have a custom-made electrical circuit board for each node<\/td><td>&nbsp;<\/td><td>&nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-default\" \/>\n\n\n\n<p><\/p>\n\n\n\n<div class=\"wp-block-group alignwide is-vertical is-layout-flex wp-container-core-group-is-layout-fe9cc265 wp-block-group-is-layout-flex\">\n<h3 class=\"wp-block-heading\"><strong>Next week<\/strong><\/h3>\n\n\n\n<p>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:<\/p>\n\n\n\n<p>That\u2019s it for this week, folks. See you in seven days!<\/p>\n<\/div>\n\n\n\n<figure class=\"wp-block-image alignwide size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"453\" src=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/utvikling_av_smarte_systemer_2023-08-25_04.54pm-20230825-145456-1024x453.png\" alt=\"\" class=\"wp-image-7320\" srcset=\"https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/utvikling_av_smarte_systemer_2023-08-25_04.54pm-20230825-145456-1024x453.png 1024w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/utvikling_av_smarte_systemer_2023-08-25_04.54pm-20230825-145456-300x133.png 300w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/utvikling_av_smarte_systemer_2023-08-25_04.54pm-20230825-145456-768x340.png 768w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/utvikling_av_smarte_systemer_2023-08-25_04.54pm-20230825-145456-1536x680.png 1536w, https:\/\/dronesonen.usn.no\/wp-content\/uploads\/2023\/08\/utvikling_av_smarte_systemer_2023-08-25_04.54pm-20230825-145456.png 1672w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>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.<\/p>\n","protected":false},"author":99,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[99],"class_list":["post-7264","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-hydroplant"],"_links":{"self":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/7264","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/users\/99"}],"replies":[{"embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7264"}],"version-history":[{"count":30,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/7264\/revisions"}],"predecessor-version":[{"id":7359,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=\/wp\/v2\/posts\/7264\/revisions\/7359"}],"wp:attachment":[{"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7264"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7264"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dronesonen.usn.no\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7264"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}