Was ist das Internet of Things?

Der Übersichtsartikel "Was ist das Internet of Things?" erklärt an einem einfachen Beispiel, was das Inter­net 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 (Kommunikations­protokolle 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.


IOT Anwendungen

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:



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.

IoT-Architektur

1. Edge-System:
Das Edge-System umfasst die Geräte-Schicht, d.h. die smarten IoT-Geräte mit Sensoren, Aktoren und Controllern.

IoT-Geräte aus Sicht des Endandwenders sind "intelligente" Geräte, die einerseits auf ihr Umfeld reagieren, andererseits mit dem Internet in Verbindung stehen und untereinander kommunizieren, zum Beispiel Smart Watches. IoT-Geräte aus Sicht des Ingenieurs oder Entwicklers sind Mikroprozessoren mit Sensoren und Aktoren, die mit einem Programm versehen werden, um bestimmte Aufgaben ausführen zu können, und anschließend in ein Endgerät eingebaut werden.

2. Netzwerk:
Das Netzwerk ist verantwortlich für die Datenübertragung von den IoT-Geräten zu einer zentralen Plattform in der Cloud.

Für den Datenaustausch zwischen IoT-Geräten untereinander und mit dem Internet werden standardisierte Kommunikationsprotokolle wie HTTP, MQTT oder CoAP verwendet.

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.

IoT-Plattformen wie Amazon Web Services (AWS) IoT Core, Google Cloud IoT, Bosch IoT Suite bilden die Kern-Funktionalität einer IoT-Anwendung in vorgefertigten und konfigurierbaren Komponenten an. Eine Vielzahl von IoT-Plattformen werden für den kommerziellen Gebrauch angeboten, darunter auch die oben genannten von Amazon, Google und Bosch, einige IoT-Plattformen wie ThingsBoard sind jedoch auch quelloffen und in der kostenlosen Community-Edition frei verfügbar.

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:

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.

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: