Contents |
Goals
- Be able to select soda and have it drop from the computer.
- have the microcontroller notify when a soda is out, and send an e-mail to the current cokehead
Ideas
- some way of detecting when a product is out, and possibly sending out a notification e-mail
- I was wondering what we'd do if we detected the soda was actually out...It seems most useful only if we could tell the machine which soda we wanted and it dropping, rather than having to push the button --Will
- move the soda machine to the first floor (student lounge?) so that people actually see it
- Definitely. -- Will
- fix login thing so enter and tab actually work right
- use UW id cards to dispense soda (barcode and or RFID reader) as a sort of speedy way to get a soda
- there is a commercial barcode scanner in the upl, not sure if it works or where it came from. Also, the potential for abuse might be raised if all you need to buy soda is someone's student id. - Aaron
- I think that this isn't the best idea, for the reasons Aaron said, as well as the fact that we'd have to deal with the UW to allow this. --Will
- While the potential for abuse still remains, I think it'd be a good idea to try this, since we don't need to deal with UW, all we need to do is tie a barcode to an account. --Will
- pick drink from computer instead of having to hit the button on the machine
- logging of drink selection by date, type, and account
- status of how many cans left
- better database set up
- web interface to statistics and accounts
- Paypal and/or Google Checkout integration for automatic payment processing
From Bart after client program demo:
- if a soda isn't stock, don't allow the user to select it
- a web interface that allows a user to check the status of the machine, and possibly do account maintenance
- make the buy soda page look like a soda machine
- client program cannot buy soda if not running on right machine
- some kind of indication of if soda is warm
- secure source code in /p on afs and lock it down with ACLs
Useful Links
http://www.cs.wisc.edu/sacm/coke/cokehome.html
http://www.cs.cmu.edu/~coke/history_long.txt
http://www-cse.ucsd.edu/users/bsy/coke.html
http://en.wikipedia.org/wiki/Rabbit_Semiconductor
http://www.lvr.com/ethernet.htm
http://www.rabbit.com/products/rcm3200/index.shtml
http://www.electro-tech-online.com/
https://www.cs.wisc.edu/twiki/bin/view/CSDocs/UnsupportedNetworkFAQs
People working on this project
- Jeff - hardware
- Matt - hardware
- Will - software
- Aaron - software
- Alex - software
The Hardware
coke.cs.wisc.edu Runs REHL Server 5.2
serial output to a parallel converter. attached to that is a single wire that goes into the back left of the coke machine
The coke machine is a Dixie-Narco Inc Model DNCB 368/216-7 owned by the CS Dept since at least 1980
The Original Software
is located in ~sacmuse/coke on afs
written in perl and uses the gui editor glade
sends a break signal for 250 milliseconds to /dev/ttyS0 (the serial port) to dispense soda
Repository
svn+ssh://svn.upl.cs.wisc.edu/svn/coke
New Parts
Connections to switches (8)
- WM18739-ND - (1 * 8) piggyback connector 18-22AWG, 0.250" terminal
- WM18237-ND - (2 * 8) female connector 18-22AWG, 0.250" terminal
- WM18942-ND - (2 * 8) male connector 18-22AWG, 0.250" terminal
- C2103W-100-ND - (2) wire 18AWG stranded, pvc insulation 600v
Relay Board
- PB889-ND - (8) relays 12vdc
- A33334-ND - (2) board to switches connector
- A25577-ND - (2) switches to board connector
- A25692-ND - (30) contacts for switches to board connectors
- 377-1542-ND - (1) case
- C2101Y-100-ND - (1) wire 22Awg pvc insulation 600 v stranded yellow
- C2101L-100-ND - (1) wire 22Awg pvc insulation 600 v stranded blue
- A26585-ND - (2) 2x17 male pin header
- A25821-ND - (2) 2x17 female pin connector
- A33425-ND - (100) sockets for 2x17 female pin connector
- Diodes and resistors - supplied by Professor Morrow
Microcontroller Prototype Board
- PNR-2608-DG-ND - (1) case
SC1326-ND - (2) 2.5mm jack for power VERIFY
Wire lengths
switches -> relays
- 40 inches or 3.33 ft
- 4 runs per switch comes to 32 runs
- 106.66 ft needed
relays -> uC
- 45 inches or 3.75 ft
- 34 runs
- 127.5 ft needed
power -> uC
- 56 inches or 4.66 ft
things to remember about software
- listOfFrostyDrinks.txt needs to be read-only.
- helpFile.txt too.
notes on software
- Need to check if we're out of soda when:
- first applet is first loaded //or not. Just going with whenever someone buys a soda.
- when the second applet (the buy screen) is loaded.
- whenever someone logs in
- whenever someone buys a soda (just to be safe)
- readInSodas() has a hard-coded link to a file in it. Fix it.
- Also readInHelpFile().
- Get the "correct" list of default sodas. Add it to readInSodas().
- Colors of "In Stock":
- Red is (180,0,0).
- Green is (0,120,0).
- Will need to log-back in if there's network difficulties.
- Turn off all the debug statements and stack printouts for final version!
To Do
- thank you letter to Morrow
- sanitize inputs
- make sure can't set low water mark > MAX_INT
- no little bobby tables
- transfer amount and transfer to
- modularize
- account info ... X
- hashing passwords
- proper help file
- Rug testing
- send emails for low water mark
- take over the world

