itender/doc/Notes.md
2023-01-28 16:19:25 +01:00

69 lines
2.9 KiB
Markdown

# ### Achtung! \###
Diese Datei ist nicht mehr aktuell.<br>
Bitte nutze die neue Wiki unter [https://git.gaminggeneration.de/tobiash/itender/wiki](https://git.gaminggeneration.de/tobiash/itender/wiki) (Wiki des iTender Projekts)
<br><br><br><br><br><br><hr><br><br><br><br><br>
# Notes und kleine Dokumentation
Was haben wir bereits am iTender Projekt gemacht?
<hr>
## Konzept-Erstellung
#### Ideen
- Grund-Ideen
- Smarten Cocktail-Mischer
- 4 Getränke Behälter (mit Saft, Sirup oder Likör bzw. Schnapps)
- 4 Pumpen (Peristaltik Pumpe)
- Raspberry Pi als Prozessoreinheit
- Display in der Front mit Benutzeroberfläche
- Automatisches filtern von Getränken, je nachdem welche "Zutaten" in den Behältern sind
- Messung der aktuellen Füllmenge der Behälter, basierend auf Gewicht (mittels Wägezelle) oder Abstand zur
Wasseroberfläche (mittels Ultraschall-Sensor)
- Nice to have
- LED-Stripes für schöne Beleuchtung, basierend auf dem aktuellen Status der Maschine
- Extra Schlauch für weitere außenstehende Getränke
- Mit Bier-Fass Adapter?
- Kühlung der Container mittels Peltierelement und Lüftern
#### Erstes 3D-Modell
<img src="./Screenshot_Model1.1_FrontTopRight.png" width="50%">
<img src="./Screenshot_Model1.1_BackDownLeft.png" width="50%">
#### Neues 3D-Modell
<img src="./Screenshot_Model1.2_Front.png" width="50%">
<img src="./Screenshot_Model1.2_Back.png" width="50%">
<hr>
## Das Programm
#### Aufbau
- Das Programm des iTenders ist getrennt in 3 Teile
- iTender Basis
- Die Basis besteht aus der Kommunikation zwischen den Pumpen, LEDs und jeglicher Hardware
- Außerdem gibt es Timer, automatische Events, Prüfung und aktualisierung von Getränken etc.
- Sie übernimmt z.B. das Starten vom Getränke-Füllen, stoppen sowie Berechnen von den Zutaten für ein Getränk
- Dieser Teil arbeitet seh eng mit dem Websocket-Server zusammen, um so auf Events vom Endnutzer zu reagieren.
- iTender Webserver
- Der Webserver ist einfach ein statischer Webserver welche Dateien "serviert", die dann von der Oberfläche geladen werden können.
- Der Client-Browser oder iTender-Display lädt dann diese Seite, erstmal passiert dann noch nichts
- iTender Websocket-Server
- Der Websocket-Server dient zur eigentlichen Live-Kommunikation zwischen Client und Gerät.
- Der Server und die Webseite (Endgerät), bauen eine Ende-zu-Ende Verbindung auf
- Die Kommunikation zwischen Client und Websocket-Server basiert auf JSON (Javascript-Objekt-Notation).
- Da der Websocket in früheren Client-Versionen anfällig für Fehler beim Übertragen von nicht alphabetischen Zeichen war, wird der gesendete Inhalt noch in Base64-Kodiert.
- Base64 dient dazu, die Daten binär zu kodieren, um sie auf der Gegenstelle wieder zu entkodieren.
- Außerdem wird beim übertragen eine Checksumme mitgegeben, um bei Fehlerhaften Paketen ein neues anzufragen.