Einleitung
Einkaufsliste
Mit dieser Liste lässt sich ein Komplettsystem mit drei Ausgabestandorten (Getränke, Küche, Weinbar) aufbauen
| Anzahl | Produkt | Ung. Preis |
|---|---|---|
| 2 | WLAN-Router | 50 € |
| 1 | Raspberry Pi 3b+ | 120 € |
| 1 | Raspberry Gehäuse groß | 6 € |
| 1 | Kühlerset | 10 € |
| 1 | SD Karte 32GB | 8 € |
| 1 | Netzteil 5V 3A | 10 € |
Erweiterungsoption A
| Anzahl | Produkt | Ung. Preis |
|---|---|---|
| 3 | Raspberry Pi Zero W | 150 € |
| 3 | Raspberry Gehäuse klein | 9 € |
| 3 | SD Karte 32GB | 24 € |
| 3 | Netzteil 5V 3A | 30 € |
| 3 | MicroUSB OTG Adapter | 30 € |
| 3 | Epson TM-20ii (mit USB) | 510 € |
Erweiterungsoption B
| Anzahl | Produkt | Ung. Preis |
|---|---|---|
| 3 | Munbyn Thermodrucker mit WiFi | 450 € |
Übersicht
Demo
Hier geht es zur Demoapplikation mit der sie die gesamte Funktionalität testen können.
Konfiguration
Disclaimer
Ich werde hier nur die grobe Installation anführen. Es sollte bereits ein grundlegendes Vorwissen bestehen in den Bereichen Router-Konfiguration, Raspberry, Linux, usw.
Da vor allem auch jeder Router anders ist kann ich hier keine genaue Anleitung zur Routerkonfiguration geben.
Konfiguration Router f. Service (=Hauptrouter)
Der Hauptrouter verbindet über LAN bzw. WLAN die Raspberrys. Er wird einmalig konfiguriert, die Konfiguration sollte danach fix bleiben.
Für die Ersteinrichtung sollte dieser Router mit dem Internet verbunden sein!
Die LAN-IP-Adresse des Routers sollte auf 192.168.177.1 gesetzt werden, der DHCP-Bereich dementsprechend auf 192.168.177.0/24.
Sobald die Raspberries konfiguriert und mit diesem Router per WLAN bzw. LAN verbunden sind sollte man direkt am Router fixe DHCP-Leases für die Geräte vergeben:
| Server-Raspberry LAN | 192.168.177.10 |
| Server-Raspberry WLAN | 192.168.177.15 |
| Raspberry Drucker Getränke WLAN | 192.168.177.20 |
| Raspberry Drucker Speisen WLAN | 192.168.177.30 |
| Raspberry Drucker Weinbar WLAN | 192.168.177.40 |
Die oben angeführten Adressen sind die Standardwerte der Applikation; verwendet man diese, erspart man sich nachträgliche Konfigurationsarbeit in der Applikation.
Konfiguration Router f. Kellner (=Hilfsrouter)
Die Aufgabe des Hilfsrouters ist es, die Handys/Clients/Kellner über WLAN mit dem Hauptrouter und damit mit den Raspberries zu verbinden. Dazu wird der Hilfsrouter mit Lan-Kabel über seinen Internet-Port mit einem LAN-Port des Hauptrouters verbunden. Über NAT erhalten dann die Clients Zugriff auf die Kellner-App.
Der Hilfsrouter kann jederzeit resettet werden um die SSID bzw. das Passwort bei jedem Fest neu zu setzen.
Bei größeren Anlagen können auf die gleiche Art weitere Router angeschlossen werden, um die WLAN-Netzabdeckung zu erhöhen.
Konfiguration Raspberry Pi
Im ersten Schritt wird ein Basis-Image vorbereitet, welches dann drei Mal kopiert wird. Diese drei Kopien sind dann fertige Images für die Raspberry Pi Zero W, an denen später die Thermodrucker angeschlossen werden. Notfalls kann auch direkt auf dem Server-Raspberry ein Thermodrucker angeschlossen werden und dieser zum Drucken verwendet werden.
- Für die Einrichtung basteln wir den Raspberry Pi 3b ins Gehäuse und verbinden diesen mit einem LAN-Kabel mit dem Hauptrouter.
- 'Raspberry Pi OS with desktop' runterladen und auf eine SD-Karte schreiben (zB mit dem Raspberry Pi Imager). Dabei über die erweiterten Einstellungen auch gleich die SSID und Passwort des Hauptrouter setzen, SSH aktivieren und Logindaten setzen
- SD-Karte in den Raspy einlegen und booten. Der Raspy sollte nun über LAN und WLAN mit dem Router verbunden sein. Die IP-Adressen findet man über die Client-Liste des Routers
- Wenn man schon im Webinterface des Routers ist kann man gleich die fixen DHCP-Leases eintragen
- Wenn keine WLAN-Verbindung zustande kommt kann man sobald VNC aktiviert ist die WLAN-Settings nochmals prüfen
- mit SSH verbinden und
sudo raspi-configausführen um VNC zu aktiveren. VNC wird später für das Klonen der SD-Karte benötigt. Zusätzlich sollte man noch die Lokalisierung aufde_at_utf8setzen sudo apt updateundsudo apt upgradeausführen um das System auf den aktuellen Softwarestand zu bringen (optional)sudo apt install default-jdkausführen um die Standard Java-Umgebung zu installierensudo mkdir /home/Kellnerlegt das Arbeitsverzeichnis an, dieses braucht noch die richtigen Rechtesudo chmod 777 /home/Kellnersetzt Schreibrechte für alle- mit WinSCP kopiert man nun die Datei 'RemotePrinter.jar' in das erstellte Kellner-Verzeichnis
- jetzt noch mit
sudo nano /etc/rc.localdas Startupscript öffnen und noch vor demexit 0folgende Zeile reinschreibenjava -jar /home/Kellner/RemotePrinter.jar & - Den Raspy neu starten. Zum Testen ob die Drucker-App funktioniert kann man einen Thermodrucker anstecken, es sollte nach kurzer Zeit ein Testdruck rauskommen
- Bevor man im nächsten Schritt mit dem Klonen der SD-Karte beginnt, nochmals prüfen ob auch wirklich eine WLAN-Verbindung hergestellt ist
- Nur bei Erweiterungsoption A: Wenn der Test OK war kann man nun über VNC mit dem Tool 'SD Card Copier' drei Kopien des Systems anfertigen. Diese SD-Karten kommen in die Pi Zero
Im nächsten Schritt wird noch die eigentliche Webapplikation installiert:
- mit
sudo apt install tomcat8wird der Webserver installiert - mit
sudo nano /etc/tomcat8/server.xmlöffnet man die Konfigurationsdatei und tauscht dort Port 8080 durch 80 aus:...Connector port="8080"...wird zu...Connector port="80"... - mit WinSCP kopiert man nun die Datei 'Kellner.war' ins Verzeichnis /home/pi
- mit
sudo mv /home/pi/Kellner.war /var/lib/tomcat8/webappswird die gerade hoichgeladene Datei ins web-Verzeichnis des Webservers verschoben - Der Webserver benötigt noch bestimmte root-Rechte um die Uhrzeit auf dem System ändern zu können
sudo visudoeingeben und in der Datei dann unter dem Punkt# User privilege specificationfolgende Zeile eintragentomcat8 ALL=NOPASSWD: /usr/bin/date- mit
sudo nano /lib/systemd/system/tomcat8.serviceöffnet man die Dienst-Konfiguration des Webservers und setzt den Parameter NoNewPrivileges auf false:NoNewPrivileges=truewird zuNoNewPrivileges=false
- Nun kann man mit
rebootdas System neu starten. Danach sollte die Applikation unterhttp://192.168.177.10/Kellnererreichbar sein
Anleitung
Login
Die Applikation hat grundsätzlich keine Benutzerverwaltung. Der Zugriff wird lediglich über die WLAN-Zugangsdaten gesteuert. Jeder Benutzername ist korrekt. Um Zugang zur Konfiguration zu erhalten setzt man das Häkchen bei Administration.
Die Screensize sollte bei Handys auf 360 belassen werden. Bei Tablets kann man diese höher stellen.
Kellner
Der Kellner beginnt mit der Tischauswahl. Es sind von Haus aus 100 Tische (von 0 bis 99) angelegt. Danach gehts zur Produktauswahl. Der Tisch kann auch hier noch nachträglich geändert werden. Die Produkte sind in drei Kategorien aufgeteilt: Getränke, Speisen und Weinbar. Der Kellner klickt sich durch die Auswahl bis zur Schaltfläche 'hinzufügen'.
Sobald ein Produkt zur Bestellliste hinzugefügt wurde kann direkt auf der Übersicht die Anzahl angepasst werden.
Mit 'Bestellung senden' wird die Bestellung zu den entsprechenden Druckern gesendet und der Kellner kommt zum Abrechnungsmaske. Hier werden die abzurechnenden Positionen von der oberen Liste in die untere Liste geschoben. Es erscheint der zu zahlende Betrag. Diesen kann man 'abrechnen', 'anschreiben' oder 'offen' lassen. Eine neue Bestellung kann erst begonnen werden wenn alle Position ereldigt wurden.
Konfiguration
Die wichtigste Konfiguration is die Eingabe der Produktliste. Hier ein Beispiel für eine klassische einfache Getränkekonfiguration:
Cola#klein#200
Cola#klein gespritzt#200
Cola#groß#380
Cola#groß gespritzt#380
Mit dem #-Zeichen werden die einzelnen Auswahlebenen unterteilt. Die letzte Ebene ist immer der Preis in Cent. Die Anzahl der Ebenen ist nicht limitiert und muss auch nicht einheitlich sein.
Die erste Ebene wird auf dem Bon immer groß angeschrieben, die weiteren Ebenen kleiner. Der Kellner würde in der App zuerst den Punkt 'Cola' auswählen und hätte dann die Möglichkeit aus den 4 Unterebenen zu wählen.
Die Produkte können im laufenden Betrieb angepasst werden.
Die restliche Konfiguration ist selbsterklärend.
Demo
Hier geht es zur Demoapplikation mit der sie die gesamte Funktionalität testen können.
F.A.Q
Frequently Asked Questions
Testimonials
What they are saying about us
Team
Our hard working team
Wolfgang Buczolich
Chief Executive Officerund Senior Software Developer in Einem