dhubler / bartend

Bartender app to make drinks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Raspberry Pi Bartender

Features

  • Follows selected recipe to automatically pour drink
  • Auto-generated REST API documentation
  • Access to pumps for priming, clearing pumps
  • Uses IETF management standards for YANG and RESTCONF using FreeCONF library
  • Open Source (MIT)
  • Single server for API, hardware access, business logic, and user interface
  • Approximately 800 lines of Go and 450 lines of html/css/JS
  • Unit tests
  • Mobile-first UI
  • Relatively inexpensive hardware
  • systemd script to start when Pi starts

Enclosure

Hardware

UI

Building

Dependencies

These dependencies need to be in your PATH:

Building

This will build everything, including binary for Pi and your current workstation so you can develop.

make pi

OS Support

This should work on all OSes. For Windows use WSL2 to build.

Hardware

  • Raspberry Pi Model 3/ 2GB or bigger SD card w/Raspian. Bartender application is around 8MB total size.
  • 12v power supply, 1.5 Amp or better for driving Pi and pumps.
  • Wiring
  • 1-8 peristalic pumps. Link
  • Hosing
  • Custom case
  • 12v to 5v converter (old cigarette lighter USB charger will work)

Running on local workstation

make run

Running on Pi

After the build, there will be a bartend.tgz. Copy that to Pi and untar in /opt. You can install the /opt/bartend/etc/service into systemd for starting service with Pi.

Limitations/Future

The pumps are very slow, a drink can take close to a minute to make. I experimented with other pumps but they do not self-prime. Ultimately I think a gravity-fed system might be a better design. Ideas welcomed.

You really shouldn't power-off Pi w/o shutting down gracefully or you risk corrupting SD card. Switch to read-only filesystem or add a powerdown button.

Background

This is a functional project, a hobby and an example application of FreeCONF libary.

Support/Questions

You can contact me if you have any comments for suggestions.

About

Bartender app to make drinks


Languages

Language:Go 58.2%Language:JavaScript 33.4%Language:Makefile 3.6%Language:Dockerfile 2.4%Language:HTML 2.4%