Datentransfer und Visualisierungen

generated with Adobe Firefly

Wohin mit meinen Daten?

In verschiedenen Tutorials wie "Schulklima: Daten in der ThingSpeak-Cloud" , "Internet of Everything: Octopus trifft IFTT, MQTT und Alexa" oder "MitmachKlima: LoRaWAN" haben wir bereits gelernt, dass unsere Octopus- oder Makey-Platine verschiedenste Daten mittels onboard- oder externen Sensoren erfassen und transportieren kann. Es wurden verschiedene Methoden zur Datenübetragung gezeigt und auch schon visualisiert. Was aber, wenn wir nun viele Daten von verschiedenen Sensoren bekommen, die alle überwacht, analysiert und visualisiert werden sollen? Wenn vielleicht noch weitere Sensoren dazu kommen sollen, oder weitere Nutzende? Oder wenn Daten anschließend noch weitergeleitet und -verarbeitet werden sollen?

Wie finden wir uns in dem Daten-Dschungel zurecht, welche Optionen gibt es, wie funktionieren sie und wieso es wichtig ist, Daten zu strukturieren und analyisieren.

Thingsboard

Thingsboard ist eine Open-Source-IoT-Plattform, die für fortgeschrittene Visualisierung, Alarmierungen und Automatisierungen entwickelt wurde.


Vorteile

  • Umfangreiche Dashboards: Thingsboard erlaubt interaktive Visualisierungen, bietet flexible Widgets
  • Regel Engines: Automatische AKtionen, wie Benachrichtigungen oder Geräte-Steuerung sind direkt in der Plattform integrierbar
  • Skalierbarkeit: Thingsboard unterstützt große Datenmengen und Geräte-Flotten druch MQTT, HTTP und auch OTA-Updates
  • Multi-Tenancy: Für größere Projekte oder Anwendungen können mehrere Benutzer und Rollen angelegt und verwaltet werden
  • Flexible Integration: Daten können vom Sensor direkt oder indirekt (bspw. erst an TheThingsNetwork und von dort aus) an Thingsboard gesendet werden und von Thingsboard aus an weitere Systeme weitergeleitet werden.

 

 

Voraussetzungen

Hardware

  • Octopus- oder Makey-Platine (ESP32-basiert)
  • WLAN-Netzwerk (hier testweise mobiler Hotspot eines mobilen Endgerätes)

Software

  • Arduino IDE  mit Ardublock-Plugin (siehe Schnellstart)
  • Thingsboard Cloud Account (kostenlos 30-Tage verfügbar oder kostenlose Community Edition selbst installieren - für dieses Tutorial sind beide Editionen geeignet)

Schritt 1: Thingsboard Cloud einrichten

Account erstellen: Besuche Thingsboard und registriere einen kostenlosen Account in der EU-Cloud oder installiere die Community-Edition
Thingsboard-Startbildschirm
Gehe zu "Entities" -> "Devices" und lege dann über das "+"-Symbol ein neues Gerät an ("Add new Device")
Gebe dem Gerät einen beliebigen (aber sinnvollen) Namen und schalte aktiviere "ist ein Gateway". Dann weiter zu den Zugangsdaten ("Credentials")
Kopiere den Zugangstoken und bestätige mit "Add". Das Gerät wird anschließend in der Liste aufgeführt mit dem State "inacitve". Den Zugangstoken findest du später auch jederzeit mit einem Klick auf die Geräte-Zeile - "Copy access token"
Unter "Dashboards" legen wir ein neues Dashoboard an. Hier wollen wir unsere Daten später visualisieren.

Schritt 2: Ardublock-Programm

  • In Ardublock greifen wir uns unter IoT: Wifi unseren WLAN-Block und geben die Zugangsdaten unseres WLANs / mobilen Hotspots ein.
  • Unter IoT:HTTP greifen wir uns den Thingsboard, send data-Block
    • Unter Server geben wir https://eu.thingsboard.cloud ein (falls ihr Thingsboard Community oder Professional-Edition installiert habt und selbst hostet, verwendet entsprechend eure URL und ggf. den richtigen Port)
    • Access Token ist der Token eures Gerätes, welches ihr in Schritt 1 angelegt habt
    • Nun folgen drei mögliche Datenfelder, verwendet sinnvolle Namen. Dazu gehört jeweils Data, also welche Sensordaten ihr gerne zuweisen wollt. Hier der BME280 (onboard beim Octopus). Temperatur und Luftfeuchte sollen übertragen werden, der dritte mögliche Datensatz bleibt hier erst einmal leer
  • Abschließend bauen von den Kontrollstrukturen einen Delay ein, damit unser Octopus nicht permanent Daten erzeugt, sondern energiesparend erst einmal alle 20 Sekunden die geforderten Daten überträgt (im späteren Realfall wollen wir natürlich noch weitaus energiesparender arbeiten mit Abtastraten von bspw 10-15 Minuten)

