Projekt · ESP32 & Rust

Cocktailmaschine

Eine offene, selbstgebaute Cocktailmaschine – gesteuert von einem ESP32, programmiert in Rust, bedient über eine Weboberfläche direkt vom Gerät. Kein Server nötig: ins WLAN, Adresse öffnen, Getränk antippen.

Worum es geht

Die Cocktailmaschine bewegt mit zwei Schrittmotoren einen Schlitten (X-Achse) mit dem Glas unter einen von sechs Getränke-Slots. Dort löst die Z-Achse einen Mechanismus aus, der eine Portion abgibt – ein Slot kann auch eine Pumpe sein. Bedient wird alles über eine Webseite, die der ESP32 selbst ausliefert: einfach mit Handy, Tablet oder PC ins WLAN, Adresse öffnen, Getränk antippen. Kein zusätzlicher Server, keine Installation nötig.

Inzwischen gibt es zusätzlich eine Android-App in Kotlin. Sie sucht die Maschine beim Start selbst: erst die zuletzt genutzte Adresse, den Hostnamen und das Notfall-WLAN, danach das ganze Subnetz. Erkannt wird die Maschine an ihrer Antwort auf die Konfigurationsabfrage. Die App spricht dieselbe Schnittstelle wie die Weboberfläche, die Firmware musste dafür nicht angefasst werden. Sie ist eine Bequemlichkeit, keine Voraussetzung.

Getränke-Auswahl der Weboberfläche der Cocktailmaschine

Die Maschine ausprobieren

Eine Nachbildung der echten Steuerung: Der Schlitten fährt auf der X-Achse unter den gewählten Slot, die Z-Achse drückt gegen den Release-Mechanismus – pro Hub etwa 20 ml. Am Ende folgt die Referenzfahrt zum Nullpunkt, dort entnimmst du das Glas. Slot 6 ist als Pumpe ausgeführt und läuft zeitgesteuert.

ESP32 · Cocktailmaschine bereit
X-Achse0 mm
Z-Achseoben
Slot
im Glas0 ml
Bereit. Die Maschine ist referenziert.
Die Wege und Zeiten sind maßstäblich zur echten Maschine – nur schneller, damit du nicht warten musst.

Was die Maschine kann

Bedienung im Browser

Große Getränke-Kacheln, ideal für ein Tablet als fest verbautes Panel. Antippen genügt.

Einlernen per Klick

Slot-Positionen, Z-Höhe und Ausgabeposition werden von Hand angefahren und übernommen – kein Nachrechnen.

Rezepte & Pumpe

Getränke als „Slot × Portionen". Ein Slot kann eine Pumpe mit eigener Z-Position sein.

Sicherheit zuerst

NOT-AUS, Software-Endlagen, Tempo-Limits, Homing-Abbruch und begrenzte Warteschlangen.

Router oder Standalone

Ins Heim-WLAN einbinden – oder die Maschine spannt ihr eigenes WLAN auf, ganz ohne Router.

Gäste-Modus

Gäste sehen nur die Getränke und den NOT-AUS. Die Verwaltung liegt hinter einem Passwort.

Ein Blick in die Oberfläche

Einrichtungs-Ansicht

Im geschützten Bereich lernst du alles ein: die sechs Slots, die Z-Release-Höhe, Geschwindigkeiten und Dosierzeiten – und legst deine Getränke mit Icon und Rezept an.

Alles wird dauerhaft auf dem ESP32 gespeichert (NVS-Flash) und übersteht Stromausfall und Neustart. Jedes Gerät im WLAN sieht dieselbe Konfiguration.

Die Oberfläche ist responsiv und funktioniert genauso gut auf dem Handy. Der NOT-AUS ist immer erreichbar, ebenso das Referenzieren – auch für Gäste, ohne Passwort.

Beim ersten Start liegen ein paar Beispiel-Getränke als Vorschlag bereit, damit man sofort sieht, wie Rezepte aussehen.

Mobile Ansicht

Loslegen

Du brauchst einen ESP32, die Mechanik (zwei Achsen mit Schrittmotoren und Endschaltern) und die Rust-ESP-Toolchain. Dann:

  • WLAN eintragen: .cargo/config.toml.example nach .cargo/config.toml kopieren und ausfüllen.
  • Firmware bauen und flashen: cargo run --release
  • Oberfläche öffnen unter http://cockimate/ bzw. im Standalone-Modus http://192.168.71.1/
Die vollständige Anleitung (Verkabelung, Pins, API, FAQ) findest du im Handbuch und in der beiliegenden DOKUMENTATION.md. Wie das Programm aufgebaut ist, steht unter Entwicklung & Aufbau.

Fragen zu diesem Projekt?

Wie etwas gebaut ist, warum es so gebaut ist, ob es sich auf einen anderen Fall übertragen lässt – schreib einfach. Die Nachricht geht als E-Mail an mich, sonst passiert damit nichts.

Rechenaufgabe Rechenaufgabe als Bild

Kein Google-Captcha, keine Weitergabe an Dritte, keine Cookies. Die Rechenaufgabe wird von diesem Server gezeichnet und geprüft. Wenn sie nicht lesbar ist oder das Formular klemmt: info@timobritz.de geht genauso.