Das Internet der Dinge, Internet of Things , kurz IoT, ist ein Schlagwort, dass prinzipiell gar nicht neu ist. Schließlich hat man schon bei der Überlegung, IPv6 einzuführen , daran gedacht, dass irgendwann potenziell jeder Kühlschrank und jeder Heizkörper mit dem Internet verbunden sein könnte. Allerdings war das bis vor kurzem Zukunftsmusik. Und auch jetzt ist es sicher übertrieben, von einem Massenphänomen zu reden. Fernseher, Blu-ray-Player und allmählich auch Hausautomationszentralen können zwar inzwischen online gehen, aber viele andere Geräte rund um den Alltag sind aus der Ferne oder auch nur per Smartphone nicht zu steuern. Aber wer eben nur vom Urlaubsort aus das Licht einschalten möchte, benötigt eben auch keine komplette Smarthome-Installation. Tatsächlich gibt es für solche Szenarien inzwischen ein paar Insellösungen, etwa von AVM oder Belkin, aber eben nichts Einheitliches.
Siehe auch: Innovative Projekte rund um den Raspberry Pi
Basteleien mit dem Raspberry
Der Raspberry hat sich, nicht zuletzt in Kombination mit der Arduino-Plattform, als ideale Lösung herauskristallisiert, um viele Geräte zu steuern, zu automatisieren, fernzubedienen oder abzufragen. Allerdings war das bislang auch wenig vereinheitlicht, einer der wesentlichen gemeinsamen Nenner ist Raspbian als Betriebssystem. Nun also hat sich Microsoft daran begeben, dem Thema IoT zu deutlich mehr Geltung zu verhelfen. Und zwar in Form von Windows 10 IoT Core , das jetzt inzwischen auch für den Raspberry Pi 2 erhältlich ist.

Das andere Windows
Bevor nun der große Jubel ausbricht und alle, die ungern mit Linux umgehen, sich endlich über ein Windows für den Raspberry freuen, muss man das Ganze relativieren. Denn hier bekommt der Anwender kein Betriebssystem mit Desktop, Startmenü und anklickbaren Fenstern. Das Wörtchen „Core“ sagt eigentlich sehr deutlich, womit man es hier zu tun hat: mit einem Windows 10-Kern. Das bedeutet, dass dieses Windows definitiv weniger grafische Oberfläche besitzt als ein typisches Raspbian und eigentlich vor allem dafür konzipiert ist, aus der Ferne bedient und auch installiert zu werden. Und hier gilt ebenfalls: das geht nicht wie gewohnt mit einem Doppelklick auf eine EXE- oder MSI-Datei. Hier ist Deployment aus Visual Studio angezeigt. Damit sollte klar sein, dass hier kein „normales“ Windows auf dem Raspberry läuft.

Installation
Tatsächlich ist schon die Installation nicht ganz trivial, zumindest nicht, wenn man gerade keinen Windows-10-PC zur Verfügung hat. Prinzipiell genügt es zwar, eine Win-10-Preview in einer virtuellen Maschine einzusetzen, aber auch die will erst einmal aufgesetzt sein. Haben Sie einen Windows-10-Rechner, ist die Installation sehr simpel. Sie benötigen noch eine Class-10-Micro-SDCard mit idealerweise 16 GB oder mehr Speicherplatz. Dann lädt man schlichtweg die ISO-Datei für den Raspberry von der Microsoft-Seite herunter. Sie wird im Explorer geöffnet und die einzige enthaltene Datei per Doppelklick installiert. Danach gibt es einen Ordner im App-Menü – Windows IoT – in dem sich auch der Image Helper befindet. Der ist im Prinzip selbsterklärend und spuckt am Ende eine bootfähige SD-Karte für den Raspberry aus.

Steht allerdings weder eine native noch eine virtuelle Win-10-Maschine zur Verfügung, wird es spannend. Denn dann lässt sich die Datei aus dem Image zwar sogar unter Windows 7 installieren, aber der Image Helper versagt seinen Dienst. Im Netz kursieren Python-Skripte, die aus dem etwas ungewöhnlichen Format des eigentlichen Windows 10 IoT-Images ein klassisches ISO erzeugen, das dann mit den üblichen Tools auf die SD-Karte geschrieben werden kann. Leider scheint das nicht zuverlässig zu funktionieren, aber es gibt noch eine andere Methode. Das Problem der älteren Betriebssysteme Windows 7 und Windows 8/8.1 besteht nämlich in der Version des DISM (Deployment Imaging and Servicing Management). Das bietet ein paar wichtige Funktionen nicht, die für den Image Helper wichtig sind. Dabei ist im Ordner Programme (x86) Microsoft IoTDism die neue DISM-Version bereits installiert, wenn man auch unter Win 7 oder 8 die Installation aus dem Image gestartet hat.

Um diese zu nutzen, kopiert man wahlweise die in dem Ordner enthaltenen Dateien in den ebenfalls im IoT-Verzeichnis befindlichen Ordner Ffu oder man kopiert umgekehrt die FFU-Datei in den Dism-Ordner. Wer sich Tipperei sparen möchte, der legt im Stammverzeichnis einer anderen Partition einen Ordner Dism an und kopiert alles dort hinein. So ist auch gesichert, dass es keine Probleme mit eventuell fehlenden Berechtigungen gibt.

Dann wird eine leere SD-Karte eingelegt und die Eingabeaufforderung mit Admin-Rechten aufgerufen. Hier wechselt man nun in den Ordner mit dem neuen DISM und der Image (ffu)-Datei und gibt folgende Befehle ein:
wmic diskdrive list brief
Damit werden die Nummern der physikalischen Laufwerke ausgespuckt. Hier merkt man sich die Nummer des SD-Laufwerks. Dann folgt
dism.exe /Apply-Image /ImageFile:flash.ffu /ApplyDrive:.PhysicalDriveX /SkipPlatformCheck
wobei X durch die eben ermittelte Laufwerksnummer ersetzt wird. Damit wird das Image auf die SD-Karte geschrieben. Übrigens ist genau die Funktion „Apply-Image“ eine derjenigen, die erst mit Windows 10 in den DISM Einzug gehalten haben.

