Teddy Payet
CTO Freelance

MagicMirror², un miroir qui vous veut du bien.

Le “MagicMirror²” est un projet open source qui a été mis à disposition par son créateur : Michael Teeuw
Présentation : “MagicMirror² est une plate-forme modulaires open source de miroirs intelligents. Avec une liste croissante de modules installables, le MagicMirror² vous permet de convertir votre couloir ou votre miroir de salle de bains en votre assistant personnel. MagicMirror² est construit par le créateur du MagicMirror original avec l’aide incroyable d’une communauté croissante de contributeurs.”

Le matériel

Le matériel nécessaire est le suivant :

  • Un Raspberry Pi 3 (ne pas oublier une source d’alimentation) ;
  • Une carte SD de 8Go (minimum) ;
  • Un clavier ;
  • Une souris ;
  • Un câble HDMI ;
  • Un écran HDMI.

Je vous propose de voir comment installer MagicMirror² (aka MM²) sur votre Raspberry Pi 3. Bien entendu, le moment venu, vous brancherez tous les éléments les uns aux autres lorsque vous devrez vous connecter au Raspberry PI.

Installation du Raspberry Pi
Préparer une carte SD.

Il est nécessaire d’installer Raspbian sur votre carte SD pour optimiser votre utilisation du Raspberry Pi et de MagicMirror². Cette opération doit être réalisée depuis un ordinateur (Windows, Mac, Linux)

Aller sur l’url https://www.raspberrypi.org/downloads/raspbian/

Télécharger la dernière version de Raspbian (en mai 2018, Raspbian Stretch with desktop). Une fois téléchargé sur votre ordinateur, veuillez décompresser le fichier.

Avec le répertoire extrait, vous pouvez préparer la carte SD. Insérez votre carte SD dans votre ordinateur. Ouvrez votre logiciel* de gestion de disques (SD Card Formatter, Win32 Disk Imager, Utilitaire de Disques, etc.). Sélectionnez votre carte SD et lui donner un nom (de préférence sans espace ou accents pour simplifier les lignes de commandes). Référez-vous à la documentation propre à votre logiciel pour toutes ces étapes.

Sélectionnez l’image de Raspbian fraîchement extrait pour l’importer sur la carte SD. Lancez l’écriture de cette image sur la carte.

Cela fait, éjectez la carte SD.

Démarrer et configurer le Raspberry Pi

Maintenant que la carte SD est prête avec Raspbian, il est nécessaire de l’insérer dans le Raspberry Pi.

Connecter le câble HDMI à l’écran puis au Raspberry. Allumez votre écran. Branchez le clavier, la souris au Raspberry. Ne pas oublier maintenant de brancher la source d’alimentation du Raspberry.

Au premier démarrage du Raspberry Pi, cela peut prendre un peu de temps. Vous serez invité à renseigner le mot de passe pour l’utilisateur pi (soit par défaut : raspberry).

Depuis le terminal, entrez sudo raspi-config et validez. Cela lancera la configuration du Raspberry. Choisissez “Expand Filesystem” en tapant sur la touche “Entrée”. On utilisera ainsi tout l’espace de la carte SD.
Cela fait, on sélectionne “Internationalisation Options” pour choisir la langue désirée. Le faire à votre convenance : la langue, le timezone, le format du clavier, le protocole Wifi.

Maintenant, on va choisir “Advanced options”, puis “Hostname”. Par défaut, on a raspberrypi. Mais au vu du projet, on peut appeler ça magicpi. A votre convenance ici :-)

Après cela, revenir sur “Advanced options” et choisir “SSH”. Il sera utile de pouvoir une connexion SSH pour accéder au Raspberry à distance.

On devrait être bon maintenant. Revenir à l’écran principal et utiliser la touche de tabulation pour mettre en surbrillance “Finish” en bas de l’écran et cliquer sur “Entrée”. A la demande de redémarrage, cliquer sur “Yes”.

Configurer le Wifi du Raspberry Pi

Une particularité du Raspberry Pi 3 est d’avoir le wifi nativement. Il va falloir le configurer pour avoir accès à votre réseau internet.

Après le redémarrage, vous aurez un bureau graphique Linux. Lancez le Terminal, vous y configurez le wifi en éditant le fichier wpa_supplicant.conf :

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

A la fin du fichier, renseignez vos informations de connexion :

network={
   ssid="votre_nom_de_reseau"
   psk="votre_mot_de_passe_reseau"
}

Pour enregistrer votre configuration, cliquer sur CTRL-X puis sur Y.

Il faut redémarrer votre raspberry : sudo reboot.

Nettoyer et mettre à jour le système

Bon, tout cela est sympa, mais il va falloir mettre tout ce petit monde à jour et faire maigrir tout ça.

Depuis votre Terminal, taper df -h pour avoir la capacité actuelle de votre Raspberry. Notez l’espace utilisé pour le comparer.

On va supprimer quelques packages inutiles pour le MM² :

