Sunday, August 10, 2014

The Coffee Pot: Let's Make Some Plans

Let's start out by revisiting our design goals:

Base Goals:
-Remote Start
-Activity Sense On/Off
-Clock that retains setting through power outage
-Indication for lack of water/grounds
-Brew Complete Buzzer

Stretch Goals:
-Web Interface
-Brew Temp Control
 
Now let's look at them one by one.
 
So how do we implement a remote start?
 
The first thing we need to do is control the on/off switch hands free. Since this switch is passing 120VAC, I will be using a relay for this function. The relay will be triggered by a buffered GPIO on my microcontroller. The microcontroller will also talk to the other half of the remote start, which is the XBee transceiver.

I am choosing XBee for a few reasons. Mainly that the information on Sparkfun makes it look really easy to implement, but the low power aspects, small footprint, and range of it are nice as well. The master plan in play here, is that I will eventually have several XBee remotes on miscellaneous devices around my house, all controlled by the unit that will be born here.

Moving on to the activity sensor. The main thought I had here is that the user should not need to worry about the coffee pot being left on. There is the leaving the house concern, and then there is the making an awful smell by leaving the burner on when almost no coffee is in the pot concern.

The first one is easy to solve. Just have the burner turn off on a timer. Since my next goal involves a clock, and this burner is about as dumb as could be, this will be easy. Yahoo! Answers tells me coffee tastes bad after sitting on the burner for an hour... so lacking an expert objection, I will just go on that (this blog does not recommend using the Yahoo! Answers: Come at me if you know better method of reasoning for decisions less trivial than the shut off time on ones remote control coffee pot). The trickier one is figuring out if the pot is empty before 60 minutes has elapsed. I don't have a firm answer on this yet, but I will be experimenting with range and light sensors with the hope of developing a reliable "coffee/no coffee" detector that can fit in the back of the coffee maker.

Why would I add a clock to a kitchen device that does not have one? There are so many appliances that have clocks that do not need to know what time it is so much as they need to have an awareness of how much time has passed... So why would I add to this lot? Well, the coffee pot this one will be replacing has one... and while that isn't a great reason, it would be nice to have one appliance in the kitchen that keeps reliable time through power outages, if for no reason other than having a convenient source to reset the others from.

So a real time clock is the solution. I will be using a Maxim DS3234 because I found a Sparkfun board using this in a derelict project. I'm unsure on what sort of display I will be using at this point, since part of me still thinks it may be possible to fit this stuff into the existing coffee maker chassis.

Detecting a lack of water and/or grounds is another thing that will take some experiments. I would prefer using some sort of weight/pressure sensor for each, but finding something that is cost effective, and rugged enough without serious modification could be difficult, although this little guy from Sparkfun has potential. Both of these status items will be read by the on board microcontroller and sent back to the "control station". I referred to it briefly earlier, but the control station will receive its own post at a later date, as my plans for it extend beyond this project.

As for a completion buzzer? This could work in conjunction with the water sensor, or just be another function of experimentation and time. I think the time method will be more reliable, given what we learned about the reservoir setup during the teardown.

I will leave the stretch goals for future consideration. I want to make sure I can get my real time clock drivers running first. In my next post, hopefully I will be able to share some firmware!

I know a lot of things were kind of glossed over here, but this post was as much shared brain storm as anything else. I just spent two weekends repairing my lawn mower and catching up on home maintenance hell, so a little bit of mental calisthenics was necessary. Once the project is complete I will share complete schematic, bill of material, and firmware. If I ever sound like I am being intentionally vague, it is probably because I have yet to arrive at a solution I like.