Difference between revisions of "ECE497 Project Not Your Average Cup of Joe"

From eLinux.org
Jump to: navigation, search
(Theory of Operation)
(Work Breakdown)
Line 83: Line 83:
== Work Breakdown ==
== Work Breakdown ==
List the major tasks in your project and who did what.
* Hannah: Built the website and connected it to the firebase.
* Rahul: Created the python code for the BeagleBone.
* Maddy: Created the wiki page, posted to hackster.io, and wired the coffee maker.
Also list here what doesn't work yet and when you think it will be finished and who is finishing it.
All of the team's work is completed.
== Future Work ==
== Future Work ==

Revision as of 15:51, 18 November 2019

thumb‎ Embedded Linux Class by Mark A. Yoder

Team members: Hannah Woody Rahul Das Maddy Twetten

Grading Template

I'm using the following template to grade. Each slot is 10 points. 0 = Missing, 5=OK, 10=Wow!

00 Executive Summary
00 Installation Instructions 
00 User Instructions
00 Highlights
00 Theory of Operation
00 Work Breakdown
00 Future Work
00 Conclusions
00 Demo
00 Late
Comments: I'm looking forward to seeing this.

Score:  10/100

(Inline Comment)

Executive Summary

Coffee lovers all over the world deal with the never ending struggle of having to make their own coffee. This usually results in them waking up earlier than they need to or causing them to be late for work because they got caught in the Starbucks rush. Our product is a web application that allows users to remotely schedule and have their coffee brewed from afar via an internet connected coffee maker. Currently, we do not have a direct connection to the website. Our coffee maker will be linked to user accounts and will allow the user to access the machine's settings. Instead of scheduling your life around coffee, you can now schedule coffee around your life.


For the final product, our team screwed the BeagleBone onto the back of the coffee maker. This way, the BeagleBone would not overheat when the coffee maker runs and it will be visible to the user for easy debugging.

Installation Instructions

1: Obtain a BeagleBone Black [1]

2: Obtain a Black and Decker 12 Cup Programmable Coffee Maker [2]

Black and Decker 12 Cup Programmable Coffee Maker.jpg

3: Unscrew the bottom of the coffee maker and unscrew the programmable board from the coffee maker.

4: On the programmable board, cut the RLY wire

Front of Prog Board.png

5: Solder/connect another wire extending the cut RLY wire in order to connect it to a GPIO pin on the beagleboard.

Extended RLY Wire.jpg

6: Solder an additional wire onto the GND terminal on the green part of the programmable board.

Back of Prog Board.png

7: Connect these two pins to the GND on the BeagleBone Black and a GPIO pin on the BeagleBone Black (We used P9_12)

Side of BeagleBone.jpg
Top of BeagleBone.png

8: Take a look at our GitHub page: [3]

9: Plug in the BeagleBone to give it power, and use the website to schedule/make coffee!

User Instructions

  • Plug in the BeagleBone to your computer and in a linux terminal, run the script controlCoffeMaker.py
  • Plug in the coffee maker to a wall outlet.
  • Go to the website, [4]
  • Login with your email and password.
  • You will see a list of coffee makers that you have added, go to your desired coffee maker and set your desired brew time or simply hit the button to brew a cup of coffee now.
  • Enjoy!


Here is a list of the extensive features of our smart coffee maker:

  • Turn the coffee maker on and off.
  • Start brewing a cup of coffee.
  • Stop brewing a cup of coffee.
  • Schedule a brew at a certain time.
  • Cancel a scheduled brew.
  • Create an account on the website.
  • Customize various items based on your web account.

Include a YouTube demo the audio description.

Theory of Operation

The website connects to the firebase and sends its data to the firebase, which stores that information to the firebase. The BeagleBone checks the values that the firebase stores, then the code on the BeagleBone executes the operation that corresponds with the data stored. The BeagleBone can also update the data stored in the firebase. For example, if the start brewing button is pressed on the website, firebase stores the button press. When the program runs, it checks that status of the brew coffee button, executes the commands for making the coffee, then sets it back to false.

Work Breakdown

  • Hannah: Built the website and connected it to the firebase.
  • Rahul: Created the python code for the BeagleBone.
  • Maddy: Created the wiki page, posted to hackster.io, and wired the coffee maker.

All of the team's work is completed.

Future Work

Some additional things our group could do:

  • Voice recognition brewing: The user can speak a command to the coffee maker and it will pick up the command and do the action. For example, the user could say, "brew a cup of coffee" and the coffee maker will automatically start making the coffee as long as the water and coffee grinds are inside of the machine.
  • Temperature sensing function: This will allow the coffee maker to brew the coffee at a certain temperature or hold the coffee pot at a certain temperature. This hold function is especially handy if the scheduled brew occurs and you are not able to get to your cup of coffee within 5-10 minutes of the brew, where the coffee pot will cool down too much. Additionally, the temperature sensing function will be able to report on the website the temperature that the coffee is being made at and the current temperature of the coffee pot.
  • Water level sensor: This sensor will allow the coffee maker to report to the user via the website that the water level is low. This is useful because the user will be able to know when he/she needs to refill the coffee maker with water in order to carry out the brewing.


Our group is very pleased with the outcome of this project. Given the short period of time we had to complete the project and juggling many other courses, we feel that we accomplished the main goal of our project. The group found that the easiest part of the coffee maker system was rerouting the hardware so that we could control the coffee maker through the GPIO pins on the BeagleBone. The most difficult part of the project has been interfacing with the website. If our group had more time, we would make the website able to add more coffee makers and integrate it with social media through an app. Overall, our group was very pleased with the features of our coffee maker project and we are confident in the embedded work that we did.

thumb‎ Embedded Linux Class by Mark A. Yoder