← Zur Übersicht

🛠️ Entwicklung & Aufbau

Wie die Steuerung der Cocktailmaschine aufgebaut ist.

Die Firmware läuft auf einem ESP32 und ist in Rust geschrieben. Sie macht zwei Dinge zugleich: Weboberfläche ausliefern und Schrittmotoren takten. Jede Aufgabe hat ihren eigenen Prozessorkern.

Architektur auf einen Blick

📱 Browser Handy / Tablet / PC WLAN (HTTP) ESP32 Kern 0 WLAN + Webserver liefert die Web-App aus, nimmt HTTP-Befehle entgegen Kern 1 Motorsteuerung erzeugt die Schritt-Impulse, Sicherheitslogik, Pumpe Befehle ▸ ◂ Status

Die Motoren laufen so gleichmäßig, auch wenn gerade jemand die Weboberfläche lädt.

Wie die Kerne reden

Die Weboberfläche

Die Oberfläche ist eine einzige HTML-Datei und fest in die Firmware eingebaut. Sie spricht eine kleine HTTP-Schnittstelle an, zum Beispiel:

GET /status GET /dispense?drink=N GET /home GET /moveto GET /estop POST /api/settings POST /api/drinks POST /script

Konfiguration & Speicherung

Positionen, Zeiten und Getränke liegen als JSON im Flash des ESP32 und überstehen jeden Neustart. Neue Werte werden vor dem Speichern auf sichere Grenzen gekürzt.

Vom Rezept zur Bewegung

Ein Getränk ist eine Liste „Slot × Portionen“. Daraus erzeugt die Firmware eine Befehlsfolge für beide Achsen:

(falls nötig) Z referenzieren → X referenzieren →
für jede Zutat: X zum Slot → Sync → pro Portion: Z hoch, halten, kurzer Rückhub (bzw. Pumpe an) → Sync →
am Ende: Z herunter → Referenzfahrt → (optional Ausgabeposition).

An den Sync-Punkten warten die Achsen aufeinander. So wird nie dosiert, während der Schlitten fährt.

Eingebaute Sicherheit

Technik-Stack

Rust (Edition 2021) ESP-IDF (std) esp-idf-svc embedded-svc serde / serde_json anyhow HTML / CSS / Vanilla-JS

Projektstruktur

DateiAufgabe
src/main.rsStart, WLAN, Webserver, Pins
src/servo.rsMotorsteuerung, Sicherheit, Pumpe
src/settings.rsEinstellungen und Rezept → Befehlsfolge
src/config.rsGrenzen für Wege, Tempo und Rezepte
src/servo-control-migrated.htmlDie Weboberfläche
Die Cocktailmaschine ist ein Hobby-Projekt und wird ohne Gewährleistung bereitgestellt.
Zur Startseite · Impressum · Datenschutz