report:dvp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
report:dvp [2026/04/15 19:51] – [Structure] epsatisepreport:dvp [2026/04/15 20:16] (current) – [Software] epsatisep
Line 201: Line 201:
 <figure fig_structure> <figure fig_structure>
 <WRAP half column> <WRAP half column>
-{{ :report:schermafbeelding_2026-04-12_214136.png?400|}}+{{ :report:schermafbeelding_2026-04-12_214136.png?400 |}}
 </WRAP> </WRAP>
 +
 <WRAP half column> <WRAP half column>
-{{:report:schermafbeelding_2026-04-12_102528.png?400 |}}+{{ :report:schermafbeelding_2026-04-12_102528.png?400 |}}
 </WRAP> </WRAP>
 <caption>Views of the structure</caption> <caption>Views of the structure</caption>
Line 249: Line 250:
  
 === Hardware === === Hardware ===
-(Figure {{ref>fig:blackbox_diagram}}presents a block diagram for Screen2Green pot. At the core is an ESP32 board that is working as "brain" of the whole system connecting it with sensors and watering system. Soil moisture sensor gives information through the microcontroller when opening the valve is needed. Additional sensors like temperature one are appearing on the screen of the app user.+Figure {{ref>fig:blackbox_diagram}} presents a block diagram for Screen2Green pot. At the core is an ESP32 board that is working as "brain" of the whole system connecting it with sensors and watering system. Soil moisture sensor gives information through the microcontroller when opening the valve is needed. Additional sensors like temperature one are appearing on the screen of the app user.
  
 +<WRAP centeralign>
 <figure fig:blackbox_diagram> <figure fig:blackbox_diagram>
-{{:report:blackbox_diagram.jpg?400|{{:img |blackbox_diagram}}+{{ :report:blackbox_diagram.jpg?600 |{{:img |blackbox_diagram}}
 <caption>Blackbox_diagram</caption> <caption>Blackbox_diagram</caption>
 </figure> </figure>
 +</WRAP>
  
  
-The electrical system presented in (Figure {{ref>fig:Electrical}}) starts with a 12VDC power source connected through a dc jack to provide the high voltage required for the mechanical irrigation hardware - relay module. A buck converter is used because the microcontroller operates on 5V and requires a significantly lower voltage than the main power line to prevent component damage. The soil moisture and temperature sensors are working on 3.3V provided by the ESP32 pins to maintain safe logic levels and ensure accurate data collection from the plant environment. A 4.7k resistor is included for the temperature sensor to ensure signal pull up stability which is necessary for clear digital communication. A relay module is present to act as an electronic switch, because the ESP32 can only output low power signals and cannot directly drive the high current 12VDC solenoid valve. The solenoid valve is the component responsible for releasing water from the tank through a gravity flow mechanism. A  diode is installed for protection to prevent from spikes and avoid damaging the relay or microcontroller when the valve shuts off. 
  
 +The electrical system presented in Figure {{ref>fig:Electrical}} starts with a <color #ed1c24>12VDC</color> power source connected through a DC jack to provide the high voltage required for the mechanical irrigation hardware - relay module. A buck converter is used because the microcontroller operates on <color #ed1c24>5V</color> and requires a significantly lower voltage than the main power line to prevent component damage. The soil moisture and temperature sensors are working on <color #ed1c24>3.3V</color> provided by the ESP32 pins to maintain safe logic levels and ensure accurate data collection from the plant environment. A <color #ed1c24>4.7k</color> resistor is included for the temperature sensor to ensure signal pull up stability which is necessary for clear digital communication. A relay module is present to act as an electronic switch, because the ESP32 can only output low power signals and cannot directly drive the high current <color #ed1c24>12VDC</color> solenoid valve. The solenoid valve is the component responsible for releasing water from the tank through a gravity flow mechanism. A  diode is installed for protection to prevent from spikes and avoid damaging the relay or microcontroller when the valve shuts off.
 +
 +<WRAP centeralign>
 <figure fig:Electrical> <figure fig:Electrical>
-{{:report:elschem.png?600|{{:img |Electrical}}+{{ :report:elschem.png |{{:img |Electrical}}
 <caption>Electrical Schematic</caption> <caption>Electrical Schematic</caption>
 </figure> </figure>
 +</WRAP>
 +
  
-Table {{ref>Components}} lists each hardware component with a direct link to a local Portuguese provider to guarantee that every part is verified for regional availability and technical compatibility.+Table {{ref>Components}} lists each hardware component with a direct link to a local Portuguese provider to guarantee that every part is verified for regional availability and technical compatibility. Values are maximum or peak values.
  
 <table Components> <table Components>
 <caption>Components list</caption> <caption>Components list</caption>
-^ Component ^ Product link ^ Voltage ^ Current ^ Power ^ +^ Component ^ Product link ^  Voltage (V)  Current (mA)  Power (W)
-|Power Supply 12VDC 2A|https://mauser.pt/035-2829/fonte-de-alimentacao-12vdc-2-0a-24w-5-5x2-1mm|12|2000|24| +|Power Supply <color #ed1c24>12VDC 2A</color>|https://mauser.pt/035-2829/fonte-de-alimentacao-12vdc-2-0a-24w-5-5x2-1mm|  12|  2000|  24| 
-|Solenoid Valve 12VDC|https://mauser.pt/096-8157/electrovalvula-solenoide-12vdc-450ma-g1-2-nc|12|450|5.4| +|Solenoid Valve <color #ed1c24>12VDC</color>|https://mauser.pt/096-8157/electrovalvula-solenoide-12vdc-450ma-g1-2-nc|  12|  450|  5.4| 
-|Buck Converter (Step-Down)|https://mauser.pt/096-8732/modulo-mini-conversor-step-down-uin-4-5-28v-uout-0-8-20v-3a-lm2596s-mp2307dn|12|3000 (Max)|15.00 (Max)+|Buck Converter (Step-Down)|https://mauser.pt/096-8732/modulo-mini-conversor-step-down-uin-4-5-28v-uout-0-8-20v-3a-lm2596s-mp2307dn|  12|  3000|  15.00| 
-|ESP32|https://mauser.pt/096-8744/modulo-esp32-wroom-nodemcu-wifi-cp2102|5|240 (Peak)|1.2| +|ESP32|https://mauser.pt/096-8744/modulo-esp32-wroom-nodemcu-wifi-cp2102|  5|  240|  1.2| 
-|Relay Module|https://mauser.pt/096-4673/whadda-wpm406-modulo-de-1-rele-5v-compativel-com-arduino|5|70|0.35| +|Relay Module|https://mauser.pt/096-4673/whadda-wpm406-modulo-de-1-rele-5v-compativel-com-arduino|  5|  70|  0.35| 
-|Capacitive Soil Moisture Sensor|https://mauser.pt/096-7465/seeed-modulo-grove-sensor-de-humidade-capacitivo-resistente-a-corrosao|3.3|5|0.0165| +|Capacitive Soil Moisture Sensor|https://mauser.pt/096-7465/seeed-modulo-grove-sensor-de-humidade-capacitivo-resistente-a-corrosao|  3.3|  5|  0.0165| 
-|Temperature Sensor|https://mauser.pt/096-8756/ds18b20-sensor-de-temperatura-100cm|3.3|1.5|0.005| +|Temperature Sensor|https://mauser.pt/096-8756/ds18b20-sensor-de-temperatura-100cm|  3.3|  1.5|  0.005| 
-|Diode|https://mauser.pt/007-0209/diodo-rectificador-1000v-1a-1n4007|1000 (Peak)|1000 (Max)|| +|Diode|https://mauser.pt/007-0209/diodo-rectificador-1000v-1a-1n4007|  1000|  1000|| 
-|DC Jack Terminal 2-Pin|https://mauser.pt/011-2116/ficha-dc-femea-5-5x2-1mm-bloco-terminal-2pin-c-parafusos-2-pecas|12|5000 (Max)||+|DC Jack Terminal 2-Pin|https://mauser.pt/011-2116/ficha-dc-femea-5-5x2-1mm-bloco-terminal-2pin-c-parafusos-2-pecas|  12|  5000||
 </table> </table>
  
-Table {{ref>Power}} presents the power table for the system to show the specific voltage and current values required to maintain safety under both normal and maximum load. These numbers are necessary to confirm that the 12VDC source provides enough energy to operate the esp32 and the solenoid valve simultaneously without failing.+Table {{ref>Power}} presents the power table for the system to show the specific voltage and current values required to maintain safety under both normal and maximum load. These numbers are necessary to confirm that the <color #ed1c24>12VDC</color> source provides enough energy to operate the ESP32 and the solenoid valve simultaneously without failing.
 <table Power> <table Power>
 <caption>Power Table</caption> <caption>Power Table</caption>
-^ Equipment ^ Voltage [V] ^ I_normal [A] ^ I_max [A] ^ P_normal [W] ^ P_max [W] ^ +^ Equipment ^  Voltage [V] ^  I_normal [A] ^  I_max [A] ^  P_normal [W] ^  P_max [W] ^ 
-| Solenoid Valve 12VDC | 12 | 0 | 0.45 | 0 | 5.4  +| Solenoid Valve <color #ed1c24>12VDC</color>  12 |  0 |  0.45 |  0 |  5.4 | 
-| ESP32 Development Board | 5 | 0.08 | 0.24 | 0.4 | 1.2  +| ESP32 Development Board |  5 |  0.08 |  0.24 |  0.4 |  1.2 | 
-| Relay Module (1-ch) | 5 | 0.005 | 0.075 | 0.025 | 0.375  +| Relay Module (1-ch) |  5 |  0.005 |  0.075 |  0.025 |  0.375 | 
-| Capacitive Soil Moisture Sensor | 3.3 | 0.005 | 0.005 | 0.0165 | 0.0165  +| Capacitive Soil Moisture Sensor |  3.3 |  0.005 |  0.005 |  0.0165 |  0.0165 | 
-| Temperature Sensor (DS18B20) | 3.3 | 0.001 | 0.0015 | 0.0033 | 0.0049  +| Temperature Sensor (DS18B20) |  3.3 |  0.001 |  0.0015 |  0.0033 |  0.0049 | 
-| Buck Converter (Internal Loss) | 12 | 0.01 | 0.02 | 0.12 | 0.24  +| Buck Converter (Internal Loss) |  12 |  0.01 |  0.02 |  0.12 |  0.24 | 
-| TOTAL | | 0.101 | 0.7915 | 0.5648 | 7.2364  |+| TOTAL | |  0.101 |  0.7915 |  0.5648 |  7.2364 |
 </table> </table>
  
Line 309: Line 316:
  
 Figure {{ref>fig:splash}} is a screenshot of the app’s initial onboarding and authentication screen shown when the user opens the application for the first time. It prompts the user to either create a new account or log in with an existing one, giving an early preview of the app’s visual design language. The registration process is intentionally minimal, requiring only a name, email address, and password. No external authentication services such as Google Sign-In are integrated, ensuring a fully consistent and self-contained authentication interface aligned with the overall app design. Figure {{ref>fig:splash}} is a screenshot of the app’s initial onboarding and authentication screen shown when the user opens the application for the first time. It prompts the user to either create a new account or log in with an existing one, giving an early preview of the app’s visual design language. The registration process is intentionally minimal, requiring only a name, email address, and password. No external authentication services such as Google Sign-In are integrated, ensuring a fully consistent and self-contained authentication interface aligned with the overall app design.
- +The design emphasizes simplicity and consistency, requiring only essential user information (name, email, and password) and avoiding third-party authentication services to maintain a unified user experience. 
-<WRAP>+<WRAP centeralign>
 <figure fig:splash> <figure fig:splash>
-{{:report:app:wireframe:splash.png?nolink&400|}} +{{ :report:app:wireframe:splash.png?nolink&400 |}} 
-<caption>This figure shows the initial authentication screen of the application, where users can either sign up or log in. The design emphasizes simplicity and consistency, requiring only essential user information (name, email, and password) and avoiding third-party authentication services to maintain a unified user experience.</caption>+<caption>Authentication screen</caption>
 </figure> </figure>
 </WRAP> </WRAP>
  
-Below are listed the several design choices.+/*Below are listed the several design choices.*/
  
 Firstly, the app uses a mix of neutral colors and green. Depending on the chosen theme, the user will see the app in a mix of white and green or black and green. Green is proven to calm the mind and make a person more relaxed. Secondly, this color is linked to nature. [(cherry2025colorgreen)] These 2 factors make it a perfect choice for this certain project. It is suggested that green boosts health and motivation, but this doesn't have grounded proof. Firstly, the app uses a mix of neutral colors and green. Depending on the chosen theme, the user will see the app in a mix of white and green or black and green. Green is proven to calm the mind and make a person more relaxed. Secondly, this color is linked to nature. [(cherry2025colorgreen)] These 2 factors make it a perfect choice for this certain project. It is suggested that green boosts health and motivation, but this doesn't have grounded proof.
Line 324: Line 331:
  
 Figure {{ref>fig:connectpod}} is a screenshot of the app interface showing the post-login setup screen where users are prompted to connect their account to a growth pod for the first time. Each growth pod is provided with a unique QR code and a corresponding alphanumeric code. The application allows users to activate their device camera to scan the QR code, automatically linking the growth pod to their account. Alternatively, if scanning is not possible, users can manually enter the alphanumeric code as a backup method to complete the connection process. Figure {{ref>fig:connectpod}} is a screenshot of the app interface showing the post-login setup screen where users are prompted to connect their account to a growth pod for the first time. Each growth pod is provided with a unique QR code and a corresponding alphanumeric code. The application allows users to activate their device camera to scan the QR code, automatically linking the growth pod to their account. Alternatively, if scanning is not possible, users can manually enter the alphanumeric code as a backup method to complete the connection process.
- +This post-login connection screen allows users to link their accounts to a growth pod using either a QR code scan or a manual alphanumeric code entry as an alternative pairing method. 
-<WRAP>+<WRAP centeralign>
 <figure fig:connectpod> <figure fig:connectpod>
-{{:report:app:wireframe:connect_to_pod.png?nolink&400|}} +{{ :report:app:wireframe:connect_to_pod.png?nolink&400 |}} 
-<caption>This figure shows the post-login connection screen where users link their account to a growth pod using either a QR code scan or a manual alphanumeric code entry as an alternative pairing method.</caption>+<caption>Post-login connection screen</caption>
 </figure> </figure>
 </WRAP> </WRAP>
Line 335: Line 342:
  
 Figure {{ref>fig:plantstatus}} is a screenshot of the app interface showing the plant status page that users are redirected to after successfully connecting their account to a growth pod. This page functions as a central monitoring dashboard where users can view both the growth pod details and the plant currently growing inside it. Key plant and system statistics are displayed in small information blocks arranged in a grid layout, allowing users to quickly understand the most important data at a glance without needing to scroll. Figure {{ref>fig:plantstatus}} is a screenshot of the app interface showing the plant status page that users are redirected to after successfully connecting their account to a growth pod. This page functions as a central monitoring dashboard where users can view both the growth pod details and the plant currently growing inside it. Key plant and system statistics are displayed in small information blocks arranged in a grid layout, allowing users to quickly understand the most important data at a glance without needing to scroll.
- +This plant monitoring dashboard  displays the status of the growth pod and plant in a compact grid of key statistics for quick overview and easy readability. 
-<WRAP>+<WRAP centeralign>
 <figure fig:plantstatus> <figure fig:plantstatus>
-{{:report:app:wireframe:plant_status.png?nolink&400|}} +{{ :report:app:wireframe:plant_status.png?nolink&400 |}} 
-<caption>This figure shows the plant monitoring dashboard, where users can view growth pod and plant status information presented in a compact grid of key statistics for quick overview and easy readability.</caption>+<caption>Plant monitoring dashboard</caption>
 </figure> </figure>
 </WRAP> </WRAP>
Line 345: Line 352:
 Figure {{ref>fig:focus}} is a screenshot of the app interface showing the focus session page, which is designed to be the primary feature used by the user. This page allows users to configure and start a focused work session for a selected duration, during which distracting applications and notifications are blocked. The list of blocked distractions can be customized by the user to allow exceptions for apps that may be required for work or study purposes, such as certain social media platforms. Users can choose between a single uninterrupted focus session or a structured focus approach using the Pomodoro technique, which alternates between focus and rest intervals. Figure {{ref>fig:focus}} is a screenshot of the app interface showing the focus session page, which is designed to be the primary feature used by the user. This page allows users to configure and start a focused work session for a selected duration, during which distracting applications and notifications are blocked. The list of blocked distractions can be customized by the user to allow exceptions for apps that may be required for work or study purposes, such as certain social media platforms. Users can choose between a single uninterrupted focus session or a structured focus approach using the Pomodoro technique, which alternates between focus and rest intervals.
  
-<WRAP>+<WRAP centeralign>
 <figure fig:focus> <figure fig:focus>
-{{:report:app:wireframe:focus_timer.png?nolink&400|}}+{{ :report:app:wireframe:focus_timer.png?nolink&400 |}}
 <caption>This figure shows the focus session screen, where users can configure timed focus sessions, manage distraction blocking rules, and optionally use the Pomodoro technique for structured work and rest intervals.</caption> <caption>This figure shows the focus session screen, where users can configure timed focus sessions, manage distraction blocking rules, and optionally use the Pomodoro technique for structured work and rest intervals.</caption>
 </figure> </figure>
Line 360: Line 367:
 Figure {{ref>fig:activefocus}} is a screenshot of the timer page when a session has been started. Like mentioned before, this page has a minimal amount of elements to avoid any distractions. Figure {{ref>fig:activefocus}} is a screenshot of the timer page when a session has been started. Like mentioned before, this page has a minimal amount of elements to avoid any distractions.
  
-<WRAP>+<WRAP centeralign>
 <figure fig:activefocus> <figure fig:activefocus>
-{{:report:app:wireframe:active_focus_timer.png?nolink&400|}}+{{ :report:app:wireframe:active_focus_timer.png?nolink&400 |}}
 <caption>This figure shows the active focus session screen, featuring only the remaining time, a generated motivational phrase, and an option to end the session early in order to maintain a distraction-free user experience.</caption> <caption>This figure shows the active focus session screen, featuring only the remaining time, a generated motivational phrase, and an option to end the session early in order to maintain a distraction-free user experience.</caption>
 </figure> </figure>
Line 369: Line 376:
 Figure {{ref>fig:journey}} is a screenshot of the app interface showing the user’s focus history page. This page is designed to motivate the user and visualise their progress over time. First, it displays the user’s focusing streak together with a generated motivational phrase. Second, it shows the total amount of time the user has spent growing their plant since the initial download, which is also visualised across multiple days in a graph to highlight the user’s most productive periods. Third, the page includes a text input block where the user can log how they feel. This feature is included because writing things down can provide clarity and improve productivity and motivation [(krueger2024writing)]. Figure {{ref>fig:journey}} is a screenshot of the app interface showing the user’s focus history page. This page is designed to motivate the user and visualise their progress over time. First, it displays the user’s focusing streak together with a generated motivational phrase. Second, it shows the total amount of time the user has spent growing their plant since the initial download, which is also visualised across multiple days in a graph to highlight the user’s most productive periods. Third, the page includes a text input block where the user can log how they feel. This feature is included because writing things down can provide clarity and improve productivity and motivation [(krueger2024writing)].
  
-<WRAP>+<WRAP centeralign>
 <figure fig:journey> <figure fig:journey>
-{{:report:app:wireframe:journey.png?nolink&400|}}+{{ :report:app:wireframe:journey.png?nolink&400 |}}
 <caption>This figure shows the focus history page, including the user’s streak with a motivational phrase, total accumulated focus time displayed both numerically and in a graph, and a journaling section where users can record their thoughts and feelings to support motivation and reflection.</caption> <caption>This figure shows the focus history page, including the user’s streak with a motivational phrase, total accumulated focus time displayed both numerically and in a graph, and a journaling section where users can record their thoughts and feelings to support motivation and reflection.</caption>
 </figure> </figure>
Line 378: Line 385:
 Figure {{ref>fig:profile}} is a screenshot of the app interface showing the profile page. This page serves two main purposes. Firstly, it provides access to all application settings for the user. Secondly, it allows the user to manage and edit their list of blocked applications. Lastly, the page includes an option for the user to log out of the application. Figure {{ref>fig:profile}} is a screenshot of the app interface showing the profile page. This page serves two main purposes. Firstly, it provides access to all application settings for the user. Secondly, it allows the user to manage and edit their list of blocked applications. Lastly, the page includes an option for the user to log out of the application.
  
-<WRAP>+<WRAP centeralign>
 <figure fig:profile> <figure fig:profile>
-{{:report:app:wireframe:profile.png?nolink&400|}}+{{ :report:app:wireframe:profile.png?nolink&400 |}}
 <caption>This figure shows the profile page, where users can access settings, manage their blocked applications list, and log out of the application.</caption> <caption>This figure shows the profile page, where users can access settings, manage their blocked applications list, and log out of the application.</caption>
 </figure> </figure>
Line 387: Line 394:
 Figure {{ref>fig:garden}} is a screenshot of the app interface showing the community garden page where users can share their plant progress with other users. This page allows users to post a picture of their plant or their progress accompanied by a caption, and also lets users view posts shared by others. Unlike typical social platforms, this community does not include any interactive features such as likes or comments. This design choice is intentional, as any form of interaction could distract the user or negatively affect their mental state. Figure {{ref>fig:garden}} is a screenshot of the app interface showing the community garden page where users can share their plant progress with other users. This page allows users to post a picture of their plant or their progress accompanied by a caption, and also lets users view posts shared by others. Unlike typical social platforms, this community does not include any interactive features such as likes or comments. This design choice is intentional, as any form of interaction could distract the user or negatively affect their mental state.
  
-<WRAP>+<WRAP centeralign>
 <figure fig:garden> <figure fig:garden>
-{{:report:app:wireframe:garden.png?nolink&400|}}+{{ :report:app:wireframe:garden.png?nolink&400 |}}
 <caption>This figure shows the community garden page, where users can share and view plant progress posts without interaction features such as likes or comments to avoid distraction and negative psychological impact.</caption> <caption>This figure shows the community garden page, where users can share and view plant progress posts without interaction features such as likes or comments to avoid distraction and negative psychological impact.</caption>
 </figure> </figure>
Line 414: Line 421:
 <WRAP group> <WRAP group>
 <WRAP half column> <WRAP half column>
-{{:report:app:wireframe:connect_to_pod_pre.png?nolink&400 |}}+{{:report:app:wireframe:connect_to_pod_pre.png?nolink&400|}}
 </WRAP> </WRAP>
 <WRAP half column> <WRAP half column>
Line 431: Line 438:
 <WRAP group> <WRAP group>
 <WRAP half column> <WRAP half column>
-{{:report:app:wireframe:active_focus_timer_pre.png?nolink&400 |}}+{{:report:app:wireframe:active_focus_timer_pre.png?nolink&400|}}
 </WRAP> </WRAP>
 <WRAP half column> <WRAP half column>
Line 450: Line 457:
   * Ionic Vue is heaviliy dependent on APIs that communicate with the phone's native components. This middle-layer makes compliation even slower, leading to slower performance when the app grows bigger.   * Ionic Vue is heaviliy dependent on APIs that communicate with the phone's native components. This middle-layer makes compliation even slower, leading to slower performance when the app grows bigger.
   * Querying deeply nested data in Firebase is very difficult and requires longer segments of code which in turn slow down the phone even more.   * Querying deeply nested data in Firebase is very difficult and requires longer segments of code which in turn slow down the phone even more.
-  * Firebase has had multiple outages over the past 2 years, making it unreliable[(firebase_status)]+  * Firebase has had multiple outages over the past 2 years, making it unreliable [(firebase_status)].
  
 Because of these reasons, the app will be developed using Flutter and Supabase instead. Because of these reasons, the app will be developed using Flutter and Supabase instead.
  • report/dvp.1776279099.txt.gz
  • Last modified: 2026/04/15 19:51
  • by epsatisep