Our coffee machines use mqtt to allow you to order a drink without touching the machine. Scan a qr code, open the machine specific site (example: https://touchless.coffee/order/PenmVKV7yNcTs) and order or customize your drink. Press order and it’s dispensed in your cup.
On each machine a c++ client runs which connects to an mqtt server, uses a custom binary protocol over mqtt (for bandwidth efficiency, we were given a quota of 7mb per month of data) that describes the coffee machine including customizations and some code for security.
Due to covid we implementated this and it’s really cool to do. Both the server setup (involved bridging) and the c++ code. How do you handle reconnects, protocol design, live feedback (what I’d you didn’t place a cup?) etc. Without mqtt we couldn’t have done it.
The users often tell me that they are surprised how fast the response is. Because of mqtt!
That is so cool. What’s the throughput? Like if you had to measure in Cups Per Hour (CPS)?
Well a consumptions time differs greatly depending on how it’s configured. An instant coffee (like powder and water) can be in your cup in about 8 seconds, but an espresso with freshly ground beans through our latest brewer can take up to a minute. We also have an actual filter paper brewer which is around 50 seconds, and if you add (fresh) milk (latte, cappuccino etc) it will take longer. All depends on software configuration of recipes and the coffee hardware.
The mqtt part is like under a second. We have machines with a 2g dongle where we measured it to be at max 3 seconds, from pressing start on the webpage to the machine receiving the order and start dispensing.
MQTT is not only for IoT. Some cloud apps use it for communication (Facebook Messanger)
Absolutely correct! I didn’t want to give the impression that MQTT was only for IOT. Instead, I wanted to show how it can be used by using IOT as an example :)
Wikipedia explains that MQTT was originally built to monitor oil pipelines!