Schritt 3: Verbinden und Überprüfen!

Die Daten sollten in Thingsboard unter dem Gerät, dessen Access Token wir verwendet haben, nun sichtbar sein. Der Geräte-Status schaltet auf Active um.
Wir klicken auf die Gerätezeile und schauen uns die Daten an unter "Latest telemetry". Der im Ardublock übertragene Name sowie die dazugehörigen Data-Einträge sollten hier nun zu sehen sein

Schritt 4: Visualisierung

Wir gehen nun zu "Dashboards" und wählen unser zuvor angelegtes Dashboard aus. Hier legen wir nun ein neues Widget an. Bspw. aus der Kategorie "analog Gauges" (analoge Messgeräte).
Wir wählen das Gerät, von welchem die Messdaten bezogen werden sollen und welche Datensätze und dazugehörigen Einheiten angezeigt werden sollen.
Wir können auch Linien-Diagramme verwenden, um den Verlauf der Messdaten besser zu visualisieren
Wir visualisieren beide Daten (Temperatur & Luftfeuchte) in einem LineChart, geben unterschiedliche Farben und die jeweilige Einheit an
Zum Verlauf wird auch der Mittelwert berechnet (Avg - Average). Testweise habe ich hier den Sensor angehaucht, um zu überprüfen, dass sich die Daten in Echtzeit ändern und der Verlauf besser erkennbar ist
Du kannst nach eigenem Belieben nun verschiedenste Widgets austesten und verschieben, viel Spaß beim nachbauen! (Vergiss nicht, oben rechts zu speichern)

Schritt 5 (optional): Erweiterung TTN

Wir überlegen uns einen Anwendungsfall, beispielsweise die Pegelmessung. Dort werden unsere Sensoren mit Batterien oder Solarpanels versorgt und die Datenübertragung wird durch die Entfernung zu verfügbaren WLAN-Netzwerken über LoRaWAN umgesetzt. Dort nutzen wir LoRaWAN, um die Daten vom Sensor zum TheThingsNetwork (TTN) zu senden. Dort sollen später all unsere Messdaten aller Messstationen zusammenlaufen. Von dort aus können die Daten weitergeleitet werden über WLAN. Hierzu gibt es zwei Optionen von the TTN: Webhooks und MQTT.

 

Weitere Plattformen

Wer Spaß an der Datenvisualisierung hat kann recht simpel auch andere Plattformen neben Thingsboard verwenden. Viele IoT-Plattformen bieten kostenlose Zeiträume an, die ihr zum Austesten der Plattformen nutzen könnt. Für kleinere Projekte gibt es bei einigen Plattformen auch kostenlose Angebote mit begrenzter Anzahl Geräte, die verbunden werden können.

Webhooks

Datacake Achtung: simulierte und unrealistische Daten zu Testzwecken verwendet 5 Devices kostenfrei, unbegrenzte Dauer
AllThingsTalkMaker Achtung: simulierte und unrealistische Daten zu Testzwecken verwendet Ein Dashboard kostenfrei
TagoIO Achtung: simulierte und unrealistische Daten zu Testzwecken verwendet 5 Devices, 5 Dashboards kostenfrei
ThingSpeak Achtung: simulierte und unrealistische Daten zu Testzwecken verwendet kostenfrei, begrenzte Visualisierung

Ausblick

Rollen

Damit viele Geräte gleichzeitig überwacht werden können, können Nutzende mit Rollen angelegt werden mit verschiedenen Rechten. So wird verhindert, dass ein*e Nutzer*in die Daten oder Konfiguration eines anderen Nutzenden verändern, aber dennoch betrachten kann. Mehr dazu hier.

Regelketten

Wir können mittels Regelketten automatisiert Daten weiterleiten, verarbeiten und Alarme einrichten. Mehr dazu findest du hier.

back-to-top nach oben