Azure IoT und Wilderness Labs Project Lab

Erstellt am:

Sandro Bormolini

Sandro Bormolini
Die Informationstechnologie ist eine Branche, die sich ständig und schnell verändert und dies trifft vor allem in der Cloud zu. Neue Technologien, Programmiersprachen und Standards tauchen gefühlt fast täglich auf und das, was heute als neueste Entwicklung gilt, könnte morgen schon veraltet sein. Angesichts dieser sich ständig ändernden Landschaft ist das kontinuierliche Lernen kein Luxus, sondern eine Notwendigkeit.
Das Lernen im IT-Bereich geht jedoch über das Kennenlernen der neuesten Technologien hinaus. Es geht auch darum, zu verstehen, wie diese Technologien miteinander interagieren und wie sie genutzt werden können, um innovative Lösungen zu entwickeln. Es geht darum, neue Ansätze und Denkweisen zu erlernen, die uns dabei helfen, effektiver und effizienter zu arbeiten.
In diesem Sinne und aus grossem persönlichem Interesse habe ich mir zum Ziel gesetzt, mich im Bereich IoT und demzufolge Azure IoT fortzubilden. Um mein Ziel zu erreichen, habe ich mir vorgenommen, im Selbststudium mithilfe der Ressourcen auf der Online-Plattform Microsoft Learn die Theorie zu dem Thema anzuzeigen. Ich probiere zusätzlich ein kleines Projekt mithilfe von Azure und einem IoT-Board zu realisieren, was mir einen tiefgreifenden Einblick in diese Thematik und wertvolle praktische Erfahrung bietet und zum Abschluss versuche ich mein erworbenes Wissen auf die Probe zu stellen, indem ich die Zertifizierung zum Microsoft Azure IoT Developer anstrebe und – hoffentlich 😊- erfolgreich abschliessen.

Was ist eigentlich IoT

Das Internet der Dinge oder Internet of Things (IoT) klingt vielleicht nach einer komplexen Technologie, ist aber eigentlich eine einfache Idee. Vereinfacht kann man sicher darunter ein Netz vorstellen, das alltägliche Gegenstände miteinander verbindet. Diese Gegenstände könnten alles sein – vom heimischem Kühlschrank bis zu simplen Maschinen oder komplexen Fertigungsanlagen in einer Fabrik.
Ein praktisches Einsatzgebiet für IoT ist die Industrie, in diesem Kontext wird IoT oft als „Industrie 4.0“ oder „Industrielles IoT“ (IIoT) bezeichnet. Dies ist eine neue Phase in der industriellen Revolution, die die physische mit der digitalen Welt verbindet. Beispielsweise können Sensoren an Maschinen in einer Fabrik Daten wie Temperatur, Druck, Geschwindigkeit und viele andere Arten von Informationen sammeln. Diese Daten werden dann über das Internet an einen zentralen Ort, wie bspw. Azure gesendet, an dem sie analysiert werden können. Dies ermöglicht es den Betreibern, Muster zu erkennen, Vorhersagen zu treffen und Entscheidungen basierend auf diesen Informationen zu treffen.
Dies kann zur Verbesserung der Effizienz, zur Verringerung von Ausfallzeiten und zur Verbesserung der Produktqualität führen. Es kann auch dazu beitragen, die Sicherheit zu erhöhen, indem potenzielle Probleme erkannt werden, bevor sie zu ernsthaften Unfällen führen.
Zusammengefasst ist das IoT eine mächtige Technologie, die die Art und Weise, wie Industrien arbeiten, revolutionieren kann. Es ermöglicht eine nie dagewesene Kommunikation und Koordination zwischen Maschinen und Geräten, was zu erheblichen Verbesserungen in vielen Bereichen führen kann.

Microsoft Learn

