Bill:
I wrote the code for getting the Arduino to read from the liquid level sensor. Then I combined the code with the code for reading from the load cell, and started thinking about how to send over multiple pieces of data to the Pi over the Serial USB connection. For now, I am just formatting the data by separating them with spaces, and splitting the data up on the Pi side. This method should work even with more liquid level sensors; we just have to make sure the data is ordered properly. Afterwards, I had to make changes to the code on the Pi to properly read from the Arduino. I got it to work with just a single liquid level sensor reading, so once we get the other sensors I will need to change the code a little bit more to read from all of them. Currently, we are waiting to get more pumps, and once we get them I will start working on get the additional pumps connected and running simultaneously.
Until now, we just had all the parts connected directly to the Arduino, but the set-up would not work once we get the rest of our parts, so I connected the parts using a breadboard instead. That also makes things more organized, and easier to mount onto the scaffolding.
I started working on making an actual wood platform, because the cardboard platform we have now is very flimsy and weak. I found a piece of wood that we can use, and drilled some holes into it.
Next week, I will continue building the platform and adding the other pumps to the system once they come in.
Connor:
Because Dave is working with the Raspberry Pi in regards to communicating with the API, I also worked with Dave in creating the API interface so that we can. We created a UML database diagram to be clear on what we were developing that you can see below:
We also discussed the RESTful endpoints that would be exposed of the API, as you can see below.
- /orders (POST) – Create a drink order
- /orders/{:id} (PUT) – Fulfills a given order of a particular id
- /orders/next (GET) – Retrieves the next order that needs to be fulfilled
- /orders (GET) – Retrieves the current queue of drinks (list of unfulfilled drinks)
- /orders (POST) – Create an order
- /recipes/{:id}/ingredients (GET) – Retrieves a list of ingredients for a recipe of a particular id
- /recipes (GET) – Retrieves all of the available recipes
- /bottles (POST) – Create a bottle for a drink
- /drinks (POST) – Create a drink (the liquid itself)
After discussing the above items with Dave, I began writing the API and have made a decent amount of progress on it.
Also, prior to meeting Dave to discuss the UML diagram, I also did a little bit of work with the web application, particularly the user page where users can input drink orders. You can see that current state of the UI below:
Next week, I will finish developing the API and deploy it to Amazon Web Services so Dave can begin integrating the Raspberry Pi with the API to send and receive updates (drink orders, a change in status for the bottles, etc.). I will also work on the web application as well.
Dave:
For this week, I first finished off the demo for Monday, including integrating the Arduino and RPi to put the entire system together to make the whole process from detecting a cup to pumping and mixing the liquid.
Then, because we are using five pumps in total, we would need to stack two dc stepper hats together on the RPi. I soldered the other hat and figured out how to control the two hats separately using different addresses.
Moreover, I have discussed the software design with Connor, as Connor said above. Thus, I have started writing code on the python to read files coded in the way as we designed.
For next week, I would finish control the pumps and sensors based on the input files. Also, I can finish mounting the hats as we buy the longer pins for the RPi from Amazon.
Overall:
With regards to the software portion, we are currently ahead of schedule. We have already made progress on the web application, and we are not supposed to begin working on it until the week following next. We are pushing off the drink recommendation towards the end to ensure that we focus on getting the core system in place. However, we still need to get the hardware set up. We need to hang the mixing station system (beaker and valve) and add the other pumps and liquid-level sensors to the system. Due to budget constraints, we are still figuring out a way to purchase the sensors without dipping into our own personal money. However, we should also get our pumps for the other bottles on Monday so we should be fine on that front. We are also placing great emphasis on looking for ways to avoid making purchases due to our budget. For example, we are hoping to use wood from the “cages” used for booth, and if that is unsuccessful, we are hoping to grab some planks of wood from one of our parents’ houses during the Thanksgiving break. While we have made some changes to the schedule, we believe we are on schedule to finish everything, especially with this upcoming week being a big week for us with a big push prior to Thanksgiving break.