Hi,
in diesem Forum werden ja immer wieder mal Cocktail-Maschinen vorgestellt. Ich habe vor einiger Zeit auch eine gebaut und möchte euch diese natürlich nicht vorenthalten.
Benötigte Bauteile:
Eine Liste von Bauteilen, die benötigt werden (und weitere optionale Teile) findet ihr auf meiner Webseite: https://cocktailpi.org/building-instructions/
Das Projekt:
Da ich Student bin und in meiner Wohnung eher wenig Platz habe, habe ich beim Bau der Maschine viel Wert auf Platzsparsamkeit gelegt. Im hinteren Bereich befindet sich ein Hohlraum, in dem sich der Raspberry, das Netzteil und die Relais befinden. Die Motoren sind sichtbar an der Seite angebracht. Das hat den Vorteil, dass Zutaten schneller ausgewechselt werden können und die Reinigung und Wartbarkeit im Allgemeinen einfacher wird. Hinten kommen dann ein LAN-Kabel, sowie die beiden Stromversorgungskabel für Raspberry und Pumpen heraus.
Ich habe Peristaltikpumpen verwendet. Diese pumpen sehr gleichmäßig und sind hygienisch, aber leider auch relativ teuer. Der Raspberry steuert die Pumpen mithilfe des Relaisboards an. Der Stromkreis für jede Pumpe kann mithilfe eines dazugehörigen Relais geschlossen werden.
Über das Webinterface, welches die Software bereitstellt, können beliebig viele Pumpen hinzugefügt werden. Hierzu wird für jede Pump bestimmt, wie lange diese braucht um einen CL zu pumpen (in Millisekunden), wie viele ml in den Silikonschlauch passen (zum Anpumpen) und auf welcher GPIO-Pin der Relaisschalter zu der Pumpe liegt.
Neue Rezepte können im Webinterface angelegt werden. Zu jedem Rezept gehört ein Bild (nicht verpflichtend), eine Beschreibung, ein Name und natürlich Zutaten. Rezepte werden in Produktionsschritten abgearbeitet. Alle Zutaten in einem Produktionsschritt werden gleichzeitig in das Glas gefüllt. Dabei legen die Pumpen welche weniger lange laufen immer mal wieder Pausen ein, um das Verhältnis zwischen den Zutaten beizubehalten und die Zutaten so auch etwas zu mischen. Würden wir also z.B. das Rezept Vodka-O herstellen (25% Vodka, 75% Orangensaft) würde Pumpe 1 dauerhaft Orangensaft pumpen und Pumpe 2 würde alle 3 Sekunden eine Sekunde lang Vodka pumpen. Hierbei wird allerdings immer eine Mindestpause bzw. Mindestarbeitszeit eingehalten, um die Pumpen nicht zu stark zu belasten. Die Rheinfolge, in der Zutaten abgearbeitet werden und zu welchem Produktionsschritt eine Zutat gehört, wird per Drag & Drop festgelegt.
In der Weboberfläche kann eingespeichert werden, welche Zutaten man besitzt. In der Weboberfläche wird dann direkt in der Suche angezeigt, ob ein Cocktail sofort gemischt werden kann oder ob die Zutaten zwar vorhanden sind, aber nicht alle Zutaten auch an Pumpen angeschlossen sind, oder ob diese gar nicht gemischt werden können (z.B. weil Zutaten fehlen oder nicht genug Pumpen vorhanden sind).
Da manche Zutaten dickflüssiger sind als andere brauchen manche Zutaten länger um gepumpt zu werden. Ich hatte den Eindruck, dass die benötigte Zeit, welche eine Pumpe zum Pumpen einer dickflüssigen Zutat braucht, linear ist. Deshalb kann für dickflüssige Zutaten ein Multiplikator festgelegt werden, welcher die Pumpzeit für diese Zutat anpasst.
In der Suche können Rezepte, nach Zutaten, Namen, Machbarkeit mit vorhandenen Zutaten und sofortiger Machbarkeit gefiltert werden und nach Name, letzter Bearbeitung und Autor sortiert werden.
Das Webinterface erlauft es dem Admin auch weitere Benutzer anzulegen, welchen verschiedene Rechte zugewiesen werden können. Es gibt 4 Gruppen:
- Den normalen "User" (Kann nur öffentliche Rezepte einsehen und in Auftrag geben)
- Den "Recipe Creator" (Kann zusätzlich eigene private und öffentliche Rezepte erstellen)
- Den "Pump Ingredient Editor" (Kann zusätzlich die Zutatenbelegung auf den Pumpen ändern)
- Den "Admin" (Kann alles z.B. neue Pumpen und Zutaten definieren und Nutzer anlegen, sowie fremde Rezepte bearbeiten und andere Nutzer sperren)
Hier mal ein paar Bilder vom Webinterface:
Installation
Eine Installationsanleitung findet ihr hier: https://cocktailpi.org/install/
Die Anleitung mit docker, die hier in den Antworten zu finden ist, ist veraltet.
Das Projekt ist noch lange nicht abgeschlossen. Ich bin immer offen für Ideen. Z.B. fehlt mir noch das Dashboard. Der Rest ist aber so schonmal lauffähig.
Da die Weboberfläche mit Quasar (VueJS-Framefork) geschrieben wurde, ist eine Portierung als Web-App, iOS-App und Android-App problemlos möglich. Allerdings hab ich bis jetzt nicht gemacht, da die Anwendung im Browser genauso gut funktioniert und ich jetzt noch keine Vorteile finden konnte, die für eine App-Version des Webinterfaces sprechen würden.
Den Code im Allgemeinen: https://github.com/alex9849/CocktailPi
Die Projekt Website: https://cocktailpi.org/
Demo zum Ausprobieren:
Außerdem habe ich eine Demo-Installation, welche jeden Tag zurückgesetzt wird, auf der man das Webinterface ausprobieren kann: https://cocktailmaker-demo.liggesmeyer.net/
Die Demo-Installation kann auch benutzt werden, um die App zu testen. Um trolling zu verhindern, kann der Admin-User auf dieser Installation nicht bearbeitet oder gelöscht werden.
Login-Daten sind:
Url: https://demo.cocktailpi.org/
User: Admin
Passwort: 123456
Je nach Interesse, wäre ich bereit für interessierte einen Discord-Server zu erstellen, auf dem man sich austauschen kann.
Ps.: Wenn euch das Projekt gefällt würde ich mich darüber freuen, wenn ihr das Projekt auf Github "Stared"