Skip to content
Version 1 der Oberfläche des iTenders

iTender – der Cocktail-Mischer

Willkommen zum etwas größeren Thread vom iTender.
Eine intelligente Cocktail-Misch-Maschine.

Der iTender ist ein Projekt welches ich sehr lange im Sinn hatte und schlussendlich in meiner Zeit am CRBK umsetzen konnte.
In Fachpraxis haben wir uns entschieden diesen als Abschluss-Projekt umzusetzen.
Anfangs noch ein kleines Projekt, wurde der iTender durch meine kleinen spielereien immer größer und später etwas zu viel für ein normales Schulprojekt.

Der iTender ist bereits in seiner ersten Version fertiggestellt und ebenfalls als PDF-Dokumentation verfügbar.
Wer sich gerne direkt die Dokumentation ansehen möchte, kann hier entlang.

 

Grundidee

Fangen wir zunächst mit der Grundidee an:

  • Cocktail-Mischer welcher 3 Drinks gespeichert hat, die über Tasten angewählt werden können
  • Danach kann über ein Potentiometer die Füllmenge eingestellt werden
  • Schlussendlich werden die Zutaten ausgegeben und der Drink ist bereitgestellt

Das ganze ist etwas ausgeartet, wie ich nun mal erläutern werde.

iTender Umsetzung

Wir haben nun nicht mehr Tasten zur Auswahl, sondern ein komplettes HD Touch-Display verbaut, um die Drinks und Glasart auszuwählen.
Der iTender weiß durch die eingestellten Zutaten immer genau welche Drinks er mischen kann. Dadurch stellt der das Angebot zusammen.

Durch Wägezellen, sowie durch das speichern der ausgegebenen Getränke, kann der iTender die Füllstände der einzelnen Behälter (Zutaten) errechnen und bei niedrigem Füllstand eine E-Mail senden.
Durch diese Erkennung werden auch bestimmte Drinks deaktiviert, falls der Füllstand zu gering sein sollte, oder der Behälter entfernt wird. Somit werden für den Endbenutzer nur die Getränke angezeigt, die auch wirklich mischbar sind.

Über die Menü-Taste gelangt man ins Hauptmenü. Von dort aus lassen sich das Setup, die Einstellungen, Behälter-Einstellungen, sowie einige Statistiken abrufen.

Im Setup ist es möglich die Pumpen-Menge, sowie die jeweiligen Ports der Pumpen (GPIO) und zugehörigen Wägezellen einzustellen.
Für die GPIO-Ports lassen sich auch alternativ die Arduino-Proxy Ports nutzen, auf welche ich noch eingehen werde.
Hier ist außerdem möglich ein WLAN-Netzwerk hinzuzufügen, Arduino-Proxy zu aktivieren, oder die Ports für die LED-Beleuchtung einzustellen. Das WLAN nutzt der iTender für die mobile Oberfläche, welche am Handy oder Tablet aufrufbar ist, sowie Updates.

Im Behälter Menü lässt sich pro Behälter eine Zutat sowie die Mege der Zutat einstellen. In den normalen Einstellungen sind die Aktionen wie Herunterfahren, Software-Update, Neustart und Datenbank aktualisiere sowie Datenbank löschen verbaut.

Der iTender verfügt über eine im öffentlichen Netzwerk zugängliche Datenbank, welche unter https://itender.iif.li/ abrufbar ist.
Dort holt der iTender die Fotos für die Drinks, die Namen sowie die Zutaten automatisch ab und aktualisiert gfs. seine lokale Datenbank.
Somit ist der iTender auch offline voll funktionsfähig, was mir beim Bau sehr wichtig war.

Das Software-Update braucht ebenfalls eine Internet-Anbindung. Von dort aus wird die neue Software über ein privates Git-Repository bezogen und direkt installiert. Anschließend startet der iTender seine Oberfläche und gfs. sein Backend neu.
Soweit so gut, der iTender ist etwas explodiert, was seinen Funktionsumfang angeht. Er kann also nun Getränke mischen, Füllstände berechnen, hat eine WLAN-Anbindung für die Oberfläche am Handy und sogar Software-Updates.

 

Teil für Nerds

Kommen wir nun zum etwas technischeren Teil.
Das ganze basiert auf der Hardware eines Raspberry Pi’s, sowie mehreren Peristaltikpumpen, dem originalen RaspberryPi LCD HD Display und einem Broadboard.

Der iTender ist in TypeScript (NodeJS) geschrieben. Er ist in Backend und Frontend geteilt, wobei das Frontend nochmal in Webserver und Webseite bzw. Browser unterteilt ist.
Der RaspberryPi startet einen Kiosk-Mode in welchem er die Webseite des iTenders aufruft. Der Webserver ist in TypeScript mit express gebaut.

Die Seite ist eigentlich sehr statisch, der Austausch mit dem Dienst verläuft komplett über einen WebSocket, welcher Daten schnell und sicher übertragen kann.

Beim Ausgeben eines Getränks wird der Befehl vom Webinterface an das Backend gegeben. Der iTender schaltet dann die Pumpen für eine berechnete Zeit an und wieder aus. Da alle Pumpen gleichzeitig gestartet werden, werden die Zutaten direkt miteinander vermischt und die ausgabe Zeit reduziert sich.

Wer sich genauer in die Thematik der Entwicklung des iTenders hereinlesen möchte, kann gerne hier nachsehen.
Es gibt auch eine komplette Dokumentation, wie oben erwähnt. Wer sich alles genauer ansehen möchte, kann hier reinschauen.

Avatar

Hey! - Ich bin Tobias Hopp, 20 Jahre alt und entwickele in meiner Freizeit gerne das ein oder andere Projekt.
Git: https://git.gaminggeneration.de/TobiasH

Sidebar