write doc
Took 2 hours 59 minutes
This commit is contained in:
82
doc/Notes.md
82
doc/Notes.md
@ -1,4 +1,5 @@
|
||||
# Notes und kleine Dokumentation
|
||||
|
||||
Was haben wir bereits am iTender Projekt gemacht?
|
||||
|
||||
<hr>
|
||||
@ -6,26 +7,30 @@ Was haben wir bereits am iTender Projekt gemacht?
|
||||
## 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)
|
||||
|
||||
- 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
|
||||
- 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%">
|
||||
|
||||
@ -35,12 +40,23 @@ Was haben wir bereits am iTender Projekt gemacht?
|
||||
## Das Programm
|
||||
|
||||
#### Aufbau
|
||||
|
||||
- Das Programm ist aufgebaut in eine Client-Seite und eine Server-Seite
|
||||
- Diese sind zur Sicherheit des Geräts voneinander getrennt
|
||||
- Server und Client kommunizieren über einen WebSocket, welchen man sich als eine Art Chat-Kanal vorstellen kann
|
||||
- Client und Server haben bestimmte Status, ein Status ist beispielsweise READY oder FILLING
|
||||
- Die Oberfläche ist sowohl über das Display, aber auch über ein Tablet steuerbar
|
||||
- Oberfläche sendet Befehle an den Server → Server verarbeitet und gibt ggfs. eine Antwort
|
||||
- Oberfläche sendet Befehle an den Server → Server verarbeitet und gibt ggf. eine Antwort
|
||||
- Bei jedem start wird der Status des Netzwerkes erfasst
|
||||
- Sollte Netzwerk zu verfügung stehen, versucht iTender die Getränke vom Hauptserver (im Internet) zu aktualisieren
|
||||
- Somit kommen auch beim bestehenden Produkt immer neue Getränke und mögliche Zutaten dazu
|
||||
- Nach jedem mischen und alle 5 minuten werden die Füllstände der Behälter erfasst
|
||||
- Danach werden auch die verfügbaren Cocktails berechnet, diese werden dann im Webinterface angezeigt
|
||||
|
||||
#### Code fakten
|
||||
|
||||
- Inzwischen hat der Programmiercode 14492 Zeilen
|
||||
- In Stunden wurde das Projekt (Stand 29.11) ~80 Stunden programmiert
|
||||
|
||||
#### Fotos des Webinterfaces (Stand 21.11)
|
||||
|
||||
@ -48,27 +64,55 @@ Was haben wir bereits am iTender Projekt gemacht?
|
||||
<br>
|
||||
Die Main Pane ist der Hauptteil und direkt die Einstiegsseite des iTenders<br>
|
||||
Hier können Getränke ausgewählt werden, welche dann "gemacht" werden
|
||||
<img src="./v1Main.png">
|
||||
|
||||
<img src="./v1Main.png" width="50%">
|
||||
<br><br>
|
||||
<strong>Menu</strong><br>
|
||||
Das Menü ist das Navigationsherz, von hier aus können alle anderen Panels erreicht werden<br>
|
||||
<img src="./v1Menu.png">
|
||||
<img src="./v1Menu.png" width="50%">
|
||||
<br><br>
|
||||
<strong>Containers</strong><br>
|
||||
Hier können die Behälter inhalte aktualisiert werden<br>
|
||||
Man wählt die "Zutat" aus und danach wie voll der Behälter nun ist<br>
|
||||
In der Regel kann das auch automatisch eingemessen werden, wenn alle Sensoren eingestellt sind<br>
|
||||
<br>Trotzdem sollte das hier eingestellt werden
|
||||
<img src="./v1Containers.png">
|
||||
|
||||
<img src="./v1Containers.png" width="50%">
|
||||
|
||||
<br><br>
|
||||
<strong>Fill</strong><br>
|
||||
Einfach ein "Popup" welches anzeigt dass das Getränk gefüllt wird
|
||||
<img src="./v1Fill.png">
|
||||
|
||||
<img src="./v1Fill.png" width="50%">
|
||||
|
||||
<br><br>
|
||||
<strong>Setup</strong><br>
|
||||
Das Setup ist das erste menü was nach dem ersten einrichten erscheint<br>
|
||||
es dient zur Grundkonfiguration
|
||||
<img src="./v1Setup.png">
|
||||
|
||||
<img src="./v1Setup.png" width="50%">
|
||||
|
||||
<br><br>
|
||||
|
||||
|
||||
<hr>
|
||||
|
||||
<br><br>
|
||||
|
||||
### Erklärung der Dateien und Modulen
|
||||
|
||||
| Context | Datei | Beschreibung |
|
||||
|-----------|---------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| iTender | main | Die Hauptdatei, sie ist der Einstiegspunkt des Programms, von hier aus wird die Datenbank verbunden und der Webserver gestartet |
|
||||
| iTender | MyGPIO | Die eigene GPIO Library von Tobias Hopp. Sie dient zum Steuern von GPIO-Pins am Raspberry Pi |
|
||||
| iTender | Utils | Hier befinden sich einige schnelle Funktionen, welche des öfteren von mehreren Methoden im Programm genutzt werden |
|
||||
| iTender | RejectReason, SensorType, RequestType | Ein paar Klassen welche Enums (sogenannte feste Platzhalter für Variablen) bereitstellen |
|
||||
| iTender | SensorType | Die Art des Sensors, aktuell sind Ultraschallsensoren und Wäge sensoren unterstützt |
|
||||
| Webserver | App | Die App ist die Instanz des Webservers, welcher für die Oberfläche genutzt wird, dieser wird vom iTender selbst, sowie etwaigen anderen Geräten aufgerufen |
|
||||
| Webserver | WebsocketApp | Ähnlich wie die normale App, nur spezifisch für die Direktverbindung zwischen Oberfläche und Server |
|
||||
| iTender | LEDHandler | Übernimmt die Steuerung der WS2812b LEDs |
|
||||
| iTender | Category | Kategorie des Getränks |
|
||||
| iTender | Settings | Die Einstellungen des iTenders, werden gespeichert in der config.json |
|
||||
| Webseite | error.pug, index.pug, layout.pug | Die statische Webseite für den iTender, diese Oberfläche liest die JavaScript Dateien ein und verbindet sich dann mit dem WebSocket (mit dem iTender) |
|
||||
| Compiler | dist/ Ordner | Hier sind alle kompilierten Dateien zu finden |
|
||||
| Webserver | web/main | Der Einstiegspunkt für die Weboberfläche, von hier aus wird mit dem WebSocket verbunden |
|
||||
| | | |
|
||||
|
Reference in New Issue
Block a user