# Homework Assignments OHA 2023 # Control Module to regulate flow of sea water during purification [Acraea](https://codeberg.org/LibreWater/Acraea-Prototype) is a an open source small scale solar desalination and water purifier prototype. This plant takes heat as input on one side and uses it to boil sea water. This water is then collected on the other side through condensation and allowed to flow out of the system as potable water. ## In Detail #### Heat Currently, the prototype uses Thermo silicon pads as a source of heat. The prototype can be powered by solar energy as well. #### Water purification Water enters the system through cotton cloth wicks made out of bedsheet. Through heat it evaporates. This water vapour then comes in contact with a cold aluminium plate and condenses. The droplets on this plate eventually trickle down and are collected as potable water. A "chamber" is defined as one cycle of evaporation and condensation. The prototype has multiple chambers stacked horizontally to increase efficiency and performance. #### Control process The moisture level of cotton wicks is maintained by estabilishing a head of water above them. The water gradually trickles down through the cotton wicks due to the effect of gravity and capillary action. We have to maintain a certain head of water which is correlated with the amount of input power that we have. i.e, This head coupled with the percolation rate should replace the amount of water being evaporated. The challenges we face are: 1. Regulate flow of input sea water as the amount of solar power changes during the day. i. Too much sea water input for the energy input: there will be no evaporation, just lukewarm sea water coming back out - and no fresh water. ii. Too little sea water input for the energy input will lead to dry spots and a thick salt crust will form all over the evaporation surfaces, reducing performance and ultimately quality. ## List of all components required and their purpose 1. Micro-controller [ESP32](https://nl.mouser.com/ProductDetail/Espressif-Systems/ESP32-DevKitC-32E?qs=GedFDFLaBXFpgD0kAZWDrQ%3D%3D&mgh=1&gclid=CjwKCAjwvfmoBhAwEiwAG2tqzKyGMrlCJj6loXDFPuatXf5MClWCINW2yCYJrGlP4VWNI27dlKA7LxoC8AgQAvD_BwE): The brain of the controller. Shall interface with various sensors and run the algorithm. Count 1 2. Heating pads [Thermo Silicon self adhesive pads](https://www.conrad.de/de/p/thermo-tech-silikon-heizfolie-selbstklebend-24-v-dc-24-v-ac-200-w-schutzart-ipx7-l-x-b-200-mm-x-100-mm-1594219.html): To add heat to the system for boiling water. Already available alongwith the Acraea prototype. Count 3. 3. Temprature [sensors](https://www.adafruit.com/product/3290) and [amplifiers](https://www.adafruit.com/product/3328). Count 3 4. Temperature and Humidity [sensor](https://www.seeedstudio.com/Grove-Temperature-Humidity-Sensor-Pro-AM2302-DHT22.html) 5. Power Supply [24V 600 watt](http://www.meanwell.nl/products/Meanwell-HRP-600-24---PSU-enclosed-24V27A__HRP-600-24.aspx): To power the thermo silicon pads. A bench power supply is preferable over this. Count 1. ~~6. Moisture sensor [Resistive](https://www.kiwi-electronics.com/en/grove-moisture-sensor-1913): Having, a moisuture sensor might allow us to have a much better understanding of the current state of the system and make more subtle changes to the head which might be difficult with the temperature sensor. Count 4.~~ ~~7. Moisture Sensor [Capacitive](https://wiki.seeedstudio.com/Grove-Capacitive_Moisture_Sensor-Corrosion-Resistant/): Same as above. Has a different working principle which trades accuracy for longevity. Count 4.~~ 8. [Relay](https://www.kiwi-electronics.com/nl/4-kanaals-5v-relais-module-1330?country=NL&utm_term=1330&gclid=CjwKCAjwvfmoBhAwEiwAG2tqzDw9EwRN7TIkzKhoL92BZartT4O03Z28l3axM0jAtKEZsk0Wux2PZxoCo2IQAvD_BwE): For control input. Turn on/ off the water pump. Can also be used to control the thermo pads during development. 9. Logic Level [converter](https://www.kiwi-electronics.com/en/4-channel-i2c-safe-bi-directional-logic-level-converter-bss138-837?search=level): For controlling the relay from ESP32 10. Water level sensors: [Resisitive](https://www.temu.com/nl/kuiper/n9.html?subj=googleshopping-landingpage&_bg_fs=1&_p_rfs=1&_x_ads_channel=google&_x_ads_sub_channel=shopping&_x_login_type=Google&_x_vst_scene=adg&mkt_rec=1&goods_id=601099519042340&sku_id=17592226933248&_x_ns_sku_id=17592226933248&_x_gmc_account=742386076&_x_ads_account=7159460000&_x_ads_set=20546299158&_x_ads_id=160317700024&_x_ads_creative_id=674003204345&_x_ns_source=g&_x_ns_gclid=CjwKCAjwvrOpBhBdEiwAR58-3OqflXH9rQxk7HLG76DE_GS8ocsHsdnQ-GRMvOQwPQ79-_inImoOPxoCmdgQAvD_BwE&_x_ns_placement=&_x_ns_match_type=&_x_ns_ad_position=&_x_ns_product_id=742386076-nl-17592226933248&_x_ns_target=&_x_ns_devicemodel=&_x_ns_wbraid=CjgKCAjwm66pBhAREigASzk905-DjDpOwnt8Wnf0wl2n0rnm-86vAJUpy6SsXgFrmIsBlrvTGgK4bw&_x_ns_gbraid=0AAAAAo4mICGPZEJEFu062ISo0t9cb4QET&_x_ns_targetid=pla-2199369757118&gclid=CjwKCAjwvrOpBhBdEiwAR58-3OqflXH9rQxk7HLG76DE_GS8ocsHsdnQ-GRMvOQwPQ79-_inImoOPxoCmdgQAvD_BwE&adg_ctx=f-7adc4816), [Ultrasonic](https://www.ebay.de/itm/153869418604) 11. Water Pump: TBD ### Steady State Analysis [Notes](https://github.com/shantnavagarwal/Acraea_Controller/blob/main/Notes.pdf): (Back of the envelop calculations done at 1 AM) ### Project: My favorite challenge is: [Solar Desalination - Process control with ESP32](https://docs.google.com/document/d/1hjMLiujZHO4uaf1BWmtY5O3Y-EC3x7oOxGmgZHRAPNE/edit) I am going to make the following additions to this project: 1. Using an ESP32 and water level sensors maintain a desired head of input sea water to control the amount of water entering the system. 2. Using an ESP32 and humidity/ temprature sensors, determine the correct amount of head required to maximize the production of purified water. #### Value Proposition: For people who face acute shortage of potable water but have access to saline water sources and sunlight. Who being able to cheaply and sustainably create and operate a small scale water desalination plant. The Acraea is an open source water purification and desalination device that can run on solar power That is built using material available readily/ material that has been repurposed (eg. Bedsheets, wood, plastic bottles etc.) #### Target specs and features: |Priority| Features/ target specs| |--------|-------| |Must have|Sensors that are reliable and robust in presence of sea water. Completely automated operation requiring minimal human input | |Should have| Repurposed plastic - Reuse plastic water bottles, water pumps etc. | |Could have| IoT solutions. Using Bluetooth/ WiFi on the ESP32 to allow people to monitor performance or notify in case of errors such as poor water quality | |Won't have|N/A| ## Next iteration I have divided the project into 2 parts. The first part is to maintain a desired head of water. The flow of the project is as follows: 1. The user shall put the sea water into a bucket/ bottle which has a water pump in it. 2. This water pump, when turned on, will pump water from the bucket to the top of the Acraea to maintain the desired head of water. 3. There will be a water level sensor on the Acraea that can measure the current head of water and compare it against the desired head. 4. A PID / On-Off controller will control the flow of water from the pump. This controller will run on an ESP32 which is also connected to the water level sensor. 5. The ESP32 will use a relay/ motor controller to control the water pump. The next task I am picking up is to find out more about water pumps. I will also start getting the components required in the meantime to detect level of the water. I will start by working on a beaker so that it is easier to test the sensors and develop the algorithm. ## Create a progress board There is a progress board for each project. They can be found here: https://github.com/shantnavagarwal/Acraea_Controller/projects?query=is%3Aopen ## Pick up a hypothesis that is core to your project and design several experiments using the test cards One hypothesis can be found here: https://github.com/users/shantnavagarwal/projects/1?pane=issue&itemId=44260889 # Week 5 ## Exercise 1: Include verification tests in your testing plan :::warning If you have gone through the previous lesson: [hardware design and prototyping lesson](https://hackmd.io/1kONu5gwSS6knAGnwcO5KQ) then you have alrady created a testing progress board containing your tests/experiments. ::: :::spoiler Testing process and board summary ![](https://i.imgur.com/wLCeMJX.png) :point_up_2: Image retrieved from the book: "Value proposition design: How to create products and services that customers want" **Progress board** This tool simply aims to structure your testing process by starting from left to right with your core ideas broken down into prioritized hypotheses (concepts, ideas, sub-problems, sub-solutions). Then we have a backlog of tests that can also be prioritized using the prototyping criteria we have shared in previous sections and ends up with learnings and knowledge that are captured in better design specifications and choices. ![](https://i.imgur.com/hynkVZL.png)   :point_up_2:  Image retrieved from the book: "Value proposition design: How to create products and services that customers want" ::: ___ **Instructions** - Revisit your testing board - Add sanity checks or tests that aim to verify target features and/or specifications considering the steps above explained - Do a testing board with your testing overview for verification tests (if you haven't) ## Exercise 2: Design a test to check the sanity of the primary behavior of your project **Instructions** - Use the template below to describe a test case - (Consider adding this as a task on your project board) ``` Test Case Design Test Case Name: Test description: The description of the test case you are going to test. Revision history: Each test case has to have its revision history in order to know when and by whom it is created or modified. Function to be tested: The name of the function to be tested. Environment: It tells in which environment you are testing. Test Setup: Anything you need to set up outside of your application for example printers, network, and so on. Test Execution: It is a detailed description of every step of execution. Expected Results: The description of what you expect the function to do. Actual Results: pass / failed If pass - What actually happens when you run the test? If failed - put in the description of what you've observed. ```` ## Exercise 3 (optional): Design a test bench for those tests that you think you need to perform several times **Instructions** - Make a bill of materials for your testing environment - Design your testing environment (make a sketch or a draft) - (Consider adding this as a task on your project board) # Week 6 :::danger Copy the contents of this HackMD page and make your own HackMD page for the person you are writing the feedback. ::: ## Name of the person reviewing [Miguel F. Marrero Tarrau] ## Name of the project being reviewed [ FAIR-Battery] [https://github.com/SanliFaez/FAIR-Battery#the-fair-battery-project] **Provide feedback in the form of recommendations, observations, suggestions, or questions** - For each feedback session:     - Write a minimum of 5 points where you think there is room for improvement     - Write a minimum of 3 aspects you like about the project ### Give feedback on your hardware documentation **Look for the following:** - Is the project findable or accessible? - Check if the readme contains an introduction with a clear value proposition? - Check if you can figure out easy to navigate is the project via the folders - Check if assembly instructions are published; - Check if the bill of materials is published; - There is some contribution guidance is published; - published files are shared in original format (for example Gerber files or cad files) - use of versioning control system - use of issue management system - all this information is published under a license allowing commercial reuse. ### Give feedback on your project The main goal is to see if you have set up a systematic plan to realize your project vision and if it's realistic in terms of time and scope. Instructions: - Is there a list of priorities or hypothesis     - This could be in the form of a roadmap     - or a progress board with a list of features     - or GitHub issues     - (Some kind of project documentation that reflects your thinking) - Is there consistency between ideas and expectations, and ongoing prototyping activities - Do you think these prioritized tasks are feasible during the academy or the next 3 months     - Or would you recommend breaking down the project into smaller iterations ## Exercise 1 (Optional) - Assess the sustainability of your current project cycle **Instructions**: Fill in this test card to incorporate in your project board (This doesn't have to be public as these are personal internal aspects of a project. You can talk about it with your peers and mentors) ``` ## Test name (this can be the name of the GitHub issue) duration, deadline (these metadata can be added in GitHub issues) Step 1: Sustanability hypothesis - - Example 1: I believe that I can deliver this project in 6 months while I am doing also my master studies or PhD because I can do it relatively easy and I know exactly how to do it. - Example 2: I believe I can learn new things in this project and will also complement my studies. - Hypothesis importance (score from 1 to 3) Step 2: Test - Example: To verify that, I will plan a sprint of 3 months where I will focus on a set of tasks.... Step3: Metric - Example: And measure..... how much time it takes me, how capable I am actually of performing the tasks - Example: How many hours I spend Step 4: Criteria Example: I am right if I can deliver most of the tasks I planned in my sprint. Learning documentation Step 5: Observation - Example 1: I observed that ..... The problem was a bit more complex than expected - Example 2: I observed that some people replicated the hardware succesfully. Step 6: Learning and insights - Example 1: From what I learned that project needs more time and expertise in hardware electronics - Example 2: Someone with coding expertise would be needed if I want to make a more robust solution. - Example 3: From what I learned that other potential contributors found similar projects that are more mature Step 7: - Example 1: Therefore, I will ... stall the project for now - Example 2: I will continue the project if I find someone that wants to co-develop with me the coding aspect of it. - Example 3: I will continue to a next cycle if the acceptance tests are succesful and early adopters are willing to use my hardware product. ``` <!-- ### Give feedback about project openness - Is the project findable or accessible? - Is it clear what is the status of the project? (early stage, mature stage focused on documentation) - Does the README provides the following:     - Clear, straightforward, and to the point value proposition     - Is there a bill of materials or a draft of a bill of materials     - design files are published * assembly instructions are published * a bill of materials is published * a contribution guide is published * published files are shared in original format * use of versioning control system * use of issue management system * All this information is published under a license allowing commercial reuse. -->