|
|
# 3.1 Das technische Konzept
|
|
|
|
|
|
Bei den, für die Umsetzung des MVP, verwendeten Input-Daten, handelt es sich um Sensordaten des DigitalHHZ. In den Räumlichkeiten des HHZ sind verschiedene Sensoren aufgestellt, unter anderem Bewegungssensoren. Speziell für die Umsetzung des Konzepts wurden die Sensordaten des HHZ Vorlesungsraums 024 verwendet. In diesem Raum befinden sich drei Bewegungssensoren. Für die Umsetzung des MVP wurde der Sensor aus der Middle Area verwendet. Die Sensordaten beinhalten unterschiedliche Informationen über die Bewegung in dem Bereich des Sensors und senden jede halbe Minute Daten weiter. Im Rahmen des MVP wird nur die Information "occupancy" benötigt. Sie sagt aus, ob eine Belegung im Raum bzw. in dem Bereich vorzufinden ist, also ob eine Bewegung vorhanden ist. Ist dies der Fall, sendet der Sensor den boolean-Wert "true", ansonsten den Wert "false". Der Zugriff auf die Sensordaten ist über eine Verbindung zum zugehörigen MQTT Broker möglich.
|
|
|
Bei den, für die Umsetzung des MVP, verwendeten Input-Daten, handelt es sich um Sensordaten des DigitalHHZ. In den Räumlichkeiten des HHZ sind verschiedene Sensoren aufgestellt, unter anderem Bewegungssensoren. Speziell für die Umsetzung des Konzepts wurden die Sensordaten des HHZ Vorlesungsraums 024 verwendet. In diesem Raum befinden sich drei Bewegungssensoren. Für die Umsetzung des MVP wurde der Sensor aus der Middle Area verwendet. Die Sensordaten beinhalten unterschiedliche Informationen über die Bewegung in dem Bereich des Sensors und senden jede halbe Minute Daten weiter. Im Rahmen des MVP wird nur die Information "occupancy" benötigt. Sie sagt aus, ob eine Belegung im Raum bzw. in dem Bereich vorzufinden ist, also ob eine Bewegung vorhanden ist. Ist dies der Fall, sendet der Sensor den boolean-Wert "true", ansonsten den Wert "false". Der Zugriff auf die Sensordaten ist über eine Verbindung zum zugehörigen MQTT-Broker möglich.
|
|
|
|
|
|

|
|
|
|
|
|
Um eine einfache Weiterverarbeitung der Daten zu ermöglichen, wurden die boolean-Werte mit einem Function-Node in Integer Werte (0 und 1) umgewandelt.
|
|
|
Um eine einfache Weiterverarbeitung der Daten zu ermöglichen, wurden die boolean-Werte mit einem Function-Node in Integer-Werte (0 und 1) umgewandelt.
|
|
|
Die weitere Verarbeitung der Input-Daten in NodeRED ist in der nächsten Abbildung zu sehen.
|
|
|
|
|
|

|
|
|
|
|
|
Während des Flows, werden die Input-Daten gefiltert. Die Verzweigung unterscheidet dabei, ob der Wert der Message 1 oder 0 ist. Ist das Ergebnis eine 0, wird also keine Bewegung erkannt, geht der Flow in Richtung des Timers weiter. An dieser Stelle wurde eine Timer-Funktion umgesetzt, die 15 Minuten auf eine Änderung (von 0 zu 1) wartet und falls kein anderer Wert eintritt, eine Empfehlung ausspricht. Nach den 15 Minuten hat der Anwender zudem noch 1 Minute Zeit mittels manuellen Vorrang die Empfehlung über das Dashboard zu verhindern. Damit wird dem Flow mitgeteilt, dass sich doch noch jemand im Raum befindet und die Empfehlung nicht ausgesprochen werden soll. Die Empfehlung beinhaltet dabei den effizienten Tipp das Licht nach 15 bzw. 16 Minuten auszuschalten, falls inzwischen Zeit keine Bewegung erkannt wurde. Ist der Wert 1, wird also eine Bewegung von dem Sensor erkannt, geht der Prozess durch den Standard-Flow und es erscheint eine Information darüber, dass eine Bewegung erkannt wurde. Der Output besteht also aus einer Empfehlung, basierend auf den Input. Das dazu erstellte NodeRED Dashboard ist in der nächsten Abbildung zu sehen.
|
|
|
Während des Flows, werden die Input-Daten gefiltert. Die Verzweigung unterscheidet dabei, ob der Wert der Message 1 oder 0 ist. Ist das Ergebnis eine 0, wird also keine Bewegung erkannt, geht der Flow in Richtung des Timers weiter. An dieser Stelle wurde eine Timer-Funktion umgesetzt, die 15 Minuten auf eine Änderung (von 0 zu 1) wartet und falls kein anderer Wert eintritt, eine Empfehlung ausspricht. Nach den 15 Minuten hat der Anwender zudem noch 1 Minute Zeit mittels manuellen Vorrang die Empfehlung über das Dashboard zu verhindern. Damit wird dem Flow mitgeteilt, dass sich doch noch jemand im Raum befindet und die Empfehlung nicht ausgesprochen werden soll. Die Empfehlung beinhaltet dabei den effizienten Tipp das Licht nach 15 bzw. 16 Minuten auszuschalten, falls inzwischen Zeit keine Bewegung erkannt wurde. Ist der Wert 1, wird also eine Bewegung von dem Sensor erkannt, geht der Prozess durch den Standard-Flow und es erscheint eine Information darüber, dass eine Bewegung erkannt wurde. Der Output besteht also aus einer Empfehlung, basierend auf den Input. Das dazu erstellte Node-RED Dashboard ist in der nächsten Abbildung zu sehen.
|
|
|
|
|
|

|
|
|
|
|
|
# 3.2 Das MVP unseres Prototypen
|
|
|
|
|
|
Technologien und Programmiersprachen, die im Rahmen des IoT-Projekts verwendet wurden, sind MQTT, NodeRED und JavaScript. Die Installation von NodeRED und MQTT erfolgte auf einem RaspberryPi 4. Der gesamte Prototyp läuft somit am Ende auf dem RaspberryPi 4. Der Zugriff auf die Sensordaten findet über NodeRED statt.
|
|
|
Technologien und Programmiersprachen, die im Rahmen des IoT-Projekts verwendet wurden, sind MQTT, Node-RED und JavaScript. Die Installation von Node-RED und dem MQTT-Broker erfolgte auf einem RaspberryPi 4. Auf den RaspberryPi wurde zuerst das Betriebssystem Raspbian installiert. Nach der erfolgreichen Installation kann eine SSH Verbindung hergestellt werden, damit der Zugriff auf die Raspberry auch z.B. über einen Windows Rechner möglich ist. Nachdem alle notwendigen Konfigurationen abgeschlossen sind, muss Node-RED auf den Pi installiert werden. Außerdem wurde Node-RED auf dem Pi als Service aktiviert, was bedeutet, dass Node-RED bei Systemstart des Raspberry automatisch startet. Anschließend kann Node-RED über den Browser mit http://<DEINE IP>:1880 gestartet werden. DEINE IP ist dabei die IP-Adresse der Pi.
|
|
|
|
|
|
|
|
|
Der gesamte Prototyp läuft somit auf dem RaspberryPi 4. Der Zugriff auf die Sensordaten findet über NodeRED statt, indem eine Verbindung zum MQTT Broker aufgebaut wird. Dafür wird der "MQTT Input" Node in NodeRED verwendet.
|
|
|
|
|
|
------------------------------------------------
|
|
|
|
... | ... | |