Week 1 (9/3 - 9/9)
We began talking about the project and our objectives. We met with Natalie in class on Friday and it was brought to our attention that the project may be too easy and not take that long to complete. With this in mind, we began brainstorming different ideas to maker project harder while not over-shooting the bar. Some ideas we have thought about are an app that can connect to the mechanical system, using bluetooth with the arduino to connect the mechanical component to a phone, or adding a more sophisticated mechanical component (specifics not yet thought of).
Week 2 (9/10 - 9/16)
Our goal this week was to finalize how we would proceed with our project. After meeting with Natalie we narrowed our options down to the app with a raspberry pi connecting to the mechanical component, or an app with the arduino that connects to the mechanical component (this can be messy and difficult though). We took these thoughts into our meeting with Professor Feher where we learned more about how the raspberry pi operates and what we can do with it. AN interesting thing we learned is that we can create a web application using the pi. After learning this, we came to the conclusion that we will be using a raspberry pi to create a web server and use the Arduino as an ADC in order to allow the raspberry pi to connect to our mechanical component. Using Python and coding the Pi will be a new to the both of us so it will take up quite a bit of time. We will now be working to figure out a design for our project so we can get started with the mechanical parts.
Week 3 (9/17-10/3)
Update 9/21 : Before Wednesday, we both met up and drew out some basic designs that we could implement. On Wednesday we met with Natalie to talk about our procedure going forward and what we need to do this week. We also showed her our designs and talked about them briefly. We decided we would most likely be using some kind of shower head to water the plants (water source will be hanging above the plants). This shower head may use bluetooth and connect to the pi, but we have yet to finalize that. We also made our decision about the arduino. We decided that we will be cutting out the Arduino and solely be using a raspberry pi with an ADC for our system. After talking with Natalie this seemed to be our best course of action in making our project both not too complicated and not too easy. A picture of the design and our budget will be finalized the weekend.
Week 4 (9/24 - 9/30)
This week we decided on a design that we are going to go forward with to start our project. We both spent about 2 and a half hours on Thursday making our project page accurate and correcting some misstatements that we made early about our project. During this time we also decided on the design and made a budget that we hope to get approved so we can move forward and start working on the coding and overall build of the project. Matt made a PowerPoint to show to the class about our project and it took him about 30 minutes to an hour the get the presentation together. We pitched our project idea to the class on Friday. Sean spent about 2 hours over the weekend learning how to code using python and learning how to hook up a raspberry pi to a monitor, keyboard, and mouse and get it connected to the internet. We both met in the lab on the afternoon of Tuesday, October 3 and got the raspberry pi connected and then we tried surfing the web and putting in simple code and seeing how coding on the raspberry pi was different from what we expected. File:ESE205 Presentation.pdf
Week 5 (10/4-10/10)
This week we both attempted to go to store to pick up supplies but had car troubles and had to postpone until this Wednesday. The sensors (moisture, water level, and solenoids) were all delivered by Tuesday along with the ADC. After talking with a mutual friend who is very knoeledgeable about these types of projects, he informed us that we will need a 12V to 3V relay since the solenoids do not operate at a minimum of 3.3V like the raspberry pi needs. Fortunately he had one that he was not using that he is letting us borrow for the project. This week Matt worked on learning more about web applications and figuring out the best way to go about this. He created an Amazon AWS account and researched how to use Elastic Beanstalk, Flask, and SQlite3 (database application for python). He also coded some of the application.py in PyCharm that begins the process of creating the web app. He also updated the project description to outline their new use of solenoids. Since we did not yet have our sensors, Sean continued learning Python and looking at code thats similar to that needed for our project. He also researched the relay switch and how it works in connection with the solenoids.
- Wiki Page: 30 minutes
- Learning AWS and Messing around with Enviroments- 4 hours
- Coding application.py and Linking URL on raspberry pi - 2 hours
- Researching Data Sheets for Sensors - 1 hour
- Learning Python- 3 hours
- Learning about 12v to 3v relay/ AWS - 1 hour
Week 6 (10/11-10/18)
This week was focused on the start of coding the mechanical part of the project and getting the rest of the material to plan out how to put everything together. The task at hand this week was coding the moisture sensor. During this week we learned how to make the circuits using the moisture sensors, adc converter, and raspberry pi. We also learned how to write the code that takes the digital output from the sensor, run it through the adc converter, and have an analog value displayed by the raspberry pi. Some challenges we ran into this week were getting correct analog values after running the digital values through the adc converter and getting the data from multiple moisture sensors.
- Buying rest of the material: 1 hour
- Learning/Beginning moisture sensor code: 2.5 hours
- Building circuit, finishing sensor code, and wiki page: 3 hours
- Continued Working on/ Learning the AWS system: 2 hours
Week 7 (10/19-10/25)
Not much was able to be done this week because it was discovered that the raspberry pi is broken and Sean was away from Friday to Sunday. Sean also met with Professor Feher on Tuesday to discuss some questions he had about some code on the raspberry pi. At this meeting, it was discovered that the pi is broken. During the meeting, the topics discussed were the issues with converting from digital to analog, coding the solenoid on the pi, what supplies are needed for the solenoid, and how the 12V to 3.3V converter will work with the solenoid. Matt was able to write code in PyCharm for the web application and has coded the "Hello World" aspect but since the raspberry pi is currently not working, we were unable to send anything to a server. Our pi that in incapacitated has the code that would be used to send the information. depending on the outcome of what happens with our pi Matt will either have to recode the program (on a new pi) or it should be able to send the information but this has yet to be tested. We will be going to the store on Wednesday night to pick up some more supplies.
- Met with Professor Feher to talk about issues with moisture sensor code and the solenoid: 1 hour
- Coded in PyCharm and spent a lot more time researching how it all works: 5 hours
Week 8 (10/26-10/31)
This Week Matt and Sean spent a good amount of time in the lab using the pi. Matt was able to get the "Hello world" concept up. the link to this site is: SoilSolutionsWebsite. Now Matt is starting to learn the sqlite3 interface more in depth. He has gotten it so that data entries inputed on the pi are recognized as data entries by sqlite but now needs to continue figuring out how to put the data onto the website. Sean spent the week fixing the code for the moisture sensors. Sean emailed and talked to Professor Feher about the issues he was facing with the code and ended up using code that was recommended to him by Professor Feher. Some issues were had with this code but were easily fixed. Sean hooked up the water level sensor and the 5v relay to the pi as well. He also made code that simulated turning on the solenoid using leds and code that would give a rough estimate as to the water level and if the water source needed to be refilled. He also did some research on how to use the 5v relay with the pi and a solenoid.
- Coding Hello World - 4 hours
- Coding with SQlite3 - 3 hours
- Fixing moisture sensor code - 3 hours
- Coding leds(solenoids)/messages - 2 hours
- Hooking up relay and water level sensor/relay research - 1 hour
Week 9 (11/1-11/7)
This week Matt and Sean were only able to work on the mechanical code of the project. The code for the moisture sensors was updated so that it would return a percentage of how moist the soil is and so that it could turn on the relay. More research about the relay was done so that it could be hooked up and working by the end of next week. It would've been done this week but there were some issues hooking up the relay that Sean was not confident about since he has not yet learned how to do it. Sean also looked at Spice to try to figure out how to create circuit diagrams and also started to relearn Solidworks in order to be able to do the CAD this week. Matt had a very busy week this week in terms of testing as he had both a computer science and accounting exam on Monday and Tuesday respectively. This put him back a little bit but should not affect the outcome of the web server. If anything it may limit the ability to make the website as flashy as we would like but we will see come the end of November. Matt read the tutorial on creating a PHP file and began trying to create a PHP file that sends files to the web server but this was very tricky as PHP is something he's never touched. After meeting with professor Feher in his meeting later this week I'm sure that he will have a grasp on it and will be able to have the website functional in no time.
- Coding the moisture sensor and relay - 1 hour
- Research about the relay - 1 hour
- Learning Spice and Solidworks - 1 hour
- PHP file and tutorial - 2 hours
Week 10 (11/8-11/14)
This week Sean figured out how to connect the relay to the Solenoids and got it running. There are some problems we encountered with the solenoids and water level sensor. The solenoids need a minimum psi of 3 to be able to function properly so depending on our water sources output it could make things tricky. Our water level sensor was displaying some incorrect reading when we placed it into a water source (sometimes readings change when the water level remains the same). We aren't yet sure what is causing this problem. Sean also got stated the CAD work for the connector between water source, solenoids, and tubing. Matt started trying to implement the files that professor Feher provided but hasn't had any success yet. This week he also got really sick and still had a lot to do for other classes so the hours were short of what he was shooting for. The next step for Matt will be focusing on the design of the web page (writing the html code for it), and further altering the sample files for our project.
- Figuring out design of Web page and figuring out how to use the sample file - 2 hours
- Research/setting up relay - 2.5 hours
- CAD - 2 hours
Week 11 (11/15-11/21)
- CAD - 2 hours
- Realy and Solenoids - 6 hours
Week 12/13 (11/21-12/4)
This week we purchased a peristaltic pump and a 12 v power supply that we successfully applied to our project in time for the demo. During the demo we didn't encounter much trouble and the system was running well throughout. Unfortunately the website was not finished in time due to some problems with the hosting services security and FTP struggles. But over the weekend after the demo Matt successful got the website up and running using the AWS hosting service that was part of the original plan. With some explanation and help from a friend who knows a lot about this kind of stuff (John Gibson), Matt was able to get up the website on Monday Dec. 4th. The URL for the website is: http://ese205soilsolutions-env.xba2aybskw.us-east-2.elasticbeanstalk.com/get?id=1. Now we have officially finished the project and will begin writing our Final Paper. Code for the Website and the system an be found here. Credit can be found in the README.txt file