@@ -19,7 +19,7 @@ Zur Implementierung des MVP wurde verschiedene Standardsoftware verwendet. Auf H
...
@@ -19,7 +19,7 @@ Zur Implementierung des MVP wurde verschiedene Standardsoftware verwendet. Auf H
-**Mosquitto** als MQTT-Broker
-**Mosquitto** als MQTT-Broker
Der Kern der Lösung beinhaltet die Trennung von Sender (Interactor) und Receiver (Reactor) auf programmatischer Ebene. Hierbei wird dem Studierenden eine Website zur Verfügung gestellt, in der er Reaktionen (über Emojis) und Fragen an den MQTT-Broker übermitteln kann. Dieser publiziert alle eingehenden Nachrichten auf die Endpoint ```IoTHackathonHHZ/# ```. Die RaspberryPi sind über das Node-RED Backend auf diesen Endpoint subscribed. Hierbei fungiert ein Pi zeitgleich als Broker und als Reactor. Alle anderen Pis übernehmen lediglich die Rolle des Reactors und subscriben auf den genannten Endpoint.
Der Kern der Lösung beinhaltet die Trennung von Sender (Interactor) und Receiver (Reactor) auf programmatischer Ebene. Hierbei wird dem Studierenden eine Website zur Verfügung gestellt, in der er Reaktionen (über Emojis) und Fragen an den MQTT-Broker übermitteln kann. Dieser publiziert alle eingehenden Nachrichten auf die Endpoint ```IoTHackathonHHZ/# ```. Die RaspberryPi sind über das Node-RED Backend auf diesen Endpoint subscribed. Hierbei fungiert ein Pi zeitgleich als Broker und als Reactor. Alle anderen Pis übernehmen lediglich die Rolle des Reactors und subscriben auf den genannten Endpoint.
Damit jede Nachricht nur auf einem Pi angezeigt wird, wurde im Backend eine Channel Kommunikation zwischen den Reaktoren aufgebaut, die über den MQTT-Broker abläuft. Dabei wird auf Grundlage der ID des Backends die Wahl getroffen, welcher Pi die Nachricht anzeigt. Hierbei wird die Wahl durch den Vergleich der IDs gelöst, bei dem die höhere, numerische ID gewählt wird.
Damit jede Nachricht nur auf einem Pi angezeigt wird, wurde im Backend eine Channel Kommunikation zwischen den Reaktoren aufgebaut, die über den MQTT-Broker abläuft. Dabei wird auf Grundlage der ID des Backends die Wahl getroffen, welcher Pi die Nachrichten eines Nutzers anzeigt. Hierbei wird die Wahl durch den Vergleich der IDs gelöst, bei dem die höhere, numerische ID gewählt wird.
Der Studierende liefert als **Input** seine Reaktionen oder Fragen über die Web-Anwendung. Diese werden in einem strukturieren Format an den MQTT-Broker **gesendet** und von diesem auf einen vordefinierten Endpoint übertragen. Einige Nachrichten erhalten Code-Wörter, die vom Reactor interpretiert werden. Ein Beispiel hierfür ist das Keyword ```Disconnected```. Auf diesen Befehl hin (egal ob über das "Frage"-Feld gesendet oder über das Schließen der Seite, löst der Reactor die Subscribtion auf den Endpoint des Studierenden auf und wartet auf neue Subscriptions. Der **Output** ist ein für den Professor gut erkennbares Bild eines Emojis oder die Einblendung einer Nachricht/Frage auf einem 7"-Full-HD-Display im direkten Blickfeld.
Der Studierende liefert als **Input** seine Reaktionen oder Fragen über die Web-Anwendung. Diese werden in einem strukturieren Format an den MQTT-Broker **gesendet** und von diesem auf einen vordefinierten Endpoint übertragen. Einige Nachrichten erhalten Code-Wörter, die vom Reactor interpretiert werden. Ein Beispiel hierfür ist das Keyword ```Disconnected```. Auf diesen Befehl hin (egal ob über das "Frage"-Feld gesendet oder über das Schließen der Seite, löst der Reactor die Subscribtion auf den Endpoint des Studierenden auf und wartet auf neue Subscriptions. Der **Output** ist ein für den Professor gut erkennbares Bild eines Emojis oder die Einblendung einer Nachricht/Frage auf einem 7"-Full-HD-Display im direkten Blickfeld.