Am 22. April war ich erneut Referent beim Global Azure Bootcamp in Köln. In diesem Jahr ging es um die Bereitstellung einer IoT-Infrastruktur durch die Geräte angebunden, verwaltet und die von diesen gelieferten Daten verarbeitet werden. Die Informationen können hierbei durch ein Workflowsystem aufbereitet und anschließend an verschiedene Dienste, vom klassischen Mailsystem, Datenbanken bis hin zu Twitterposts, weitergeleitet werden. Die Inbetriebnahme ist in knapp 20 Minuten und mit Betriebskosten von unter 100€ pro Monat machbar.

Einrichten der IoT Umgebung

Zunächst muss der IoT Hub Dienst in Azure erstellt werden. Der IoT Hub dient der Anbindung und Verwaltung von Endgeräten (oder Applikationen) die Daten an den IoT Hub senden oder Nachrichten von diesem empfangen sollen.

 

image

 

Im nächsten Schritt muss ein Event Hub Service bereitgestellt werden. Zwar bietet der IoT Hub einen eigenen Event-Endpunkt, der auch für die Annahme von Massendaten spezialisiert ist, der eher generell aufgestellte Event Hub bietet jedoch eine höhere Schnittstellenvielfalt, welche wir für die Weiterverarbeitung der vom Endgerät gelieferten Informationen benötigen. Ein Vergleich der beiden Dienste ist im TechNet aufgeführt.

 

image

 

Nachdem der Event Hub Service erstellt wurde, muss in diesem eine Event Hub Instanz erstellt werden.

 

image

 

Im Anschluss wechseln wir zurück in den zuvor erstellten IoT Hub und fügen den Event Hub als Endpunkt hinzu.

 

image

 

In den Routen des IoT Hubs geben wir nun den Event Hub als Ziel unserer Device Messages an.

 

image

 

Wie können die Gerätenachrichten verarbeitet werden?

 

Im nächsten Schritt stellen wir eine Azure Logik App bereit.

 

image

 

Die Logik App bietet viele vorgefertigte Schnittstellenanbindungen zu anderen Microsoft- und Drittanbieter-Diensten. Im Designer für Logik Apps erstellen wir für dieses Szenario eine leere Logik App.

 

image

 

Als Workflow-auslösendes System wählen wir nun den erstellten Event Hub. Das Intervall gibt an, wie häufig die Logik App auf neue Nachrichten im Event Hub prüft, die dann verarbeitet werden können.

Unter “+ Neuer Schritt” kann nun ausgewählt werden, ob die Nachrichten zunächst einer Überprüfung (man erinnere sich an eine Excel Wenn-Dann-Logik) unterzogen werden, oder direkt eine Aktion mit diesen durchgeführt wird.

 

image

 

Da die an den IoT Hub gelieferten Nachrichten standardmäßig im JSON-Format bereitgestellt werden können die von Logik App bereitgestellten Datenvorgänge zur Verarbeitung der Variablen genutzt werden.

image

Reichen die von Logik App Bereitgestellten Funktionen nicht aus, kann auch zunächst ein selbst bereitgestellter Dienst zur Weiterverarbeitung genutzt werden oder man bedient sich des Azure Logic Functions Dienstes, der einen Webserver zur einfachen programmatischen Verarbeitung ermöglicht.

image

 

In diesem Fall nehmen wir jedoch erst einmal keine weitere Verarbeitung vor und leiten die Geräte-Nachricht an den Office 365 Emaildienst weiter.

 

image

 

Einrichten des datenliefernden Endgerätes

Nun ist das Backend zur Nachrichtenverarbeitung erstellt. Wir wechseln zurück in den IoT Hub und fügen ein neues Gerät hinzu. Hierbei werden Zugangsparameter für unsere Geräte-App generiert.

Apps, die diese Anbindung nutzen sollen, können unabhängig vom Gerätessystem erstellt werden. Ob die App dabei in C# geschrieben und auf einem Windows IoT Device ausgeführt wird oder z.B. in der Kombination Java auf Linux oder Objective C auf iOS ausgeführt wird, spielt dabei keine Rolle.

Zur Erstellung einer einfachen, auf Windows basierenden (oder durch Einsatz von Mono/Xamarin auf anderen Betriebssystemen) App, kann sich im Abschnitt Erstellen einer simulierten Geräte-App des Erste Schritte mit Azure IoT Hub Artikels orientieren.

 

image

 

Ist die App gestartet, können im zurvor ausgewählten Postfach direkt die Geräte-Nachrichten eingesehen werden.

 

image

 

Fazit und Preise

Das hier aufgeführte Setup bietet die Basis für professionelle IoT-Anbindungen. Auch unser Legoroboter basiert auf diesen Diensten. Für unter 100€ pro Monat kann so bereits eine kleine IoT-Umgebung betrieben werden – der Preis skaliert dabei anhand der Anzahl der übertragenen Nachrichten und der ausgeführten Workflows. Die genutzten Dienste sind hochverfügbar, unterliegen dabei allesamt der Azure SLAs und werden nach ISO 27001 Maßstäben betrieben.

Die Vernetzung von unterschiedlichsten Geräte, Sensoren und Diensten stellt den Grundpfeiler des Industrie 4.0- & Mobility-Konzepts. Ich freue mich über Fragen und Anregungen zu den hier aufgeführten Themen!