Introduction :
J’avais installé mon Raspberry Pi avec Raspbian, j’avais envie d’installer et d’utiliser divers composants comme Node.js et OpenZwave. Tout s’est avéré très très très compliqué avec la gestion des packages et les compatibilités : Pas moyen d’avoir quelques chose de stable.
Je suis avant tout développeur .NET C# et rien que de me dire que je vais pouvoir développer dans ce merveilleux langage (Bien ce que ce soit possible avec Linux : Mono), il n’y avait plus qu’un pas à franchir.
Allez hop, c’est parti, rien à perdre, en route vers Windows 10 IoT
Les étapes :
Je me rend donc sur le site : ici
Ok, tant qu’à faire, je choisi d’être un Insider, je m’inscrit et je télécharge l’image ISO.
Ensuite choisissez la version Windows10_IoTCore_InsiderPreview_RPi_armFRE_15026.ISO
(Ou ultérieure les choses évoluent vites).
Insérer votre micro sd dans le lecteur de carte.
Lancez l’ISO et deux minutes plus tard, le tour est joué.
On remet la micro SD dans le raspberry, on démarre.
On branche un écran et voilà :
On lance PowerShell en mode administrator.
net start WinRM
Set-Item WSMan:\localhost\Client\TrustedHosts -Value MINWINPC Enter-PSSession -ComputerName MINWINPC -Credential MINWINPC\Administrator
La seconde commande modifie la liste TrustedHosts pour le client WinRM.
La troisième commande permet de lancer la connexion au raspberry qui a par défaut le nom de MINWINPC et l’utilisateur Administrator
Une fenêtre d’ouverture de session apparait.
On tape le mot de passe par défaut : p@ssw0rd (Avec un zéro).
Il est conseillé de changer le mot de passe, voici la commande :
net user Administrator MotDePasse
Il faut ensuite se reconnecter :
Exit-PSSession Enter-PSSession -ComputerName -Credential \Administrator
Quitte à changer le password, on peut changer le nom de la bête 😉
setcomputername RaspbWinIoT
ou RaspbWinIoT est le nouveau nom, un petit reboot s’impose :
shutdown /r /t 0
Il faut maintenant se reconnecter avec le nouveau nom :
Set-Item WSMan:\localhost\Client\TrustedHosts -Value RaspbWinIoT
N’en déplaise à nos amis Linuxien Powershell n’a rien à envier à ssh. Il sera possible de tout faire d’ici. Voici une liste des commandes utiles pour WinIoT.
Après tout cela, une petite connexion HTTP, attention veuillez à renseigner le port 8080 et remplacer dans l’adresse ci dessous l’IP par celle affiché sur l’écran de démarrage de votre Raspberry (vous aurez surement quelques paramétrage à réaliser avec votre box/routeur).
Cette interface web est déjà bien complète.Au programme, les différents processus, les différents états de votre raspberry, de quoi paramétrer l’essentiel, un explorateur de fichiers, le windows update pour mettre à jour votre version et j’en passe.
Dernière possibilité d’accès, vous le voyez déjà tout en base de l’interface web, le remote access.
Vous allez sur l’onglet, vous cochez la case (rond jaune), vous cliquez sur le lien pour installer l’applicatif (incrustation dans l’image).
Il n’y a plus qu’à lancer le Window Iot Remote Client, de choisir son raspberry dans la liste et la magie opère. On retrouve l’interface visuelle de notre raspberry.
Que dire de plus, il est clair que chez Microsoft l’approche n’est pas la même. C’est avant tout fait pour vous simplifier la vie et vous permettre de vous interfacer facilement avec votre raspberry.
Evidemment tout ceci serait inutile sans une communauté, des exemples de code, …
Il vous suffit d’aller sur Microsoft Projects pour explorer un bon nombre de projets réalisés par une communauté grandissante.
Le meilleur est à venir, lorsque vous programmez dans visual studio, pour compiler et déployer son projet sur le raspberry, il n’y qu’à cliquer sur démarrer.
Vous pouvez même utiliser le debugger, mettre un point d’arrêt et tout se fait à distance comme si vous étiez en local (C’est presque magique ;)).
Conclusion :
Microsoft a beaucoup investi récemment sur les objets connectés. La dernière version du framework .NET est multi plateforme et open source. Microsoft a senti que les objets connectés allaient prendre un grand essort dans les années à venir et à judicieusement pris le pas tout en gardant son approche initiale : Faciliter la vie du développeur pour qu’il se concentre sur l’essentiel : Son code.
Force est de constater que nous avons ici toutes les bases solides pour développer de beaux projets tout en étant accompagné par un environnement nous donnant accès aux logs, aux interfaces, au debugging, …