Mobilizing the Internet of Things (IoT) Part 3 -- Drinkro the Synchro Bartender

20 July 2016

After the explorations with Raspberry Pi, we put together a more substantial end-to-end solution to demonstrate the power of Synchro as a controller and interface combined with a custom hardware IoT solution.

Behold, Drinkro, the Synchro Bartender.

Here it is in action.

Hardware

Drinkro is based on a Raspberry Pi 3 Model B and a custom-designed hardware board used to control four DC liquid peristaltic pump motors using two L293D dual H-bridge ICs.

The additional hardware board is required due to the high power nature of the motors. Each motor requires 12VDC and 300mA when operating. This exceeds the output capabilities of the Raspberry Pi, so additional hardware is required to provide an interface for a larger power supply and switching circuits for the motors. This was prototyped using a solderless breadboard, and then formalized as a circuit board using EAGLE for the design and OSH Park to produce the raw PCB. The final assembly was done in-house. The Drinkro hardware schematic and board layout is available on GitHub.

Software

The principles of operation are fairly simple. Four GPIOs on the Raspberry Pi control separate pumps. Based on the desired amount of each ingredient, the pump is run for the appropriate amount of time by turning the GPIOs on and off. In our previous blog entry, controlling GPIOs through Synchro on a Raspberry Pi is not particularly difficult.

The logic of the system is embodied in the Synchro software used to control the pumps. Implemented in the Synchro app is a recipe database, a UI for selecting a drink, a queueing system to handle multiple drink orders, a notification system for when your drink is about to be poured, and finally a pouring system that handles the actual motor control required to pour a drink. The source code is available on GitHub.

The screenshots I will share here are on iOS -- as a Synchro App of course this will run on all of the supported Synchro platforms.

The flow through the application is basically:

The main landing screen:

Drink selection. The "Your Drink" control lets you pick from the internal drink list.

If you pick "Mix Your Own..." you can choose the ratio of the ingredients and make your own custom drink.

After you pick your drink, you will be put at the end of the line if there are other drinks in front of you. When it's your turn, you get a chance to customize and then start pouring. If you don't start pouring before the expiration countdown time at the top of the page, your drink will be cancelled.

Then start drinking!

Synchro + IoT Custom Hardware 4EVA

This is a great example of the partnership that can be achieved with Synchro and custom hardware solutions. User interfaces to your custom hardware that would ordinarily require significant programming experience in multiple languages and application deployment headaches is reduced to a single multi-user Synchro app, easily maintained through the Synchro Studio editing interface.