59 lines
4.2 KiB
YAML
59 lines
4.2 KiB
YAML
date: 2009-06-21
|
|
title: Intelligent Drink Dispenser Details
|
|
---
|
|
I said that I'd post details on my Intelligent Drink Dispenser project "soon". That
|
|
was over a month ago. Whoops. I blame my [new internship](http://nucoryamato.com/) for that.
|
|
|
|
For those of you not in the know, the Intelligent Drink Dispenser was my senior design
|
|
project at Missouri University of Science and Technology (which will forever in my heart
|
|
be University of Missouri-Rolla). It's basically a smart drink dispenser that's capable
|
|
of mixing, charging customers, telling the bar/restaurant owner when they need to refill
|
|
the machine, etc.
|
|
---
|
|
If you don't feel like reading the details and just want to look at the pretty pictures,
|
|
you can check out my [Picasa album](http://picasaweb.google.com/nick.pegg/IntelligentDrinkDispenser)
|
|
or watch the [Youtube video](http://www.youtube.com/watch?v=79H5oAS_Y6k).
|
|
|
|
The theoretical process is that the customer would go to order a drink, and since they're
|
|
a new customer, they'd have to be entered into the system by the person running the machine
|
|
(bartender, or waiting staff). They would have their name and credit card information taken,
|
|
and would then be assigned a drinking vessel based on the first drink they were wanting to
|
|
order. Multiple vessels could also be assigned to the same person. Once the customer is
|
|
setup and is ready to purchase their drink, they set the fluid vessel on the marked reader
|
|
area on the dispenser. The system then recognizes the vessel, who it belongs to, asks the
|
|
customer for the last four digits of their credit card, and then asks the customer which
|
|
drink they'd like to order. The customer then chooses what drink they'd like to have, the
|
|
system double-checks that the vessel is the right size, and pours it.
|
|
|
|
Security and privacy was one of the major goals of the project. The only information stored
|
|
about the user is their name, a secure hash of their credit card number, the last four digits
|
|
of ther card, and their drink order history.
|
|
|
|
The project itself can pretty much be split into two major components: hardware and software.
|
|
I would probably say the hardware is more interesting and posed more challenges for us. The
|
|
first thing is how the heck do you pour the fluid? If you take into consideration that we only
|
|
had a $300 budget for the whole shebang, it's not an easy task. The way that the professionals
|
|
do it is with Carbon Dioxide-powered pumps, which are controlled by electronic valves and supplied
|
|
by a tank and pressure regulator. Three pumps, valves, and the feed system would cost us well
|
|
over $300. Our original idea was to use 24 VDC sprinkler valves, but that idea failed because the
|
|
sprinkler valves by their nature require back-pressure to operate. We came up with the idea of using
|
|
windshield washer pumps made for cars. Since this was supposed to be a prototype, we didn't have to
|
|
worry about our components being food-grade. That, coupled with the fact that the pumps operate on
|
|
12V DC and are relatively inexpensive ($15-25 a pop), that's what we went with for our design.
|
|
|
|
The rest of the hardware design was fairly straightfoward. We used an 8051 microcontroller to control
|
|
everything, an FTDI UM232 to handle the PC communications and a Parallax RFID reader to read the
|
|
tags that are on the bottom of the drinking vessels. The serial communication is pretty interesting
|
|
since the USB-to-serial device has only one serial port but two devices to talk to (the RFID reader,
|
|
and the PC). Our solution was to have the receive line go to the RFID reader (to the PC), and have
|
|
the transmit line go to the 8051 (from the PC). This meant that our 8051 couldn't talk back, so we
|
|
had to hope that things were working right. Additionally, Richard developed a simple serial language
|
|
for the 8051. If the 8051 received an ASCII 0 through 7, it would turn on that pin on the port we
|
|
were using. This could easily be modified to operate with all the ports on the 8051 to control 24
|
|
pumps, or even with some addressing logic to control a huge number of pumps.
|
|
|
|
Below is our hardware schematic, which should give you some idea of how it's all connected.
|
|
|
|

|
|
|
|
In my next post, I'll be talking about the software design. Stay tuned!
|