Thingsboard als IoT-Dashboard

Zielsetzung

In diesem Projekt übertragen wir Umweltdaten (z. B. Temperatur, Luftfeuchte) in die Cloud-Plattform Thingsboard. So können wir die Daten jederzeit und weltweit im Web-Browser anschauen. Ähnlich wie Thingspeak ist Thingsboard eine weitere Cloud-Plattform mit professionellen Einsatzmöglichkeiten. Hier nehmen wir die öffentlich zugängliche www.thingsboard.cloud als Beispiel. Bei Bedarf kann die Plattform in der Community-Edition aber auch auf einem eigenen Server lokal installiert und betrieben werden (Github).

So kann die Community-Edition aussehen: Ein Beispiel unserer Thingsboard-Instanz am Umwelt-Campus findest du hier.

Weitere Ziele:

  • Dasboard Konzept kennenlernen. Ein Dashboard ist eine übersichtliche Benutzeroberfläche (quasi ein Cockpit), auf der wichtige Informationen visuell dargestellt werden – z. B. in Form von Diagrammen, Karten, Tabellen, Anzeigen, Widgets usw.
  • Übertragung von Daten über Internet (WLAN) per HTTP-Blöckchen.
  • Visualisierung von LoRa-Daten durch Webhook-Kopplung Thingsboard und TTN. 
  • Regelketten zur Verarbeitung der Daten kennenlernen.
Problemstellung

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-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 analysieren.

Was ist 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.

Thingsboard Cloud einrichten

1. Account erstellen: Besuche thingsboard.cloud und registriere einen kostenlosen Account in der EU-Cloud oder installiere dir die Community-Edition auf deinem Rechner.
Thingsboard-Startbildschirm
2. Ein neues Gerät hinzufügen: "Entities" -> "Devices" -> "+"-Symbol
Gebe dem Gerät einen beliebigen (aber sinnvollen) Namen und 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"

Das 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 BME680 (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)

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 "Neueste Telemetrie". Der im Ardublock übertragene Name sowie die dazugehörigen Data-Einträge sollten hier nun zu sehen sein!

Visualisierung

Wir gehen nun zu "Dashboards" und legen dort über das "+" ein neues Dashboard an. 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)

Weitere Plattformen

Wer Spaß an der Datenvisualisierung hat, kann recht simpel auch andere Plattformen 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. Hier einige Beispiele mit simulierten Daten:

Datacake https://datacake.co/ Hier sind fünf Devices kostenfrei, unbegrenzte Dauer
AllThingsTalkMaker https://www.allthingstalk.com/maker Ein Dashboard kostenfrei
TagoIO https://tago.io/ Hier sind fünf Devices und fünf Dashboards kostenfrei
ThingSpeak https://thingspeak.mathworks.com/ kostenfrei, begrenzte Visualisierung
back-to-top nach oben