Windows IoT

Über das Internet of Things wird schon einige Zeit umfangreich geschrieben und gebloggt. Allerdings versteht jeder etwas anderes darunter. für den einen sind es kleine Maker-Geräte, die nun auch mit dem Internet kommunizieren könne. Andere sprechen eher von Produktionsgeräten in Firmen, die über das Internet miteinander kommunizieren. Wieder andere sehen in der Hausautomatisation ihr Heil. Letztlich soll es wohl nur heißen, dass ein "Ding" (Thing) über IP mit etwas anderem im Internet kommuniziert.

Das "Ding" ist aber aber eher kein PC, da er mit einem vollen Betriebssystem, kurzen Entwicklungszyklen und höheren Kosten sicher nicht in jeder Waschmaschine verbaut werden wird.

Windows und IoT

Dennoch will natürlich auch Microsoft diesen Markt nicht ganz den Linux-Freaks oder Arduino-Jüngern überlassen sondern durchaus mitspielen. In Zeiten, in denen eine Windows Phone unter 100€ zu erhalten ist und im Gegensatz zu Arduino und Co auch schon ein Netzteil, GSM, WiFi, Bluetooth, (USV-)Akku und Touch-Display mitbringt, kann man natürlich auch damit schon steuern und regeln. Ein Windows Phone als "Gehirn" eines IoT-Device mit Bluetooth zum Außenkontakt scheint nicht unrealistisch zu sein.

Aber Microsoft ist mit Windows 10 noch weiter gegangen und vertreibt ein "Windows 10 IoT" für verschiedene Kleincomputer. Bitte verwechseln Sie dieses "Windows 10" nicht mit dem richtigen Windows. In der Regel gibt es hier keine Maus, kein Display o.ä. Es ist ein sehr abgespecktes Core-System, auf dem aber mit den gleichen Werkzeugen entwickelt werden kann, mit denen auch Software für ein "großes" Windows entwickelt wird.

Windows IoT möchte damit die Einstiegshürde möglichst gering halten.

Devices

Ich versuche hier eine Liste der Geräte aktuell zu halten, für die es Windows IoT gibt oder zumindest mal geben soll. Da ich leider selbst damit aktuell keine Projekte habe.

Board Links

Raspberry Pi 2 und PI 3

Achtung: Dies ist nicht der RasPI der ersten Generation.

Meines Wissens läuft Windows IoT auch nicht auf dem Raspi 4

DragonBoard 410c

Interessantes Board auf Basis der Snapdragon CPU

MinnowBoard MAX

Hier spiel Intel mit einer ATOM-CPU mit.

Intel Joule

Ich denke, dass die Liste hier weiter wachsen wird.

Aller Anfang ist .. anders

Windows IoT ist irgendwie ein "Windows" aber eine grafische Oberfläche, Maus und Fenster sollten Sie nicht erwarten. Das geben die System so gar nicht her und ist auch nicht das Ziel. Interessant ist Windows IoT, weil im Kern zwar ein Windows läuft aber vor allem auch die Entwicklung mit Visual Studio 2015 Community Edition auf Windows 10 erfolgen kann. Windows 10 (10.0.10240 oder neuer) ist aber auch die Mindestvoraussetzung. Je nach Board wird Windows IoT als Image aus einen Flash-Speicher geladen von von einem Speicher installiert. Microsoft hat dazu einen schönen Assistenten gebaut:

  • Get Started
    https://developer.microsoft.com/en-us/windows/iot/getstarted 
    Hier wählen Sie die Hardware aus, um dann durch die weiteren Schritte geführt zu werden. Beim RasPi2 kann man zwischen einer Installation mit NOOPS oder auf einer leeren Speicherkarte wählen. Dazu nutzt Windows IoT auf dem Windows 10 PC ein Dashboard ( 50 MMB), welches die Dateien herunterlädt und auf eine Speicherkarte bringt.

    Windows IoT sind ca. 600 Megabyte. Als SD-Karte sollten sie eine "bessere" Karte nehmen, die ausreichend schnell und haltbar ist. Alternativ Können sie das ISO-File auch manuell herunter laden

