Einleitung – Nachrichtenprotokoll und Node-Red
In diesem Teil der Dokumentation wird das gewählte Nachrichtenprotokoll und unsere Flows in Node-RED kurz beschrieben. Als Nachrichtenprotokoll haben wir MQTT gewählt, da es laut Vorlesung gut geeignet ist für IoT-Anwendungen, die Echtzeitdaten benötigen. Mit Node-RED können JavaScript-Funktionen in einem Baukastensystem zusammengesetzt werden. Die Universität hat einen MQTT-Broker und einen Node-RED Server, sowie Vorlesungen über diese Inhalte, bereitgestellt, was die Auswahl des Protokolls und des Entwicklungswerkzeuges bekräftigte.
Beschreibung der unterschiedlichen Nodes in Node-RED
1) Tabelle und Graph
Das abonnierte Topic „tonne/abstand“ erhält den Füllstand in % von dem Mikrokontroller. Diese Füllstand wird dann direkt an einen Graphen (Füllstand) weitergegeben. Bevor der Messwert in die Tabelle (table) eingetragen wird, durchläuft er noch eine Funktion.
1.1) Tabelle
In der Funktion, bei der die Füllstände ankommen, wird ein Datum im CET-Format erstellt. Somit erhält man eine Tabelle, die in den Spalten den Zeitpunkt und den Wert enthält. Weiterhin wird die Anzahl der Messwerte in der Tabelle auf 10 beschränkt, damit die Website übersichtlicher bleibt.
1.2) Graph
Das Liniendiagramm hat auf der x-Achse die Zeitwerte der letzten Woche und auf der y-Achse die Füllstände in % von 0-100.
Mit der Tabelle und dem Liniendiagramm, die vom Discord aus aufgerufen werden können, erhält der Benutzer einen Gesamtüberblick über den Müll in der Tonne.
2) Leeren der Tabelleneinträge
Da es in der Zukunft passieren kann, dass Daten gelöscht werden müssen, haben wir provisorisch eine Node angelegt, die das Löschen aller Tabelleneinträge ermöglicht. Weiterhin wurde die Node auch für das Debuggen benutzt.
3) Leeren der Mülltonne
Die Mülltonne muss von außen bestätigt bekommen, dass sie geleert wurde. Dies wird in Node-RED mit einer Node simuliert, die eine 0 an das Topic „tonne/status“ verschickt, sobald diese geleert wurde. Im Rahmen des Smart-City-Projekts wäre dies die Aufgabe der Müllabfuhr. Diese Nodes werden momentan aber nicht im Code benutzt (sind auskommentiert).
No Responses