Microsoft Learn ist eine Online-Lernplattform, die zahlreiche Lernpfade und Zertifizierungen für verschiedene Microsoft-Technologien offeriert, einschliesslich zu Azure IoT. Aufgrund meiner bisherigen positiven Erfahrungen mit der Plattform und den stets aktuellen Inhalten, habe ich mich erneut für Microsoft Learn entschieden. Microsoft Learn bietet meiner Meinung zusätzlich noch weitere Vorteile:
  • Strukturierte Inhalte: Die Plattform bietet gut strukturierte und organisierte Lernpfade. Der AZ-220 Lernpfad ist, wie alle anderen Pfade, in Module unterteilt, die jeweils ein spezifisches Thema behandeln. Dadurch werden Konzepte in einer logischen Reihenfolge klar und verständlich vorgestellt.
  • Praktische Erfahrung: Viele Module beinhalten interaktive Übungen und Labore, in denen das gelernte Wissen in der Praxis angewendet werden kann. Dies hilft, die zuvor erlernten Konzepte besser zu verstehen.
  • Flexibilität: Microsoft Learn ist online und kann zu jeder Zeit und von überall aus erreicht werden. Dies ermöglicht mir, vor allem im Kontext des Selbststudiums, in meinem eigenen Tempo zu lernen.
  • Kostenlos: Die Lerninhalte auf Microsoft Learn sind kostenlos. Dies macht es zu einer erschwinglichen Möglichkeit, neue Fähigkeiten zu erlernen und sich auf Zertifizierungsprüfungen vorzubereiten.
  • Vorbereitung auf die Zertifizierung: Der AZ-220 Lernpfad ist speziell darauf ausgerichtet, um mich auf die Azure IoT Developer Zertifizierungsprüfung vorzubereiten. Er behandelt alle notwendigen Themen und Kompetenzen, die in der Prüfung abgefragt werden.

Wilderness Labs Project Lab

Als IoT-Gerät habe ich mich für das Project Lab von Wilderness Labs entschieden, um mein IoT-Projekt zu realisieren. Einige könnten überrascht sein, warum ich mich nicht für den üblichen Verdächtigen in dieser Kategorie, das Raspberry Pi, entschieden habe. Die einfache Antwort darauf ist, dass ich bereits einige Projekte während meines Studiums mit dem Raspberry durchgeführt habe und daher eine andere Plattform ausprobieren wollte.
Mit der Entscheidung für das Project Lab von Wilderness Labs eröffnet sich für mich eine völlig neue Landschaft an Möglichkeiten. Diese Plattform verfügt über ein robustes und leistungsfähiges Microcontroller-System, das für eine Vielzahl von IoT-Anwendungen geeignet ist, von einfachen Sensoranwendungen bis hin zu komplexen vernetzten Systemen. Der Hauptvorteil des Project Lab besteht für mich darin, dass es auf .NET Standard basiert und C# verwendet, ein Tech Stack mit dem ich bereits sehr vertraut bin und schon fast als meinen Favoriten küren würde. Zusätzlich verfügt das Project Lab bereits über standardisierte Schnittstellen, Funktionsknöpfe, einen LCD-Bildschirm und für dieses Projekt nützliche Sensoren wie: Temperatursensor, Lichtsensor, Feuchtigkeitssensor, Drucksensor und vielen mehr.
Diese fehlende Ausstattung hätte ich bei einem Raspberry PI zusätzlich als externe Sensoren beschaffen müssen, was angesichts der aktuellen Lieferengpässen beim Raspberry PI eine weitere Herausforderung dargestellt hätte. Somit musste ich nur noch einen kapazitiven Bodenfeuchtigkeitssensor beschaffen und ich war somit startklar, meine erste IoT-Applikation für das Project Lab zu entwickeln. Wilderness Labs stellt ein Beispiel GitHub-Repository zur Verfügung, welches dank zahlreicher Beispiele den Einstieg erheblich erleichtert. Besonders hilfreich finde ich, dass jedes Beispiel klar strukturiert ist und einen spezifischen Aspekt des Project Lab hervorhebt. So kann man genau das Beispiel auswählen, das den aktuellen Bedürfnissen am besten entspricht.
Glücklicherweise gibt es unter den bereitgestellten Projekten eines, das mithilfe eines externen Sensors die Bodenfeuchtigkeit eines Pflanzentopfs misst – genau das, was ich benötige. Zudem gibt es ebenfalls ein weiteres Projekt, welches das integrierte WLAN-Modul verwendet, und erst kürzlich neu hinzugekommen ist ein Beispielprojekt, das Sensordaten mittels des AMQP-Protokolls von Project Lab zu Azure über den Azure IoT Hub überträgt.
Dank der genannten Beispielprojekte und gelegentlicher Unterstützung durch eine eisgekühlte Mate konnte ich relativ schnell eine Project Lab-Applikation entwickeln. Diese liest nicht nur die Daten aller integrierten Sensoren aus, sondern auch die des externen Bodenfeuchtigkeitssensors und leitet sie an Azure weiter. Zusätzlich habe ich eine einfache Benutzeroberfläche erstellt, die die Daten farbcodiert auf dem LCD-Display anzeigt. Jetzt, da ich eine funktionierende Applikation habe, kann ich mich auf die nächste Herausforderung konzentrieren: die Implementierung des Backends, sprich der Azure-Infrastruktur.

