Was ist das Internet of Things?
Der Übersichtsartikel "Was ist das Internet of Things?" erklärt an einem einfachen Beispiel, was das Internet of Things (IoT) ist und welche Technologien zur Umsetzung einer IoT-Anwendung eingesetzt werden. Im ersten Teil werden allgemeine Konzepte und Anwendungsfälle vorgestellt, im zweiten Teil die IoT-Demo "Sensordaten", die die Datenübertragung von Sensordaten an einen Webserver Schritt-für-Schritt erklärt.
Motivation
Warum ist IoT wichtig?
Die Erweiterung des Internets um Geräte hat einen wesentlichen Einfluss auf das gesellschaftliche Leben und auf die Produktion. Heute alltägliche Abläufe wie die Paketverfolgung, die Ferndiagnose und Fernüberwachung von Anlagen oder das Fahrzeugflottenmanagement werden erst durch IoT-Technologien ermöglicht.
Was sind IoT-Technologien?
Als IoT-Technologien bezeichnet man diejenigen Technologien, die zur Implementierung einer IoT-Lösung benötigt werden. Dazu gehören Technologien zur Datenerfassung am Gerät (Mikrocontroller, Sensortechnik, Messtechnik) und zur Datenübertragung zwischen Geräten und dem Internet (Kommunikationsprotokolle wie HTTP, MQTT, CoAP), aber auch Technologien zur verteilten Datenspeicherung und Datenauswertung, an den Geräten oder im Server.
Übersicht
Der Übersichtsartikel ist in vier Abschnitte gegliedert, die die grundlegenden Konzepte, Definitionen und Basistechnologien des IoT erläutern.
2 IoT-Technologien
2-1 IoT-Geräte
2-2 IoT-Protokolle
2-3 Web- und Cloudtechnologien
2-4 Datenbanksysteme und Big Data
1 Was ist IoT?
Das Internet der Dinge (Internet of Things, IoT) bezeichnet ein Netzwerk der Dinge, in dem
physische Objekte unterschiedlichster Art über das Internet miteinander vernetzt sind, ein virtuelles Abbild im Internet haben,
und Daten untereinander und mit dem Internet austauschen können.
Die technische Definition des IoT laut dem National Institute of Standards and Technology (NIST) lautet:
"IoT ist ein Netzwerk von Geräten, das die Hardware, Software, Firmware und Aktuatoren
enthält, die es den Geräten ermöglichen, sich zu verbinden, zu interagieren und Daten und Informationen frei auszutauschen." [1]
Ein IoT-Gerät im Sinne dieser Definition ist z.B. ein internet-fähiger mit Sensoren ausgestatteter Mikrocontroller, der Daten an einen Server im Netz überträgt, oder auch nur ein einzelner Sensor oder ein Steuergerät, insofern sie Daten ins Internet senden können. Einige der IoT-Geräte sind ressourcenarme Sensoren, deren einzige Aufgabe es ist, Daten zu erfassen und an einen Server im Internet zu senden. Andere IoT-Geräte besitzen mehr Rechenleistung und können über die reine Datenerfassung hinaus auch eine Verarbeitung der Daten übernehmen und erforderliche Aktionen durchführen.
Das Internet der Dinge hat viele Anwendungen sowohl im gesellschaftlichen Bereich, z.B. in der Logistik (Paketverfolgung), als auch im wirtschaftlichen Bereich, z.B. bei der vorausschauende Wartung von Produktionsmaschinen (Predictive Maintenance).
Die Paketverfolgung, wie wir sie heute alle kennen, war eine der ersten Anwendungen des IoT. Sie wird dadurch möglich, dass jedes Paket mit einem Scancode versehen ist, der die relevanten Daten eines Pakets enthält, und der zurückgelegte Weg des Pakets vom Absender zum Empfänger über die gesamte Lieferkette auf Computern (Servern) im Internet abgebildet wird.
Predictive Maintenance, also die vorausschauende Wartung, wird dadurch möglich, dass Produktionsmaschinen mit Sensoren ausgestattet sind, die laufend Messdaten an Computer im Internet senden, wo sie mit Algorithmen des maschinellen Lernens ausgewertet werden, um den Zeitpunkt der nächsten Wartung vorherzusagen.
Eine IoT-Anwendung wie die Paketverfolgung oder die Überwachung von Produktionsmaschinen hat in der einfachsten Form vier Kernfunktionalitäten:
- 1. Datenerfassung mit Hilfe der IoT-Geräte
- 2. Datenübertragung von den IoT-Geräten zu einer zentralen Plattform in der Cloud.
- 3. Datenanalyse der empfangenen Daten, z.B. mit Hilfe von Verfahren des Maschinellen Lernens
- 4. Datenvisualisierung der aufbereiteten Daten und Ergebnisse.
2 IoT-Technologien
Das Internet of Things funktioniert durch das Zusammenspiel etablierter und neuer Basistechnologien aus Ingenieurwissenschaften und Informatik. Diese können am einfachsten anhand eines IoT-Architekturdiagramms beschrieben werden, das die beteiligten Komponenten und Systeme in vier Schichten anordnet.
1. Edge-System:
Das Edge-System umfasst die Geräte-Schicht, d.h. die smarten IoT-Geräte mit Sensoren, Aktoren und Controllern.
2. Netzwerk:
Das Netzwerk ist verantwortlich für die Datenübertragung von den IoT-Geräten zu einer zentralen Plattform in der Cloud.
3. Cloud-System:
Das Cloud-System besteht aus einer IoT-Plattform, die die Funktionalität für die Steuerung der Datenübertragung,
der persistenten Datenspeicherung und der Auswertung der Daten bündelt.
4. Anwendungen:
Die Anwendungsschicht enthält alle Anwendungen, die die Daten aus der IoT-Plattform nutzen.
Hier können auch Aktionen ausgelöst werden und es kann eine Rückkopplung an die IoT-Geräte und in den Produktionsprozess erfolgen.
Bei der Entwicklung von IoT-Anwendungen werden noch weitere Technologien eingesetzt, insbesondere:
- Webtechnologien: Die gesendeten und aufbereiteten Daten werden dem Anwender in Webanwendungen oder mobilen Apps zur Verfügung gestellt.
- Datenbanktechnologien: Die Daten werden auf dem Server in SQL oder NoSQL-Datenbanken gespeichert.
- Datenaustauschformate: Für die Übertragung der Daten werden XML, JSON als Datenaustausch-Sprachen verwendet.
2-1 IoT-Geräte
Ein IoT-Gerät kann ein internet-fähiger Mikrocontroller sein, oder auch ein IoT-Sensor mit eingebautem Funkmodul, es gibt hier ein breites Spektrum von Geräten, die im weitesten Sinne Mikrocontroller oder Sensoren sind.
Mikrocontroller (Microcontroller Unit, MCU) sind Ein-Chip-Systeme, die aus Prozessor, Speicher und Ein- und Ausgabekomponenten bestehen und für Anwendungszwecke in ein physisches Objekt eingebettet werden, das sie steuern. Im Unterschied zu einem Computer ist ein Mikrocontroller für die Erledigung einer speziellen Aufgabe konzipiert, z.B. die Temperaturregelung eines Kühlschranks. Ein internetfähiger und mit Sensoren ausgestatteter Mikrocontroller kann seine Messdaten an einen Computer in der Cloud senden, der verschiedene Dienste bereithält, um die Daten zu speichern und zu verteilen.
Die heute angebotenen Mikrocontroller fallen grob in zwei Kategorien, AVR-Mikrocontroller (Hersteller Atmel) und ARM-Mikrocontroller (Hersteller AMD, Apple, Microchip, Freescale, Nvidia, Qualcomm, ...), wobei erstere speziell nur in eingebetteten Systemen einsetzbar sind, letztere auch in Computern.
Als Mikrocontroller für IoT-Demo-Anwendungen können z.B. ESP8266 oder ESP32 der Firma Espressif oder Raspberry Pi eingesetzt werden. Allgemeiner können beliebige MCUs für die Datenübertragung (z.B. per WLAN) aufgerüstet werden. Für IoT-Anwendungen mit hohen Sicherheitsanforderungen gibt es aktuell diverse Produktfamilien führender MCU-Hersteller wie Atmel, Nordic Semiconductor oder Texas Instruments, die speziell für IoT-Anwendungen gebaut sind und deren Anforderungen bzgl. Konnektivität und Ressourcen schon berücksichtigen.
2-2 IoT-Protokolle
In IoT-Anwendungsszenarien ist eine große Anzahl von ressourcenbeschränkten Geräten direkt mit der Cloud verbunden, über IoT-Protokolle wie HTTP, MQTT und CoAP, die Gerät-zu-Gerät-, Gerät-zu-Gateway- oder Gerät-zu-Cloud-Kommunikation ermöglichen.
HTTP wurde als Protokoll für die Übertragung von Webseiten zwischen einem Client-Browser und einem Webserver entwickelt und ist für die IoT-Datenübertragung, wo sehr viele Sensoren gleichzeitig ihre Daten an einen Server übertragen, nicht die beste Wahl. HTTP funktioniert darüber hinaus in einem unidirektionalen Request-Response-Ablauf, bei dem stets ein Teilnehmer anfragt und der andere antwortet, eine gleichzeitige Datenübertragung der Teilnehmer ist damit nicht möglich. HTTP kann trotzdem auch als Kommunikationsprotokoll bei IoT-Datenübertragung verwendet werden, nämlich dann, wenn die übertragene Datenmenge überschaubar ist und eine unidirektionale Übertragung es auch tut.
Bei der IoT-Kommunikation werden aktuell vor allem zwei Kommunikationsprotokolle eingesetzt, Message Queuing Telemetry Transport (MQTT) und Constrained Application Protocol (CoAP), sowie eine vereinheitlichende Architektur, OPC Unified Architecture (OPC UA), die zusammen den standardisierten herstellerunabhängigen Datenaustausch im industriellen Umfeld ermöglichen. Beide Protokolle sind sicher: Teilnehmer werden durch X.509 Zertifikate eindeutig identifiziert, die übertragenen Daten können verschlüsselt werden. Je nach Reichweite und Standort des Netzwerkes können auch weitere Protokolle eingesetzt werden, die Wahl des besten Protokolls hängt vom konkreten Anwendungsfall ab.
- Message Queuing Telemetry Transport (MQTT) ist ein Netzwerkprotokoll für das Internet of Things,
das für den Datenaustausch zwischen ressourcenarmen Sensoren / Geräten entwickelt wurde.
Wie funktioniert MQTT? Die Idee hinter MQTT ist, dass sendende Geräte durch "Topics" identifizierte Nachrichten
an einen zentralen Server (MQTT-Broker) publizieren, und empfangende Geräte die benötigten Informationen durch
Filtern nach Topic beim MQTT-Broker abonnieren können.
Nach erstmaligem Registrieren erhält ein Nachrichten-Konsument automatisch Updates zu den abonnierten Topics.
Diese Funktionsweise nennt man "Publish-Subscribe"-Prinzip. [MQTT]
Um MQTT praktisch einzusetzen, benötigt man eine MQTT-Broker/Server Implementierung wie Mosquitto oder HiveMQ und eine Client-Implementierung wie z.B. Eclipse Paho. Eine Übersicht aktueller MQTT-Implementierungen findet man auf der MQTT-Webseite.
- Constrained Application Protocol (CoAP) ist ein Internet-Protokoll und offener Standard (RFC 7252) der Anwendungsschicht,
der die Kommunikation zwischen ressourcenarmen Sensoren / Geräten untereinander und mit dem Internet ermöglicht,
nach den Prinzipien der REST-Architektur funktioniert und die Daten per UDP oder TCP überträgt.
Wie funktioniert CoAP? Die Idee hinter CoAP ist, dass die Ressourcen / Teilnehmer sich über Uniform Resource Identifier (URI) identifizieren.
Der Datenaustausch findet über Versenden sehr kleiner Nachrichten im Request/Response-Format statt, ähnlich wie bei HTTP.
CoAP ist die vereinfachte Version von HTTP für ressourcenarme Geräte.
[COAP]
- OPC Unified Architecture (OPC UA) ist eine standardisierte plattformunabhängige, service-orientierte Architektur für den Datenaustausch und die semantische Beschreibung von Maschinendaten. Wie funktioniert OPC-UA? Das Edge-System muss einen OPC-UA-Server enthalten, d.h. eine Software, die die OPC-UA Spezifikation für das Datenformat und die Datenübertragung implementiert. Viele Anbieter von IoT-Geräten bieten eingebettete Implementierungen des OPC-UA-Servers an, es kann jedoch auch ein eigenständiger OPC UA-Server wie Kepware verwendet werden [OPC].
2-3 Web- und Cloudtechnologien
Als Web-Technologien bezeichnet man die Sprachen (HTML, JavaScript, PHP, Python), Kommunikationsprotokolle (HTTP, HTTPS), Tools (WebServer) und Frameworks (Bootstrap, Node.js, React, Django, Flask), mit deren Hilfe Webanwendungen und Webservices erstellen werden können. Als Cloud-Technologien bezeichnet man die Gesamtheit der Technologien und Frameworks, mit deren Hilfe IT-Infrastruktur, Plattformen oder Anwendungen als Dienste aufgesetzt bzw. bezogen werden können.
Web- und Cloud-Technologien werden in einem IoT-Szenario einerseits im IoT-Gerät selbst eingesetzt, z.B. kann ein Webserver in einem IoT-Gerät eingebaut sein, dann spricht man von Edge Computing, andererseits im Rechenzentrum / in der Cloud, dann spricht man von Cloud Computing.
Edge Computing vs. Cloud Computing
In den ersten IoT-Anwendungen verfolgte man den Ansatz, sämtliche am IoT-Gerät erfassten Daten an einen Server in der Cloud zu senden
und sie erst dort zu verarbeiten, da dort mehr Rechenleistung zur Verfügung steht.
Durch die große Menge anfallender Sensordaten, die übertragen werden müssen, nur um nachher wieder
weggefiltert zu werden, wird jedoch das Netzwerk überlastet, daher wurde ein zweiter Ansatz entwickelt,
das sogenannte Edge Computing, bei dem die entsprechende Datenbereinigung und auch Datenverarbeitung
schon am Gerät erfolgt.
2-4 Datenbanksysteme und Big Data
Datenbanksysteme werden verwendet, um strukturierte und langlebige Daten auf eine konsistente
Art zu speichern und den gleichzeitigen Zugriff mehrerer Anwender zu ermöglichen.
Relationale Datenbanksysteme wie Oracle DBMS,
Microsoft SQLServer,
MySQL oder MariaDB,
die die Datenbanksprache SQL einsetzen, werden für die Datenspeicherung sicherheitskritischer Informationen eingesetzt.
Diese Datenbanken können im Cloud-Bereich einer IoT-Anwendung erfolgreich für die Datenspeicherung eingesetzt werden,
da dort ausreichend Speicherplatz und Rechenleistung zur Verfügung steht.
Bei großen Datenmengen, semistrukturierten und flüchtigen Daten stoßen diese Datenbanken
jedoch an ihre Grenzen, sie sind insbesondere in einem Edge-Computing Szenario nicht einsetzbar.
Hier werden spezialisierte Datenbanksystemen eingesetzt, sogenannte NoSQL-Datenbanken, z.B.
MongoDB oder
Redis.
3 IoT-Sicherheit
Die bekannten Schutzziele (Vertraulichkeit, Integrität, Verfügbarkeit) der IT-Sicherheit müssen auch bei der Umsetzung und im Betrieb einer IoT-Anwendung berücksichtigt werden, hier kommen im Vergleich zu herkömmlichen IT-Systemen jedoch neue Herausforderungen hinzu. IoT-Anwendungen sind verteilte und hoch komplexe IT-Systeme mit einer heterogenen Struktur, z.B. werden IoT-Geräte und Sensoren unterschiedlichster Art angebunden, mit Servern und Auswertungskomponenten am Gerät und/oder in der Cloud. Die angebundenen IoT-Geräte müssen eindeutig identifiziert und authentifiziert werden können, die Datenübertragung sollte verschlüsselt erfolgen.
Herkömmliche Sicherheitsmaßnahmen wie Verschlüsselung der Datenübertragung sind bei IoT-Anwendungen schwieriger umzusetzen, da hier die Geräte über wenig Speicherkapazität und Rechenleistung verfügen. Die erforderliche Authentifizierung und Autorisierung der IT-Geräte durch Zwei-Faktor-Autorisierung ist bei einer großen Anzahl an beteiligten Geräten und Personen mühsamer umzusetzen und wird deswegen vor allem auch für Admin-Anmeldungen eingesetzt.
4 Demonstratoren
Da die Umsetzung von IoT-Anwendungen das Zusammenspiel verschiedener Technologien der Elektrotechnik, Informationstechnik und Informatik voraussetzt, stellt sich die Frage, wie man Idee, Konzepte und Basistechnologien des IoT an einem intuitiv verständlichen Beispiel illustrieren kann.
Im Studiengang Elektrotechnik an der Hochschule Kaiserslautern werden ähnliche Demos wie die in Teil 2 vorgestellte IoT-Demo "Sensordaten" als einführendes Beispiel für IoT verwendet, da sie mit einer minimalen Zusammenstellung an Hardware- und Softwarekomponenten einen anschaulichen Anwendungsfall abbilden. Wie sieht der Anwendungsfall aus? Es geht um die Überwachung eines Raumbereichs mit Sensoren (Temperatur, Feuchtigkeit, Helligkeit), die Datenerfassung geschieht an mehreren Punkten im Raum, die Datenübertragung geschieht per WLAN. Mehrere mit Sensoren ausgestattete Mikrocontroller werden zu einem Netzwerk zusammengefasst und führen Messungen durch. Die Messwerte werden mit Hilfe des HTTP-Protokolls an einen Webserver übermittelt und in einer MySQL-Datenbank gespeichert. Aus dieser Datenbank werden die aktuellsten Messwerte ausgelesen und in einem visuell ansprechenden Dahsboard grafisch und tabellarisch dargestellt.
Ähnliche Demos sind auch in der Thingsboard Plattform veröffentlicht und können in der Lehre eingesetzt werden, z.B. hier: Temperature upload over MQTT using Raspberry Pi and DHT22 sensor.
Autoren, Tools und Quellen
Autor:
Prof. Dr. Eva Maria Kiss
elab2go Links:
Quellen und weiterführende Links:
- [1] Amazon AWS IoT Core
- [2] Google Cloud IoT Core
- [3] ThingsBoard
- [RASP] Raspberry Pi
- [ESP] Espressif MCUs
- [MQTT] MQTT Webseite: Spezifikation, Anwendungsfälle, Implementierungen, Eclipse Mosquitto MQTT Broker, HiveMQ MQTT-Broker
- [COAP] Wikipedia-Artikel "Constrained Application Protocol", RFC7252 Standard
- [OPC] OPC Foundation: OPC Unified Architecture, Was ist OPC-UA? (opc-router.de), Kepware OPC-UA Server