picposter Und kopier dir nochmal die docker-compose.yml aus meinem Beitrag. Hab da eine Kleinigkeit abgeändert.
Posts by alex9849
-
-
Der Ordner ist eigentlich egal. Das kann auch gerne ein Benutzer-Ordner sein. Wichtig ist, dass ihr den 'docker-compose up -d' in den selben Ordner ausführt, in dem auch eure docker-compose.yml liegt. Ich hab leider meinen Pi leider gerade nicht hier, weshalb ich auch die Anleitung auch nur aus dem Kopf geschrieben habe. Wenn ihr aber nichts dagegen habt kann sich aber gerne einer von euch mit mir in Verbindung setzen und ich setze das zusammen mit euch auf. Dann kann ich die Schritte in der Anleitung auch überarbeiten, die eventuell falsch oder zu ungenau sind.
In der Datenbank speichert das Webinterface alle Daten. Also ja die ist wichtig. Die wird aber, wenn ihr die docker-compose.yml verwendet automatisch mit aufgesetzt.
-
Hallo Alex,
vielen Dank schonmal für die Anleitung!
Ich habe das ganze abgearbeitet bis einschließlich zum Punkt mit der Datei "docker-compose.yml" erstellen im root verzeichnis. Das Betriebssystem ist Raspberry Pi Os. Docker Version 20.10.6
Bei eingabe von docker-compose up -d (bzw sudo docker-compose up -d) ins Terminal bekomme ich aber den Fehler docker: 'compose' is not a docker command.
Laut Docker Dokumentation gibts den Befehl aber (ohne Bindestrich) . Jedoch bei Aufruf der Hilfe von Docker im Terminal steht dieser Befehl nicht dabei.
Hättest du hier vielleicht einen Tipp wo genau ich zu blöd bin deinen befehl einzugeben?
grüße Cedric
Nein. Das liegt wahrscheinlich eher daran, dass docker-compose bei dir noch nicht installiert ist. Ich hatte irgendwie in Erinnerung, dass docker-compose automatisch zusammen mit Docker installiert wird. Da habe ich mich wohl geirrt. Ich hab die Anleitung oben etwas abgeändert (nur 2 Befehle hinzugefügt).
Die Befehle kannst du einfach ausführen.
-
Ahh verstehe. Momentan wird so eine Sperre nicht unterstützt. Aber die kann man relativ einfach einbauen. Wenn dann würde ich die aber so realisieren, dass man es bestimmten Benutzern einfach nicht erlaubt Cocktails mit Alkohol anzufordern, bzw. es verbietet neue Rezepte mit alkoholischen Zutaten zu erstellen.
-
Hallo,
erstmal super Projekt alles was angegangen wird ist ja immer willkommen. Natürlich gibt es diverse CockTail Mixer Station im Web zum nachbau.
Wie ermöglichst du den zugriff auf alkoholischen Getränke? Diese müssen ja immer gesperrt sein.
danke lars
Ich verstehe jetzt ehrlich gesagt nicht ganz genau was du meinst?
-
Oha die Maschine sieht wirklich beeindruckend aus und das mit dem Carbonator ist auch ne gute Idee
Dann hoffe ich mal, dass die kleine Anleitung die ich oben geschrieben habe, dir beim Aufsetzen des Systems hilft. Was den Sirup angeht, hast du recht. Der muss tatsächlich an einer Pumpe angeschlossen sein, damit die Software den Cocktail freigibt. Was man aber machen könnte, wäre tatsächlich manuelle Produktionsschritte einzuführen. Diese könnten dann natürlich nicht zusammen mit automatischen Anweisungen abgearbeitet werden, aber grundsätzlich sollte sowas möglich sein.Die manuellen Schritte könnte man auch noch unterscheiden. Man könnte z.B. Schritte einführen, die komplett vom Autor beschrieben wären. Beispielsweise:
- Bei einem Mojito: Bitte Minze an der Limettenschale zerreiben
- oder: Bitte nun Cocktail im Shaker schütteln (nicht rühren
)
Ansonsten könnte man auch berechnete manuelle Anweisungen einbauen, bei denen dann die Menge berechnet wird.
Im Beispiel Mojito könnte das sowas sein wie: 10g braunen Zucker hinzugeben.
Allerdings müsste man sich dann entscheiden, ob man eine Zutat immer manuell hinzufügen möchte oder nicht. Eventuell kann man aber auch das irgendwie dynamisch machen.
-
Hi.
Freut mich, dass du das Projekt nachbauen willst!
Zuallererst benötigst du ein Betriebssystem für deinen Raspberry. Ich hab das ganze mit RaspberryPi OS gemacht, was ich dir auch empfehlen würde.
Hier der Link zu einem Programm, welches dir deine SD-Karse mit RaspberryPi OS flasht: https://downloads.raspberrypi.org/imager/imager_latest.exe
Hier mal ein Zitat aus der Docker Dokumentation mit den Linux-Systemen, welche Docker unterstützen:
QuoteTo install Docker Engine, you need the 64-bit version of one of these Debian or Raspbian versions:
- Debian Bullseye 11 (testing)
- Debian Buster 10 (stable)
- Raspbian Bullseye 11 (testing)
- Raspbian Buster 10 (stable)
Docker Engine is supported on
x86_64
(oramd64
),armhf
, andarm64
architectures.Sobald du Raspbian installierst hast, verbindest du diesen mit dem Internet, logst du dich als root-Benutzer auf diesem ein und führst folgende Befehle aus:
Codeapt update && apt -y upgrade curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh apt install python3-pip -y sudo pip3 install docker-compose
Das war auch schon die Installation von Docker. Jetzt fehlt noch das eigentliche Webinterface. Hierfür erstellst du eine Datei namens docker-compose.yml im /root-Order (oder einen anderen Ordner deiner Wahl) und fügst folgenden Inhalt in diese ein:
Code
Display Moreversion: '3.3' services: app: container_name: Cocktailmaker restart: always privileged: true image: alex9849/pi-cocktailmaker:latest-pi depends_on: - db ports: - 8080:8080 environment: DB_HOST: 'db' DB_PORT: 5432 DB_DATABASE: 'cocktailmaker' DB_USER: 'postgres' DB_PASSWORD: 'Chang3M3OnPr0duct1on' JWT_SECRET: 'SecretSecretKey8375324' db: image: postgres:latest restart: always environment: POSTGRES_PASSWORD: 'Chang3M3OnPr0duct1on' POSTGRES_DB: 'cocktailmaker' volumes: - type: volume source: cocktail-db-data target: /var/lib/postgresql/data volume: nocopy: true volumes: cocktail-db-data:
Anschließend kannst du in dem Verzeichnis, in dem du die Datei angelegt hast den Befehl 'docker-compose up -d' ausführen. Docker downloaded dann die images und startet anschließend das Programm. Jetzt solltest du das Webinterface innerhalb deines Netzwerkes unter der IP deines Raspberrys und dem Port 8080 aufrufen können. (Beispiel http://192.168.1.102:8080)
Die Standard-Login-Daten sind: User: admin Password: 123456
Ps. wenn du deinen Raspberry neu startest, startet das Webinterface automatisch.
Solltest du weitere Fragen haben frag ruhig.
Ggf. kann ich dir auch live helfen die Software einzurichten.
Viel Spaß
-
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://alexander.liggesmeyer.net/portfolio/cocktailmaker/
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://alexander.liggesmeyer.…lio/cocktailmaker/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/pi-cocktail-maker
Das Projekt auf meiner Webseite: https://alexander.liggesmeyer.net/portfolio/cocktailmaker/
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://cocktailmaker-demo.liggesmeyer.net/
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"