sudo apt-get remove --purge idle3 java-common libreoffice* minecraft-pi scratch nuscratch penguinspuzzle python-minecraftpi python3-minecraftpi smartsim sonic-pi wolfram-engine

Puis :

sudo apt-get clean
sudo apt-get autoremove

Cela va prendre un petit moment pour que ces opérations se terminent. Soyez patient et pas trop loin de votre écran pour valider certaines opérations. Faites à nouveau df -h dans votre terminal et remarquez le changement.

Continuons. Il est temps de mettre à jour vos packages :

sudo apt-get update ; sudo apt-get upgrade ; sudo rpi-update.
  • “update” met à jour la liste des packages disponibles et leur version ;
  • “upgrade” met à jour les packages installées ;
  • “rpi-update” va quant à lui mettre à jour le firmware du Raspberry Pi.

Respirez à nouveau et tapez sudo reboot

Installation de MagicMirror²

Le Raspberry est prêt. Alors, installons le temps attendu MagicMirror².

Il existe un script qui permettra d’installer MM² comme il se doit. Toutefois, il arrive que l’installation du package “node” pose un problème. Le script installe une version NodeJS 9.x. La version de node testée par MM² est la 5.1.0. Si vous avec une version inférieure, cela bloquera l’installation de composants node qui nécessitent eux un node 4.6.x minimum.
Il faudra faire attention à la version de NodeJS surtout si vous avez depuis un moment votre Raspberry Pi. Ce qui était mon cas. J’avais un node v4.4.2 qui forcément n’était pas au goût de MM².

Installation préalable de NodeJS

Pour y remédier, vous allez installer node en premier. Tapez ceci dans votre Terminal :

wget -O - https://raw.githubusercontent.com/audstanley/NodeJs-Raspberry-Pi/master/Install-Node.sh | sudo bash
node -v

Ce script bash installera par défaut la version NodeJS 10.x. Il est possible de changer la version de NodeJS en tapant ceci :

sudo node-install -v 9;
# then you will get prompted with which
# specific version of 9 you wish to install

Mais on n’en est pas là.

Exécution du script pour MagicMirror²

NodeJS étant installé, vous allez lancer le script d’installation de MagicMirror² :

bash -c "$(curl -sL https://raw.githubusercontent.com/MichMich/MagicMirror/master/installers/raspberry.sh)"

Cela lancera le processus d’installation pour vous. Ne partez pas trop loin du Raspberry car des validations seront à faire au fil de l’eau.

Attention, le script d’installation de MM² s’occupe déjà d’installer un NodeJS (v9.x en mai 2018). Donc, vous pourriez vous passer de l’étape précédente en réalité. Mais si vous désirez tester sur d’autres versions de NodeJS, une installation manuelle, citée précédemment, vous facilitera grandement la tâche.
Si le script de MM² détecte un node existant, il sautera cette étape et vous indiquera qu’il faudra mettre à jour node si votre version est inférieure à la version testée.

Configuration complémentaire

Le script s’est bien déroulé. Vous devez configurer quelques points complémentaires spécifiques à MM². Il faut par exemple indiquer que l’écran est à la verticale. Tapez :

sudo nano /boot/config.txt

Et ajoutez à la fin du fichier les lignes suivantes :

# Rotate display vertically
display_rotate=1

Appuyez sur CTRL-X quand vous avez fini puis Y pour sauvegarder vos modifications.
Raspbian lance un écran de veille au bout d’un certain temps. De ce fait, nous allons désactiver ceci en modifiant un fichier :

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

Ajoutez à la fin du fichier ces lignes :

@xset s noblank
@xset s off
@xset -dpms

Modifiez le fichier lightdm.conf :

sudo nano /etc/lightdm/lightdm.conf

Recherchez la ligne xserver-command en descendant plus bas. Y renseigner ces valeurs :

xserver-command=X -s 0 -dpms

Enlevez le « # » en début de ligne si besoin. Enregistrez vos modifications CTRL-X puis Y et entrée.

Pour des soucis d’économie d’énergie Raspberry désactive certains composants dont le wifi. En modifiant un paramètre dans /etc/network/interfaces, cette fonctionnalité sera ineffective :

sudo nano /etc/network/interfaces

Cherchez wlan0 et ajoutez, en-dessous, la ligne suivante :

wireless-power off

Sauvegardez vos modifications et redémarrez votre Raspberry Pi :

sudo reboot

A ce stade, vous avez configuré entièrement votre MM². Il vous faudra le personnaliser en éditant le fichier config.js et/ou en ajoutant des modules supplémentaires.

cd ~/MagicMirror/config
cp config.js.sample config.js

Et maintenant, vous pouvez l’essayer :

cd ~$HOME/MagicMirror
npm start

Enjoy !

Sources :

 
Langage et développement
Javascript
Catégorie
MagicMirror, Domotique, Lignes de commandes, Notes de développement
Statut
Personnel