Auf den ersten Blick sieht es vielleicht etwas abwegig aus Windows 10 IoT auf dem Raspberry Pi zu installieren. Schließlich steht mit dem Betriebssystem Raspian eine eigens für diese Umgebung spezialisierte Linux-Variante zur Verfügung.
Interessant wird es aber, wenn man sich die Möglichkeiten des kleinen Computers und der mächtigen Windows-Umgebung genauer ansieht. Sicher, die Unterstützung von Microsoft gerade für den Raspberry Pi 3+ oder den aktuellen Raspberry Pi 4 lässt sehr zu wünschen übrig bzw. funktioniert erst gar nicht, aber der Einsatz von Windows 10 IoT bietet auch einige Vorteile.
Bei Windows 10 IoT handelt es sich nicht um ein herkömmliches Windows, denn es gibt weder einen grafischen Desktop noch die Möglichkeit, klassische Windows-Anwendungen auszuführen. Für Steuerungsaufgaben ist der Raspberry Pi aber bestens geeignet und mit der Universal Windows Platform (UWP) sind Apps auch direkt ausführbar. Das User Interface wird mit XAML deklarativ erstellt. Vielfältige grafische Optionen und eine erprobte Programmstruktur sind damit möglich. Applikationen für die UWP basieren auf .NET und damit einer leistungsfähigen Plattform. Alle Möglichkeiten der Programmierung, die für eine Applikation der UWP z.B. auf normalen PC zur Verfügung stehen, existieren auch für Windows 10 IoT. Als Entwicklungsumgebung ermöglicht Visual Studio 2017 ein effizientes Entwickeln. Die kostenlose Community-Edition reicht dazu. Nur der Entwicklungsrechner muss unter Windows 10 laufen. An den Raspberry Pi über den GPIO-Port angeschlossene Hardware kann leicht über die Applikation angesprochen werden. Dazu stellt die Entwicklungsoberfläche eine eigene Bibliothek bereit.
Notwendige Test- und Konfigurationsarbeiten am Raspberry Pi erfolgen ausschließlich remote, d.h. ohne Maus und Tastatur. Hierzu stehen verschiedene Möglichkeiten zur Verfügung: über das Webinterface, die PowerShell oder den IoT-Remote-Client. Sobald Windows 10 IoT auf dem Raspberry Pi läuft und via Netzwerk erreichbar ist, kann man eine Verwaltungsoberfläche im Browser öffnen, zu der man über die IP-Adresse des Raspberry Pi gelangt. Per Remote lässt sich der Raspberry Pi vom Entwicklungsrechner aus steuern. Das funktioniert von allen Geräten, auf denen eine Windows 10 App läuft, auch von einem entsprechenden Smartphone oder Tablet. Eine schöne Sache, um ein Bild vom Aussehen der App vom Zielgerät auf den Entwicklungsrechner zu projizieren. Ist auch Interaktion via Toucheingabe vorgesehen, kann man diese wunderbar testen, ohne den Raspberry Pi an einen externen Bildschirm anschließen zu müssen. Windows IoT Remote Client ist auch dann gut geeignet, falls der Raspberry Pi und der Entwicklungsrechner sich an unterschiedlichen Orten befinden. Die Integration in Visual Studio funktioniert dank des UWP-Konzepts wunderbar. Zum Erstellen von Apps für den Raspberry Pi und Windows 10 IoT gibt es also eine sehr brauchbare Entwicklungslandschaft.
Egal welches Anwendungsszenario Sie verfolgen: Höchstwahrscheinlich werden Daten anfallen, die gespeichert und ausgetauscht werden müssen. Beispielsweise werden Daten durch Sensoren am IoT-Gerät erfasst, die zur Auswertung auf einen Server übertragen werden müssen. Also lautet die Frage: Wohin mit den Daten? Die zeitgemäße Antwort: In die Cloud! Außer vielleicht einer Zwischenspeicherung auf dem IoT-Gerät – beim Raspberry Pi im Arbeitsspeicher oder auf der SD-Karte – werden die Daten in der Cloud gespeichert. Auch hier muss man nicht bei null anfangen. Beispielsweise steht mit dem Microsoft Azure IoT Hub eine leistungsfähige und umfassende Plattform zur Verfügung, um IoT-Geräte an eine in der Cloud gehostete Datenwelt zu binden. Der Azure IoT Hub wird damit zur zentralen Schnittstelle, um die IoT-Devices zu verwalten. Ebenso wird über den IoT Hub der gesamte Datenaustausch abgewickelt. Das gilt für das Senden von Nachrichten aus der Cloud an die Geräte, wie auch umgekehrt, also das Empfangen von Daten von den Devices. Auf den umfangreichen Dokumentationsseiten des Portals von Azure IoT finden sich viele einführende Beispiele, wie man dazu im Einzelnen vorgeht. Zu einem ist über das Dashboard der IoT Hub zu konfigurieren und u. a. auch das Preismodell festzulegen; außerdem muss Code für das IoT-Gerät geschrieben werden. In unserem Fall geschieht das in C#, da wir mit Apps für die UWP und Windows 10 IoT arbeiten. Mit Windows 10 IoT und dem Raspberry Pi sind Sie keineswegs auf Azure festgelegt. Sie können natürlich auch andere Cloud-Dienste nutzen oder Ihr eigenes Backend bzw. Ihren eigenen Server ansprechen. Da auf Windows 10 IoT mit der UWP die gesamte Bandbreite der Systembibliotheken von .NET Core zur Verfügung steht, gibt es hier keine Einschränkungen.
Fazit:
Die Kombination Raspberry Pi und Window 10 IoT bietet den perfekten Rahmen spielerisch das Internet-der-Dinge zu erforschen, Hardware-Kenntnisse in elektronischen Schaltungen zu vertiefen und moderne Programmiertechniken zu erlernen.