Konzept

Aufbauend auf den theoretischen Kenntnissen aus Microsoft Lean und den praktischen Erfahrungen mit dem Wilderness Labs Project Lab, habe ich die folgende Fallstudie entworfen. Die rohen Sensordaten sollen vom Mikrocontroller zu Azure übertragen werden, wo sie aufgenommen, bereinigt und normalisiert werden. Im Anschluss sollen diese Daten für eine Analyseplattform aufbereitet werden, um Einsichten und Verläufe der Sensordaten zu erlangen. Das Endergebnis ist ein System zur Überwachung der auserwählten Pflanze, das auf dem neuesten Stand der Technik basiert, so der Name des Projektes «PlantMonitor».
Das Herzstück der Lösung ist wie bereits erwähnt das Project Lab, ein leistungsstarkes Microcontroller-System von Wilderness Labs. Dieses IoT-Gerät ist mit Sensoren ausgestattet, die eine Vielzahl von Messdaten von der Pflanze erfassen kann, darunter Luftfeuchtigkeit, Temperatur, Lichtverhältnisse und zusätzlich über den externen Sensor die Bodenfeuchtigkeit des Pflanzentopfs. Die gesammelten Daten werden dann sicher und effizient an Azure übertragen.
Sobald die Daten in der Azure Cloud ankommen, kommt Azure IoT Hub ins Spiel. Dieses Cloud-Gateway ist dafür verantwortlich, die ankommenden Daten zu empfangen und für die weitere Verarbeitung an Azure Cosmos DB per definierten Route weiterzuleiten.
In Azure Cosmos DB wird jeder neue Datensatz als JSON-Dokument, durch den Change Feed Event verarbeitet. Dies bedeutet, dass jedes Mal, wenn ein neues Dokument ankommt, die ankommenden Sensordaten normalisiert und aufbereitet werden. Aber das ist noch nicht alles. Die Sensordaten werden auch mit aktuellen Wetterdaten durch Azure Maps Wetter API angereichert. Diese zusätzlichen Informationen ermöglichen eine noch genauere Analyse der Bedingungen, denen die Pflanze ausgesetzt ist.
Ein weiteres Merkmal von Azure Cosmos DB ist die Integration von Azure Synapse Link. Mit dieser Funktion wird die abschliessende Datenverarbeitung durch Azure Synapse ermöglicht. Dieses leistungsstarke Analysetool ermöglicht es, detaillierte Erkenntnisse aus den Daten über bspw. Jupyter Notebooks zu gewinnen und diese zur Verbesserung der Pflanzenpflege zu nutzen.
Insgesamt bietet diese IoT-Lösung eine simple Überwachung von Pflanzen. Durch die Kombination der Leistungsfähigkeit des Project Lab mit der Flexibilität und Skalierbarkeit von Azure kann man die Bedingungen, unter denen unsere Pflanzen wachsen, besser verstehen und optimieren. Mit dieser Technologie kann jeder einen grünen Daumen haben- oder zumindest versuchen einen zu haben 😉

Datenfluss nochmals zusammengefasst

  • Die IoT-Anwendung auf dem Microcontroller liest Sensordaten aus und sendet diese über den Cloud-Gateway Azure IoT Hub an Azure.
  • Bei der Ankunft im Azure IoT Hub wird das Paket über eine definierte Route direkt in einen CosmosDB-Container namens „telemetry“ weitergeleitet.
  • Nachdem das Paket als JSON-Dokument im „telemetry“-Container erstellt wurde, löst der Change Feed-Trigger eine Azure-Funktion aus. Diese Funktion wandelt den Base64-kodierten Payload um, strukturiert ihn neu und fügt aktuelle Wetterdaten hinzu. Das neu strukturierte Dokument wird im „plantdata“-Container gespeichert.
  • Durch die Aktivierung von Azure Synapse Link wird in der CosmosDB-Datenbank ein weiterer Container erstellt. Dieser Container normalisiert die bereitgestellten Daten aus dem „plantdata“-Container und optimiert sie für analytische Operationen.
  • Dank Azure Synapse Link ist es möglich, in Azure Synapse Analytics mittels Jupyter Notebooks Daten aus dem „plantdata“-Container abzufragen. Dies ermöglicht umfassende Einblicke in die gesammelten Sensordaten. Zudem kann mithilfe von Azure Machine Learning ein Modell erstellt werden, das Vorhersagen treffen kann, etwa wann eine Pflanze als nächstes gegossen werden muss.