It seems that one of my new year´s intentions comes true: I want to build a ubiquitous computing sample each month (in average). And last Friday we managed to connect a vending machine to our voice control system Tropo to get it´s state via phone and to buy something via voice or DTMF.
Thanks to our M2M partner Cumulocity that was all in all damn easy: They have a sensor cloud including real time administration tools which you can access through the Developer Garden for free. Furthermore Cumulocity, a Nokia Siemens Networks spin off, has a cloud based vending machine telemetry solution (aka VendMe) in its portfolio. So we only had to plug the bricks together.
In this rough video Frank Zimmer and I try out our proof of concept to make sure it will work at the Embedded World fair: Feel free to meet us and the phone controlled vending machine at booth 5-307.
In detail: For our proof of concept we created a PHP application which connects to the API of the Vending Machine via REST with JSON and uses Tropo´s capabilities handling voice calls to tell the user via text-to-speech what´s going on. Once the user has selected a slot (either via phone or keypad) the machine gets the information through the air, the payment is transferred and a confirmation is send back to the user – in this case we again use Tropo to send a text message. As usual the best thing comes at the end: Grab the gummy bears and enjoy!
I recently had a DiY workshop together with my Developer Garden colleague and firefighter Frank Zimmer and the great guys from Oracle. Oracle is working on M2M devices – obviously based on Java. After some Java experiments with a Cinterion driven embedded device this was my first time playing with the famous Raspberry PI and Java. Raspberry PI is a very small Linux PC similar in size to embedded boards like Arduino or .Net Gadgeteer. Our approach was controlling a coffee machine with a phone to serve George Clooney a coffee (sorry, in this case I was George Clooney´s lame replacement, but the Nespresso is real).
We hacked a Nespresso coffee machine, connected it to a Raspberry Pi and controlled it via phone. Please note, the video is just a rough cut to illustrate our proof of concept.
First of all we start the machine and need to wait until the machine is ready. But you can spend your time for so many things better than waiting: say writing Java. So we hacked the machine and connected it to the Raspberry PI running a small Java program. This program initiates a phone call via the Telekom Tropo API once the coffee machine is heated up. Now we need the way back from the phone to the Raspberry PI to finally start the coffee making. This is handled by Telekom Tropo which translates a phone call into a parameterized request which than writes a token. This token is handled by the Raspberry PI to start or stop the coffee making process.
I hope I can convince my friends from Oracle to publish the hardware specs and the Java code. And if you want to learn more about M2M and IVR-Systems (interactive voice response), feel free to come to our TechTalk at the 13th of December in Berlin.