Connected Drinks Dispenser

Cashless Operation and Smart Replenishment

The connected drinks dispenser gives an example of a concrete, simple Internet of Things (IoT) application.

Adds value for both customers and suppliers by updating an everyday process - buying a drink from a vending machine - and providing the basis for a wide range of powerful new features.

A customer Web interface is accessed via QR code.

Not an actual link to the UI

The inferface displays the current fill levels of the dispenser and is used to trigger a purchase or request of a drink.

Customer Benefits

The supplier interface shows more detailed machine state, the purchase history, and an estimated time for a necessary refill.

Supplier Benefits

How Does It Work?

The dispenser, customer frontend, supplier frontend and the coordinating backend are connected via and the WAMP protocol.

The drink dispenser is a neat machine from GastroCool which stores 96 drinks cans in a small volume and can be refilled very quickly.

We've added a locking mechanism and sensors for the addition and dispensing of cans.

Our additions are controlled via a Rasperry Pi, using our IoT Starter Kit.

The version shown is for display and the electronics can easily be scaled down to fit within the dispenser itself.

The Rasperry Pi runs the control logic for the dispenser itself. It offers procedures for requesting the dispensation of a can, getting general machine info and the current fill levels. It also publishes dispensing and refilling events to interested (and authorized) subscribers. It is written in Python and uses Autobahn|Python, our WAMP client library for Python.

The backend runs on Node.js. The frontends run in the browser. Both the backend and the browser clients user Autobahn|JS, our JavaScript WAMP client library.

All components connect to The outgoing connections are possible from anywhere with Web access, so there are no problems with NATs and there is no necessity to have open ports e.g. on the dispenser.

The components communicate using the two communication patterns which WAMP provides. As examples: provides the routing logic, authentication and authorization mechanisms and also includes a static Web server which can serve the browser frontends. It is run by the supplier, with full flexibility regarding deployment (cloud, own hardware) and with full control over the data. is commercial open source software and the WAMP protocol is open with a growing ecosystem of implementations. The Autobahn libraries are open source and under a liberal license, as are many third-party libraries for a total of 13 supported languages.

It's a demo

For the demo a cookie is set in the user's browser which is used for determining the number of remaining free drinks.

For offices, workshops or conferences, with limited customer groups, custom QR codes for each customer can be used to track the number of dispensed drinks. These contain login information which authenticates the customer for an individual account.

For deployments in public places, a cashless payment solution needs to be used. Integration of a NFC reader for current contactless payment methods is easily possible.

This is just a basic demo and proof-of-concept and easily extensible. A few examples:

More Images

More images of the dispenser can be found in this gallery

Contact Us

If you're interested in more information, then contact us.

If you're in Southern Germany and would like to offer a temporary home for the dispenser (e.g. at a FabLab, coworking space, company canteen, trade show) then tell us!

Community Support Forums