I developed the control system for a internet connected vending machine, and also designed the mechanical structure and the vending mechanism. This was created some time in May this year for one of the events organized by Google.
What does the Machine do?
So it worked like this, there is a wall where there are pictures of 30 food items and an QR code on each item. Users come in and scan the code, the code takes them to a website where they put in their name and are given a 4digit pin, now next to the wall is the vending machine, they punch in the 4digit code and lo and behold, they are given the item for which they scanned the code.
The system consist of an Arduino, 30 Motors, with their custom built drivers, a 4×4 keypad to punch in the 4 digit code and a 16×2 LCD display, a laptop connected to internet running a python script, so when the QR code is scanned and pin is generated, that data is written on a CSV file on my server, with item number and item code. As soon as the 4digit pin is input on the keypad of the vending machine, the data is sent to the PC and python then cross references the PIN with the item code, python get the item number if the PIN is correct, and send to arduino, which then displays the item number and dispenses the item. It also displayed error codes like internet down, wrong pin or if the pin was already used.
Build picture gallery of the Vending Machine
The most satisfying part, the project ran all day long with 0 errors. There are lots of places where improvements can be made, but this was just a one time thing and also all the control system was built in about a weeks time, The motors were powered from 6vDC using LM317, since at a time only one motor was actuated the current requirements were not too demanding.