Ist das Image auf der SD-Karte gelandet, funktioniert das Ganze ähnlich wie bei Raspbian : Karte in den Raspberry und dann wird gebootet. Witzigerweise hat man zunächst tatsächlich den Eindruck, es würde ganz normal Windows gestartet und am Ende gibt es sogar so etwas wie eine grafische Oberfläche. Hier lassen sich aber tatsächlich nur ein paar ganz rudimentäre Einstellungen zur Sprache und zum Netzwerk vornehmen, mehr nicht. Mehr Möglichkeiten bietet der Zugriff über den Browser. Auf dem Windows-Rechner, auf dem man das Image verarbeitet hat, wird automatisch der Windows IoT Core Watcher installiert, ein Tool, das alle Windows-Raspis in einem Netzwerk findet. Mit einem Rechtsklick lässt sich dann die IP im Browser ansprechen. Der Standardbenutzer heißt „Administrator“, das Passwort „p@ssw0rd“. Über das Webinterface lassen sich nicht zuletzt die auf dem Raspberry installierten Programme starten. Tatsächlich ist das auch die komfortabelste Art, Windows IoT Core zu bedienen, wobei sich das System auch per Konsole fernbedienen lässt. In dem Fall also konkret mittels Powershell.

Programme mit Windows und Raspberry Pi erstellen
Anders als Raspbian ist Windows IoT Core vor allem ein Entwickler-System. Programme werden mit Visual Studio erstellt und dann auf den Raspberry übertragen. Zum „Schnuppern“ bietet Microsoft allerdings schon eine ganze Reihe fertiger Projekte an, die sich so übernehmen lassen. Trotzdem ist es immer nötig, Visual Studio zu installieren; die Community Edition gibt es gratis als Download . Wichtig hierbei: Die Entwicklungsumgebung sollte definitiv auf einer Windows-10-Plattform laufen; bei Windows 8.1 lassen sich die benötigten Features zwar zur Not nachinstallieren, aber Windows 7 oder gar XP eignen sich schlichtweg nicht mehr, um das für den Raspberry nötige Visual Studio zu betreiben. Hat man Visual Studio installiert, so steht ersten Gehversuchen nichts mehr im Wege. Sinnvollerweise lädt man sich zunächst die Sammlung mit den Demo-Skripten unter github.com/ms-iot/samples komplett herunter. Wir öffnen dann Visual Studio und hierin als Beispiel das Webcam-Sample.
Tipp: Die acht typischsten Raspberry-Pi-Probleme lösen Wichtig: Vorher sollten ein Monitor, eine Maus und eine Webcam per USB an den Raspberry angeschlossen und das Gerät neu gestartet werden. Dabei sollte auch eine Netzwerkverbindung hergestellt werden.
1. Projekt laden
Hat man das Projekt nun in Visual Studio geladen, muss oben in der Menüleiste als Modus Debug ausgewählt werden, als Plattform ARM und in dem Feld daneben Remotecomputer. Diese Auswahl erfolgt über den kleinen blauen Pfeil rechts neben dem Drop- Down-Menü.

2. IP-Adresse eintragen
Dann muss noch die IP-Adresse des Raspberrys eingetragen werden (der Dialog öffnet in der Regel automatisch) und zwar ohne Authentifizierung.

3. Projekt im Raspberry starten
Wenn das geschehen ist, kann mit F5 das Projekt auf den Raspberry übertragen und dort gestartet werden. Im Falle des Webcam-Samples sieht man drei Bildfenster und vier Buttons, die nun mit der Maus am Einplatinencomputer gedrückt werden können.

4. Anpassen und finalisieren
Mit F5 beendet man zunächst die laufende Anwendung wieder und kann sie jetzt bei Bedarf nach seinen Wünschen anpassen. Ist alles zur Zufriedenheit programmiert, kann man die App auf den Raspberry spielen. Tipp: Windows 10 IoT Core kann in zwei Varianten gestartet werden, und zwar „headed“ und „headless“. Letzteres bedeutet so viel wie „ohne Bildschirmausgabe“ für Anwendungen, die anders als das Webcam-Beispiel kein User-Interface benötigen. Aktiviert wird der eine oder andere Modus via Powershell wie folgt:
net start WinRM Set-Item WSMan:localhostClientTrustedHosts -Value „ Enter-PSSession -ComputerName -Credential Administrator
Wobei die IP dann durch die des jeweiligen Raspberrys zu ersetzen ist. Anschließend wird mit
setbootoption.exe headless
oder
setbootoption.exe headed
der gewünschte Modus aktiivert. Danach ist jeweils ein Neustart nötig.

Kompatibilität mit anderer Hardware
Windows 10 IoT Core ist in Sachen Peripherie etwas wählerischer als Raspbian. Ganz besonders, was das Thema WLAN angeht, denn hier wird laut Liste nur der offizielle Raspberry Dongle unterstützt. Aber auch bei Webcams zeigt sich die Windows-Raspberry-Kombi mitunter störrisch; gute Karten hat man mit einer Microsoft-Kamera. Kein Problem dagegen ist die Anbindung eines Arduino-Boards. Das lässt sich wie unter Linux auch ansprechen, programmieren oder steuern. Ebenfalls unkritisch sind die meisten Tastaturen oder Mäuse, die zumindest im Standardmodus ohne Sondertasten fast immer funktionieren.