Windows IoT Iso für RasPi (ca. 500MB)
http://go.microsoft.com/fwlink/?LinkId=616847
Windows Insiders“: https://developer.microsoft.com/en-us/windows/iot/Downloads.htm

Alternativ können Sie auch das komplette Paket herunterladen und das ISO-File auspacken. Darin ist eine MSI-Datei die auf ihrem PC dann ein Tool zum Erstellen einer FlashDisk und WindowsIoT Core Watcher nach "C:\Program Files (x86)\Microsoft IoT" installiert und das Image-File für die SD-Karte auf C:\Program Files (x86)\Microsoft IoT\FFU\RaspberryPi2\flash.ffu ablegt.

Das funktioniert allerdings nicht auf Windows 7. Es muss schon ein Windows 10 PC sein, damit DISM das Image schreiben kann.

Damit können Sie dann zuerst die SD-Karte beschreiben:

  • Windows Device starten
    Stecken Sie die Speicherkarte in den RasPi und booten sie Windows. Eine Tastatur und Maus kann hilfreich sein, wenn Sie doch noch etwas bezüglich des Netzwerks einstellen müssen.
  • Konfiguration
    Ihr Windows 10 IoT Device sollte im LAN/WLAN sein und eine IP-Adresse bekommen haben. Über einen Browser kommen Sie auf die Einstellungen unter http://<ipadresse>:8080

Es ist also schon "etwas" anders als ein klassische Windows. Den klassischen Taskmanager oder die Startleiste gibt es so auch nicht und Office bekommen Sie auch nicht installiert, das es keinen Win32 UI stack auf IoT Core gibt. Programme mit einem User Interface (UI) müssen daher auf Basis der Universal Windows Platform (UWP) erstellt werden. Aber Windows IoT hat einen SMB-Server an Bord. Mit dem User "Administrator" und dem ihnen bekannten Kennwort können Sie sich mit dem Dateisystem mit einer Freigabe C$ verbinden.

Programmieren

Microsoft empfiehlt natürlich Visual Studio als Entwicklungsumgebung für Windows IoT. Verpflichtend ist dies natürlich nicht. Von Hause aus unterstützt Windows IoT die Sprachen C#, C++, JavaScript und Visual Basic. Wer zusätzlich noch die "“Windows IoT Core Project Templates" für Visual Studio installiert, kann zur Entwicklung auch "Arduino Wiring, Node.js und Python nutzen.

Windows IoT Core Project Templates
https://visualstudiogallery.msdn.microsoft.com/55b357e1-a533-43ad-82a5-a88ac4b01dec 

Entsprechende Anleitungen zum Einstieg je Programmiersprache hat Microsoft auch bereit gestellt

Nach der Installation der "Windows IoT Core Project Templates" für Visual Studio erscheinen dort für die verschiedenen Sprachen die neuen Projekte:

Sie sehen hier aber auch, dass es "Background-Applications" sind. Für eine Applikation mit einer UI benötigen Sie die Universal Apps,

Beispiele

Natürlich gibt es auch für die Windows IoT-Plattform entsprechenden Beispiele die beim "blinkenden Licht" anfangen. Hier findet eigentlich jeder ein paar Ansatzpunkte, sei es in C#, C++, Python, Note.JS oder Wiring.

Bei vielen Projekten gerade mit Touch-Bildschirmen frage ich mich aber schon, on da ein günstiges Windows 10 Tablet mit per USB oder WLAN, Bluetooth, 433MHz o.ä. angeschlossenen Aktoren und Sensoren nicht unterm Strich günstiger, flexibler und danke Funk auf elektrisch unkritischer umgesetzt werden könnten. Sie sollten sich also wirklich genau die verschiedenen Plattformen anschauen. Beginnent bei ganz günstigen PIC-Prozessoren, ESP8266 SoC, Arduino über RaspberryPI oder noch größere Systeme.

YouTube Serie

Wer nicht lesen will, kann auch zuschauen:

Scott Hanselmann hat auch einen interessanten Vortrag zu IoT

Scott Hanselman’s best demo! IoT, Azure, Machine Learning & more
https://www.youtube.com/watch?v=u5oTz1e5qqE

Weitere Links