ECE497 Project Not Your Average Cup of Joe
Embedded Linux Class by Mark A. Yoder
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
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.
1: Obtain a BeagleBone Black 
2: Obtain a Black and Decker 12 Cup Programmable Coffee Maker 
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
5: Solder/connect another wire extending the cut RLY wire in order to connect it to a GPIO pin on the beagleboard.
6: Solder an additional wire onto the GND terminal on the green part of the programmable board.
7: Connect these two pins to the GND on the BeagleBone Black and a GPIO pin on the BeagleBone Black (We used P9_12)
8: Take a look at our GitHub page: 
9: Plug in the BeagleBone to give it power, and use the website to schedule/make coffee!
Once everything is installed, how do you use the program? Give details here, so if you have a long user manual, link to it here.
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
Give a high level overview of the structure of your software. Are you using GStreamer? Show a diagram of the pipeline. Are you running multiple tasks? Show what they do and how they interact.
List the major tasks in your project and who did what.
Also list here what doesn't work yet and when you think it will be finished and who is finishing it.
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.
Embedded Linux Class by Mark A. Yoder