IoT-Applikationen erfordern in der Regel eine interdisziplinäre Zusammenarbeit. Hierbei sind die Anforderungen während der Umsetzung oft anzupassen oder zu präzisieren, bis ein endgültiger Proof-of-Concept vorliegt. Eine komplexe Entwicklung wird durch ein geeignetes Prototyping-System unterstützt.
Bei einem zu erstellenden Prototyp muss nicht die komplette Funktion auf einmal abgebildet werden. Oft reicht es aus, neue und unerprobte Funktionen im Prototyp zu testen. Auf einfache und bereits erprobte Funktionen kann man im ersten Ansatz verzichten. Ein erweiterter Prototyp kann diese Funktionen später mit aufnehmen.
Für den geschilderten Zweck stehen heute unterschiedliche Systeme zur Verfügung. Neben den technischen Merkmalen solcher Systeme spielt die Unterstützung durch den Hersteller in Form einer aussagefähigen Dokumentation, eines lebendigen Userforums, unterstützender Tools und aktueller GitHub-Repositories eine entscheidende Rolle.
Das »WisBlock«-Modulsystem des Herstellers RAKwireless unterstützt das Prototyping von IoT-Applikationen und kann selbst in einem industrietauglichen Produkt zum Einsatz kommen. Hingegen ist »WisNode« eine Kategorie von Produkten, die von RAKwireless als Endgeräte oder IoT-Knoten für die IoT-Industrie entwickelt wurden. Der auf WisBlock-Komponenten aufbauende »WisNode SensorHub« ist ein modulares Sensorökosystem, bestehend aus dem eigentlichen Hub und vorkonfigurierten Sensoren. Die austauschbaren Sensoren und Sensoren von Drittanbietern lassen sich in ein Gesamtsystem integrieren. Somit ist der SensorHub eine geeignete und vielseitige Plattform für verschiedene IoT-Applikationen. Der SensorHub besteht aus einem robusten, wasserdichten Gehäuse mit zwei Anschlüssen für Sensoren beziehungsweise einer externen Spannungsquelle.
WisBlock ist ein modulares System, dessen Komponenten auf einem Baseboard aufbauend über industrietaugliche Steckverbinder verbunden werden können. Das macht es einfacher, Sensoren, Aktoren und I/O-Module zu verbinden und in einem Low Power Wide Area Network (LPWAN) zu verankern.
WisBlock-Hardware
Die WisBlock-Plattform besteht aus:
Die Bezeichnungen sprechen für sich. Die WisBlock-Komponenten bilden viele Funktionen ab, die in Tabelle 1 zusammengestellt sind. In jeder Gruppe sind verschiedene WisBlock-Komponenten zusammengefasst, deren komplette Auflistung hier aus Platzgründen nicht möglich ist. Die Kontaktierung der WisBlock-Module erfolgt je nach Größe des betreffenden Boards entweder über einen Sensorslot oder über einen I/O-Slot.
Bild 1 zeigt das »RAK19007« als Beispiel für ein einfaches Baseboard – die Beschriftungen zeigen die Bereiche zur Aufnahme der verschiedenen Module. Zur Kontaktierung im CPU-Slot stehen verschiedene Core-Module zur Verfügung. Bild 2 zeigt ein »RAK4631«-Core-Modul mit LoRaWAN auf Basis eines Nordic »nRF52840« System-on-Chip (SoC) mit dem Transceiver »SX1262« von Semtech. Neben dem in Bild 2 gezeigten Core-Modul gibt es weitere Module für LoRaWAN auf Basis des Raspberry Pi »RP2040«, des STMicroelectronics »STM32WLE5CCU6« sowie des SoCs »Apollo3« von Ambiq. Auf Basis eines SoCs von Espressif, »ESP32-WROVER«, wird außerdem ein Core-Modul für WiFi angeboten.
Von den WisBlock-Sensoren wird nahezu alles abgedeckt, was zum Erfassen vielfältiger physikalischer Größen zu erwarten ist. Die WisBlock-Interface-Module stellen Erweiterungen für zahlreiche Zusatzfunktionen bereit. Neben den Erweiterungen der Kommunikation sind das beispielsweise Treiber für Grafikdisplays. Das »RAK14014« ist ein Displaymodul. Das zugehörige Touchscreendisplay hat eine aktive Fläche von 2,4 Zoll mit 240 x 320 Pixeln auf Basis eines IPS-TFT-LCDs und kann farbige Grafiken ausgeben. Die WisBlock-Module werden mit dem WisBlock Baseboard über High-Density-Steckverbinder kontaktiert und verschraubt, sodass eine zuverlässige elektrische Verbindung sichergestellt ist. Das WisBlock-Modulsystem ist nicht nur für Rapid Prototyping geeignet, sondern die gleiche Hardware können Entwickler ebenso für das Endprodukt und die Massenproduktion verwenden.
WisBlock-Software
WisBlock-Anwendungen lassen sich mit der Arduino IDE oder der PlatformIO-Erweiterung für Atom oder MSVC programmieren. Das Arduino-Framework bietet eine breite Palette an Bibliotheken, die sofort nutzbar sind.
RAKwireless bietet für alle WisBlock-Komponenten eine sehr gute Unterstützung mit Libraries und Programmbeispielen an.
Für komplexe Projekte können Entwickler WisBlock-Applikationen zudem mit professionellen Entwicklungsumgebungen, wie Seggers Embedded Studio oder dem MDK von Arm Keil, erstellen. Daneben bietet RAKwireless eigene Tools an, die das Leben des Entwicklers vereinfachen. Das »Unified Interface V3« (RUI3) beispielsweise ist kompatibel zu den WisBlock-Core-Modulen und wurde zum Vereinfachen und Vereinheitlichen der Programmierung entwickelt. Es unterstützt die Standard-AT-Befehle, die Entwickler von der Modemprogrammierung kennen, sowie den Binary Mode. Der Binary Mode ist eine verbesserte Version des AT-Befehls mit seinem effizienten, auf Byte-Arrays basierenden Protokoll und dem Implementieren von Prüfsummen. Mit RUI3 lässt sich unter Verwenden der RUI3-APIs außerdem benutzerdefinierte Firmware erstellen, die keinen externen Host-Mikrocontroller mehr benötigt. Eine Übersicht und Programmbeispiele zu den RUI-Kommandos finden sich auf der Homepage von RAKwireless.
Die Motivation für den solarbetriebenen Sensorknoten war, herauszufinden, ob sich auch bei nicht optimaler Sonneneinstrahlung eine hinreichende Batterielaufzeit für einen Sensorknoten erreichen lässt. Hierzu wurde mit dem »RAKBox-B2«-Gehäuse mit Solarpanel (Bild 3) ein solarbetriebener LoRa-WAN-Knoten aufgebaut. Zum Einsatz kamen die Komponenten gemäß Tabelle 2. Überwacht werden die Batteriespannung und der Ladezustand der Batterie sowie die Temperatur und relative Luftfeuchtigkeit im Inneren des Gehäuses.
Dabei geht es vorrangig um die Umgebungsbedingungen für die Elektronik im Gehäuse, denn die Solarzelle ist so zu positionieren, dass sie die maximale Sonneneinstrahlung auffängt. So ist es nicht verwunderlich, dass bei Mittagstemperaturen um die 35 °C im Sommer Gehäuseinnentemperaturen von mehr als 50 °C gemessen wurden.
Den Sensorknoten kennzeichnen folgende Merkmale:
Das Anwendungsprogramm [1] findet sich auf GitHub, der Test läuft seit dem 18.03.2022, 14:15. Die aktuellen Daten können über den Public Link [2] verfolgt werden (Bild 4).
RAKwireless Air Quality Node
Zu den Schadstoffen, die die Luftqualität negativ beeinflussen, gehören unter anderem Feinstaub, Asbest, Formaldehyd, Schimmel, Staub oder Tabakrauch, außerdem CO2. Bei Metalloxidschicht(MOX)-Sensoren bewirkt das vorbeiströmende Gas eine Veränderung einer gasempfindlichen Metalloxidschicht. Die Widerstandsänderung ist somit ein Maß für die Konzentration von flüchtigen organischen Bestandteilen (VOC, Volatile Organic Compounds), die sich in ihrer Gesamtheit erfassen und nicht auf eine bestimmte Substanz auflösen lassen. Die breitbandigen VOC-messenden MOX-Sensoren detektieren ein Spektrum von gesundheitsgefährdenden Stoffen in bestimmten Konzentrationen.
In einer umfangreichen Studie wurde das Verhalten von CO2-detektierenden nichtdispersiven Infrarotsensoren (NDIR) und breitbandigen VOC-messenden MOX-Sensoren beim Messen der Luftqualität untersucht. Die Luftqualitätsmessung mit den kostengünstigeren MOX-Sensoren zeigt überall dort, wo die Atemluft und die menschlichen Ausdünstungen dominieren, mit der reinen CO2-Konzentration vergleichbare Ergebnisse. Abweichungen treten in verschmutzten Umgebungen, zum Beispiel mit Formaldehyd, auf, aber dieses generelle Problem erfordert eine separate Behandlung.
WisBlock bietet alle erforderlichen Komponenten für den Aufbau eines Sensorknotens zum Messen der Luftqualität (Air Quality Node). Tabelle 3 zeigt die verwendeten Komponenten, Bild 5 zeigt das Baseboard RAK19007 mit »RAK11200«-Core-Modul sowie Sensor- und RGB-LED-Modul in der RAKBox-B3 montiert.
Im Anwendungsprogramm »RAK11200_sensors.ino« steuert der VOC-Index (iVOC) die Farbe der LED im Inneren des Gehäuses. Der iVOC ist von Sensirion gemäß [3] definiert (Tabelle 4). Bild 6 zeigt die Signalisierung des VOC-Normalzustands (Green), was bedeutet, dass die VOC-Werte unbedenklich sind und eine gute Luftqualität vorliegt. Zu finden ist das Programm auf GitHub [4].
Modbus-Sensor zum Messen von Umgebungsbedingungen
Dieses Anwendungsbeispiel zeigt die Integration eines einfachen Modbus-Sensors zum Messen von Temperatur und Luftfeuchte in einer Innenraumapplikation, beispielsweise einer Lagerhalle. Um über Änderungen der Temperatur oder Luftfeuchte zu informieren, sendet die Messung alle 15 Minuten Push-Nachrichten an ein Mobiltelefon.
Modbus RTU (Realtime Terminal Unit) ist das häufig verwendete Softwareprotokoll, RS-485 spezifiziert die elektrischen Bedingungen. Für den Versand von Push-Nachrichten sind verschiedene Dienste geeignet. Eine einfache Möglichkeit, den Versand von Push-Nachrichten in ein Anwendungsprogramm zu integrieren, ist Pushover [5].
Über Aliexpress [6] findet sich ein geeigneter Modbus-Sensor und viele vergleichbare Geräte zur Temperatur- und Feuchtigkeitsmessung zu einem sehr günstigen Preis. Der Sensor verwendet einen »SHTC3«-Sensor von Sensirion, der präzise Ergebnisse erwarten lässt. Der Nachteil der Wahl ist die einfache, auf Chinesisch verfasste Dokumentation. Google Translator oder ähnliche Tools helfen, den hier verwendeten Teil des Modbus-Protokolls zu entmystifizieren. WisBlock bietet alle nötigen Komponenten für den Bau des Geräts.
Mit diesen Komponenten erhält man die Hardware gemäß Bild 7. Das »RAK5802« ist ein RS-485-Schnittstellenmodul, welches eine robuste Schnittstelle für den Datenaustausch mit dem Modbus-Sensor bietet. Das Anwendungsprogramm muss die Modbus-Kommunikation und das Erzeugen von Push-Nachrichten an Pushover unterstützen.
Modbus-Kommunikation
Um die Temperatur- und Feuchtigkeitswerte des Sensors auszulesen, muss das Holding-Register abgefragt werden (Zugriff mit Funktionscode 03). Die Abfrage beginnt mit der Geräteadresse, gefolgt vom Funktionscode. Zwei 16-bit-Register, beginnend bei Adresse 0x00, halten die Messergebnisse fest. Ein 16-bit-CRC schließt die Anfrage ab. Mehrere Arduino-Libraries unterstützen die Modbus-Anwendungen. Aber nicht jede Bibliothek unterstützt alle Mikrocontroller. Das Core-Modul RAK11200 verwendet einen ESP32-Controller, daher ist die Library Modbus-ESP8266 [7], die ESP8266 und ESP32 unterstützt, eine gute Wahl.
Pushover-Kommunikation
Pushover ist eine Plattform zum Senden und Empfangen von Push-Nachrichten. Auf der Serverseite ist eine HTTP-API verwendet, eine Schnittstelle für den Empfang von Nachrichten, die an adressierbare Empfänger weitergeleitet werden. Als Empfänger dienen Android- oder iOS-Geräte oder Desktops. Die betreffenden Clients empfangen die an sie adressierten Nachrichten, zeigen sie dem Nutzer an und speichern sie zur späteren Ansicht.
Pushover kann sieben Tage lang kostenlos getestet werden. Wer Pushover danach weiter nutzen möchte, muss eine einmalige Gebühr von 4,99 US-Dollar pro zu nutzender Plattform (Android, iOS, Desktop) bezahlen. Hierbei spielt es keine Rolle, wie viele Geräte der jeweiligen Plattform Sie nutzen. Es fallen keine monatlichen oder jährlichen Gebühren an, die Anzahl der Nachrichten ist nicht begrenzt.
Auf der Supportseite [8] wird das Verwenden von Pushover erläutert. Wesentlich für die Anwendung sind der Benutzerschlüssel und der Anwendungsschlüssel. Der Registrierungsprozess generiert beide Schlüssel. Die Arduino-Library »PushoverESP32« [9] unterstützt ESP32 und RAK11200, jedoch wurde die Bibliothek hier nicht verwendet, sondern der HTTP-Zugriff direkt programmiert.
Der WisNode SensorHub basiert auf den beschriebenen WisBlock-Komponenten und ist ein modulares Sensorökosystem, bestehend aus dem eigentlichen Hub und vorkonfigurierten Sensoren. Die Sensoren sind austauschbar und lassen sich ebenso wie Sensoren von Drittanbietern in ein Gesamtsystem integrieren. Hiermit ist der SensorHub eine geeignete und flexible Plattform für unterschiedliche IoT-Applikationen. SensorHub besteht aus einem robusten, wasserdichten Gehäuse mit zwei Anschlüssen für Sensoren oder eine externe Stromversorgung.
Das Gerät kann – je nach Einsatzort beziehungsweise angeschlossenen Sensoren – entweder vollständig mit Batterien betrieben oder an eine externe Stromversorgung angeschlossen werden. Über die »WisToolBox«-App, die für mobile Geräte und Desktop-PCs verfügbar ist, lassen sich der SensorHub und seine Sensoren einfach konfigurieren.
SensorHub-Hardware
Die SensorHub-Hardware setzt sich im Wesentlichen aus drei Hauptkomponenten zusammen. Der SensorHub selbst (Bild 8) ist die Zentraleinheit an die sich unterschiedlich ausgestattete SensorProbes und SensorProbesIO anschließen lassen. Ein SensorProbe ist ausgestattet mit unterschiedlichen WisBlock-Sensormodulen, während ein SensorProbeIO als Interface zu einem externen Sensor dient. Ein Beispiel soll die Einsatzmöglichkeiten verdeutlichen.
Ein Beispiel ist ein SensorHub mit angeschlossener SensorProbe, die mit den WisBlock-Sensoren »RAK1901« und »RAK1902« ausgestattet ist. Hiermit können Entwickler über die SensorProbe Temperatur, relative Luftfeuchte und barometrischen Druck erfassen. Der SensorHub stellt zwei Varianten der Kommunikation in einem LPWAN zur Verfügung. Die Basisvariante ist LoRaWAN und die Erweiterung durch ein »RAK5860«-WisBlock-NB-IoT-Interface-Modul bietet zusätzlich NB-IoT.
Das NB-IoT-Modul unterstützt zwei Arten von LTE, nämlich CAT M1 und CAT NB2. CAT M1 bietet höhere Datenraten und geringere Latenzzeiten, während CAT NB2 eine sehr niedrige Leistungsaufnahme und eine größere Abdeckung bietet, wodurch es für den Einsatz in stationären, batteriebetriebenen Geräten prädestiniert ist.
SensorHub-Software
Auf dem SensorHub ist eine Firmware installiert, die derzeit in Version 1.2.6 vorliegt. Die Firmware unterstützt neben der Auto-Detektion der Spannungsversorgung und der angeschlossenen Sensoren die in Tabelle 5 dargestellten Kommunikationsfunktionen.
Der SensorHub ist nur zu konfigurieren und dafür stellt RAKwireless die App WisToolBox zur Verfügung. Die Verwendung der WisToolBox auf einem Mobilgerät kommt dem Einsatz des SensorHubs an der konkreten Messstelle sehr entgegen.
Über NFC wird der SensorHub geweckt und kann über BLE mit dem Mobilgerät Verbindung aufnehmen. Ist die Verbindung hergestellt, lassen sich verschiedene SensorHub-Informationen abrufen. Mit den gegebenen LoRa(WAN)-Parametern kann der SensorHub bei einem LoRaWAN-Server angemeldet werden. Hier wurde dies bei TTS(CE) getan. Details hierzu sind in [10] beschrieben. Außerdem können die vom Sensor erhobenen Daten abgefragt werden. In der TTS(CE) Console können die übermittelten Daten eingesehen werden.
Fazit
Im Beitrag wurde gezeigt, wie mit WisBlock das Erstellen von Anwendungen im IoT vom Proof-of-Concept über das Prototyping bis hin zum Industrieprodukt unterstützt wird. SensorHub stellt eine Ausprägung dieses Konzeptes dar und ermöglicht als Low-Code-System eine schnelle Umsetzung von IoT-Applikationen.
Ergänzt man beispielsweise die vorgestellte Wetterstation durch einen RK520-02-Sensor (Soil Moisture, Temperature and Conductivity Sensor), hat man bereits eine in der Landwirtschaft oder im Weinberg einsetzbare Messeinrichtung im LPWAN.
Literatur
[1] GitHub. 2023. https://github.com/
ckuehnel/Arduino2023/tree/main/
WisBlock/RAK4631-DeepSleep-LoRaWan. Aufgerufen am 16.11.2023, 15:40.
[2] Datacake. RAKwireless. 2023. https://app.datacake.de/pd/f7ca41c0-0041-
43be-ac59-a249f9630b90. Aufgerufen
am 16.11.2023, 15:41.
[3] Sensirion. What is Sensirion’s VOC Index? https://sensirion.com/media/documents/02232963/6294E043/
Info_Note_VOC_Index.pdf. Aufgerufen am 12.11.2023, 12:19.
[4] GitHub. 2023. https://github.com/ckuehnel/WisBlock. Aufgerufen am 16.11.2023, 15:44.
[5] Pushover. 2023. https://pushover.net/. Aufgerufen am 16.11.2023. 15:45.
[6] AliExpress. 2023. https://de.aliexpress.com/item/1005004700057699.html. Aufgerufen am 16.11.2023, 15:46.
[7] GitHub. 2023. https://github.com/
emelianov/modbus-esp8266. Aufgerufen am 16.11.2023, 15:47.
[8] Pushover Support. 2023. https://
support.pushover.net/i7-what-is-
pushover-and-how-do-i-use-it.
Aufgerufen am 16.11.2023, 15:47.
[9] GitHub. 2023. https://github.com/
brunojoyal/PushoverESP32. Aufgerufen am 16.11.2023, 15:48.
[10] Rika. Weather Station. 2023. https://www.rikasensor.com/rk900-09-
miniature-ultrasonic-weather-station.html. Aufgerufen am 16.11.2023, 15:49
Der Autor
Dr. Claus Kühnel studierte und promovierte an der Technischen Universität Dresden auf dem Gebiet der Informationselektronik und bildete sich später in Biomedizintechnik weiter. Nach Entwicklungstätigkeit in verschiedenen Branchen war er bis zu seiner Pensionierung bei QIAGEN Instruments (CH) als Director Electronic Engineering & Embedded Systems für die Entwicklung von Elektronikhardware und hardwarenaher Software verantwortlich. Aktuell befasst er sich mit IoT-Themen und arbeitet als Autor und Consultant.