Depuis le début de ce projet, vous avez pu constater que toute la programmation se fait sur Arduino.
C'était alors la meilleurs solution, qui offrait la possibilité de personnaliser totalement le code (et donc le rendu), et permettait l'usage de cartes électroniques de petite taille, parfaites, donc pour les cacher dans le décor de la maquette.
Toutefois, le maintien du code était particulièrement délicat, et limité par mes connaissances imparfaites en C++ pour la programmation.
Home Assistant à la rescousse
Il y a quelques mois, un copain m'a parlé de Home Assistant.
Home Assistant est une plateforme qui permet de faire de la domotique très, très poussée à la maison.
Parmi ses fonctionnalités, il propose (entre autre) un système de gestion très avancé des ESP.
Concrètement, un code de base est injecté dans un ESP. Lorsque ce dernier est connecté à internet, via le Wifi, Home Assistant lui permet d'interagir avec tous les autres appareils (capteurs, interrupteurs, lumières...) de la maison.
C'est un projet tellement bien fait que je l'utilise désormais chez moi, pour gérer toute ma domotique.
Il m'a semblé logique que le module qui permet de gérer les ESP couplé au module permettant de programmer des automatismes, pourraient donner un environnement de contrôle très intéressant pour la maquette.
Grace aux possibilités incroyables de Home Assistant, tous les systèmes de la maquette (moteurs des attractions, lumières, musiques, effets sonores) et tous les systèmes de gestion (écrans de contrôle, boutons, curseurs) peuvent lui être confiés.
Cela implique de reprendre toute la programmation de la maquette à zéro.
Aussi, j'ai crée un environnement Home Assistant à la maison, dédié uniquement à la gestion du diorama.
Vous voyez ci dessus le code qui permet la gestion du moteur de la Grande Roue de la maquette.
En plus de proposer un ensemble de solutions poussées pour le contrôle des appareils, Home Assistant propose une interface visuelle de gestion.
Voici par exemple l'interface visuelle qui permet le contrôle manuel de la rotation de la Grande Roue.
On peut arrêter le moteur, le démarrer et régler sa vitesse de rotation.
Et là ou quelques heures étaient nécessaires pour programmer l'arduino et le shield de contrôle du moteur, tout ceci s'est fait sur Home Assistant en quelques minutes !
J'ajoute enfin que grâce aux automatismes sur Home Assistant, on peut programmer sans difficultés les séquences d'animation pour tous les éléments de la maquette.
Par exemple:
- Faire tourner la Grande Roue pendant 2 minutes
- Arrêter le moteur pendant 1 minute
- Répéter ceci indéfiniment
- Si le mode manuel est enclenché, configurer le curseur et les boutons du pupitre pour gérer le moteur de la Grande Roue
Un mode autonome va donc pouvoir aisément être mis en place pour les animations. Et en cas de besoin, le système me redonnera le contrôle via le pupitre de gestion.
C'est donc un retour au point de départ pour la programmation. Mais ce n'est que reculer pour mieux sauter: le développement va désormais pouvoir aller beaucoup, beaucoup plus vite !
Et naturellement, vous verrez ici l'évolution de cette étape de développement :)