cover image
IdO

Tableau de bord avec Magic Mirror² sur Raspberry Pi

Magic Mirror² est une application open source permettant de créer des tableaux de bord pour un usage domestique ou professionnel. Elle dispose d'un vaste écosystème de plugins tiers permettant d'afficher des informations provenant de différentes sources de données. Dans cet article, je veux montrer comment configurer un tableau de bord avec Magic Mirror² sur des Raspberry Pi.

Tableaux de bord

Les tableaux de bord sont un type d'interface utilisateur graphique qui fournit une vue d'ensemble des informations utiles. Dans le cadre d'une utilisation professionnelle, ce type d'interface utilisateur inclut généralement des mesures telles que les indicateurs de performance clés (KPI). Le fait d'avoir cette vue d'ensemble des indicateurs importants permet à la direction d'agir plus facilement et plus rapidement en cas d'évolution de ces indicateurs.

Mais les tableaux de bord peuvent également être utiles à des fins privées pour afficher des informations pertinentes à la maison. Pour moi, les informations utiles sont par exemple le temps qu'il fait dans ma ville, les actualités ou simplement un message important de mon ami sur Twitter. Avec le logiciel gratuit Magic Mirror², vous pouvez construire un tel système.

Magic Mirror²

Le logiciel open source est appelé "Magic Mirror" parce qu'il a été conçu à l'origine pour un système de miroir intelligent qui affiche des informations utiles à la maison. Mais il peut aussi être utilisé sans miroir comme je vais le montrer dans cet article.

Créé à l'origine par Michael Teeuw avec les premiers commits sur GitHub en 2014, ce projet compte maintenant plus de 200 contributeurs sur GitHub et 16,6k étoiles (mai 2022). Le logiciel est construit en utilisant JavaScript et Electron.

Electron est essentiellement un navigateur adapté à la création d'applications de bureau utilisant la technologie web. Magic Mirror² dispose d'un mécanisme simple permettant aux programmeurs d'étendre et d'adapter l'application avec des fonctionnalités personnalisées. Ces extensions tierces sont appelées "modules" et il en existe une grande variété prête à être installée.

Raspberry Pi

Raspberry Pi est un ordinateur monocarte (SBC) populaire. Le projet Magic Mirror² a été spécifiquement développé pour fonctionner avec le système Raspberry Pi. En raison de la pénurie actuelle de Raspberry Pi, d'autres SBC fonctionnant sous Linux pourraient également fonctionner avec Magic Mirror². Pour les besoins de ce projet, j'utilise un Raspberry Pi 3B+.

Moniteur Samsung

Pour l'affichage du tableau de bord, j'ai acheté un moniteur Samsung. Il s'agit du modèle 24" S24A400VEU et je l'ai choisi parce que vous pouvez faire pivoter le moniteur en mode portrait et qu'il comprend par ailleurs un système audio et une webcam, ce qui pourrait s'avérer pratique à l'avenir mais n'est pas nécessaire pour le moment.

Installation de Magic Mirror²

Tout d'abord, vous devez créer le Raspberry OS sur une carte SD. Raspberry OS est le système d'exploitation recommandé pour un Raspberry Pi. D'autres versions de Linux comme Ubuntu peuvent ainsi fonctionner.

Vous pouvez utiliser l'application Raspberry Pi Imager pour écrire facilement Raspberry OS sur votre carte SD. Ensuite, vous insérez la carte SD dans votre Raspberry Pi et suivez les instructions à l'écran pour connecter votre Raspberry Pi au réseau et configurer votre clavier, entre autres. Une fois que vous avez une connexion Internet, vous pouvez installer le logiciel Magic Mirror². Vous pouvez suivre les instructions pour l'installation manuelle sur le site Web de Magic Mirror².

Pour mes besoins, je veux utiliser le système d'exploitation en mode portrait pivoté. J'ai donc réglé la rotation de l'écran dans le Raspberry OS sous le menu principal "Preferences", "Screen Configuration" et ensuite "Configure", "Screens", "HDMI-1", "Orientation" sur "left".

N'oubliez pas d'appliquer les réglages. Ils sont ensuite conservés et fonctionnent également après un redémarrage.

Installation de modules

Magic Mirror² est livré avec un certain nombre de modules préinstallés qui affichent l'heure, les vacances et les nouvelles. Dans la plupart des cas, vous voudrez personnaliser Magic Mirror² et installer d'autres modules intéressants.

Il existe une longue liste de modules tiers prêts à l'emploi qui peuvent être installés sur votre système. Une fois que vous avez trouvé un module approprié, vous devez aller dans le répertoire d'installation racine de MagicMirror sur votre système (par exemple /home/pi/MagicMirror). Le répertoire modules se trouve là où vous devez aller.

cd modules

Sur le site web GitHub du module que vous voulez installer, il y a un bouton vert "Code" et quand vous cliquez dessus, vous pouvez copier le lien HTTPS pour le clonage. En collant le lien HTTPS dans votre terminal, vous pouvez cloner le code source du module dans votre dossier modules, comme ceci

 git clone https://github.com/mrVragec/MMM-mvgmunich.git

Dans mon cas ci-dessus, j'ai installé le module MMM-mvgmunich pour le système de transport public à Munich. Vous devez adapter l'URL à votre module sélectionné. Après le téléchargement réussi du code source, vous devez installer tous les paquets JavaScript possibles via :

npm i 

Ensuite, vous devez éditer le fichier config/config.js et ajouter les propriétés de votre module. Les informations que vous devez ajouter sont décrites dans la documentation de chaque module sur GitHub. Pour le module MMM-mvgmunich, les propriétés ressemblent à ceci :

  {
        module: "MMM-mvgmunich",
        position: "top_right",
		config: {
          haltestelle: "Karlsplatz",
          maxEntries: 15,             // 10 items on screen
          updateInterval: 60000,      // 60 s
          showIcons: true,            // Show transport type icon
          transportTypesToShow: {
              "ubahn": true,            // show ubahn route
              "sbahn": true,            // show sbahn route
              "bus": true,              // show bus route
              "regional_bus": false,     // show regional bus route
              "tram": true              // show tram route
          },
          ignoreStations: [],         // destination not to be shown
          timeToWalk: 0,             // 10 min walking time to station. Default is 0
          showWalkingTime: true,     // if the walking time should be included and the starting time is displayed
          showTrainDepartureTime: true,     // show tran departure time
          trainDepartureTimeFormat: "absolute",   // format of the train departure time
          walkingTimeFormat: "relative"    // format of the walking time
        }
  }

Là, vous pouvez adapter le module à vos besoins en changeant les valeurs, par exemple je pourrais désactiver l'affichage des icônes en mettant showIcons à false.

Chaque module a des possibilités de personnalisation différentes, vous devez donc consulter la documentation.

Une fois que vous avez sauvegardé vos changements dans le fichier config/config.js, vous pouvez aller dans le dossier racine de votre installation du Magic Mirror² et exécuter:

npm run start

Une fois que vous voyez que tout va bien, vous pouvez configurer Magic Mirror² pour qu'il s'exécute automatiquement à chaque démarrage de votre Raspberry Pi.

Démarrage automatique

Lorsque vous avez besoin de démarrer automatiquement Magic Mirror² à chaque démarrage de votre Raspberry Pi, vous pouvez suivre les instructions sur le site web de Magic Mirror².

L'important est de suivre la configuration à l'aide de PM2 que vous devez installer séparément. PM2 est un gestionnaire de processus de production pour Node qui peut démarrer automatiquement Magic Mirror².

Conclusion

Les tableaux de bord peuvent être utiles non seulement pour les entreprises, mais aussi pour les particuliers. Ils facilitent l'affichage d'informations utiles qui permettent également aux particuliers de donner un sens au monde d'une manière simple. Magic Mirror², combiné à un ordinateur monocarte comme le Raspberry Pi et un écran d'ordinateur, rend cette technologie disponible pour une adoption plus large.

Références

Publié le 16 juin 2022

Creative Commons License
Cette œuvre est soumise à une licence Creative Commons Attribution 4.0 International License.
Thomas Derflinger

Écrit par Thomas Derflinger

Je suis un entrepreneur visionnaire et un développeur de logiciels. Dans ce blog, j'écris principalement sur la programmation web et des sujets connexes comme l'IdO.