Projet : Donner une seconde vie à une guirlande de Noël avec un ESP32 et du code sur-mesure
Plutôt que de jeter une vieille guirlande de Noël défectueuse, pourquoi ne pas la sublimer en la connectant à un microcontrôleur ? C’est le défi de ce projet open source : LED-Garland-Anim.
L’objectif est double : piloter une guirlande bipolaire (à inversion de polarité) via un pont en H, et concevoir une étoile de sapin intelligente à l’aide d’une matrice de LED RGB NeoPixel 8×8. Le tout est entièrement administrable via une interface web moderne, fluide et embarquée sur un ESP32.
Le Concept Matériel : L’art de la récup’
La plupart des vieilles guirlandes à deux fils fonctionnent de manière anti-parallèle : la moitié des LED s’allume dans un sens du courant (Direction A), et l’autre moitié dans l’autre sens (Direction B). Pour animer cela sans le boîtier d’origine, il faut pouvoir inverser le courant à très haute fréquence.
L’architecture hardware retenue :
- Le cerveau : Compatibilité multi-cartes (ESP32 Classic, Wroom, ou ESP32-S3 Mini).
- Le muscle : Un module TB6612FNG (double pont en H). Habituellement utilisé pour les moteurs de robots, il est ici détourné pour gérer la direction et l’intensité (via un signal PWM à 5 kHz) du courant injecté dans la guirlande.
- L’étoile du sapin : Une matrice NeoPixel WS2812B-64 (8×8) affichant des icônes festives animées.
- L’interaction : Un écran OLED SSD1306 (I2C) pour afficher l’IP de la maison et un capteur de mouvement (PIR ou RCWL-0516) pour réveiller le sapin automatiquement quand quelqu’un entre dans la pièce.
Une interface Web asynchrone et moderne
Pas besoin d’application mobile dédiée. L’ESP32 embarque son propre serveur web accessible directement sur le réseau local via son nom mDNS : http://garland.local.
Les points clés de l’interface :
- Zéro rafraîchissement (AJAX) : Chaque curseur de luminosité ou changement d’animation est envoyé instantanément en tâche de fond. Le site ne recharge jamais la page.
- Sauvegarde instantanée : Les configurations (vitesse, mode, luminosité) sont enregistrées en temps réel dans la mémoire non volatile (NVS) de l’ESP32. Même après une coupure de courant, le sapin redémarre sur le dernier mode choisi.
- Mise à jour sans fil (OTA) : Le micrologiciel se met à jour directement depuis le navigateur web en y glissant le fichier compilé
.bin.
Les Animations Embarquées
Le code intègre une gestion indépendante ou synchronisée de deux zones lumineuses :
- La guirlande (11 animations) : Gestion fine des alternances de polarité pour créer des effets de vagues, de clignotements et de fondus impossibles à obtenir avec le boîtier d’origine.
- La matrice 8×8 (37 animations thématiques) : Organisées par thèmes (Noël, Nouvel An, Pâques, Abstrait). Le projet inclut même un effet visuel « Radar » ultra-réaliste où un rayon vert balaie l’écran en laissant une traînée dégradée et des éclats rouges déclenchés par le mouvement.
🚀 Structure du code et déploiement avec PlatformIO
Développé en C++ standard sous PlatformIO (VS Code), le projet abandonne la structure classique d’Arduino pour une architecture modulaire et propre, facilitant la maintenance et la portabilité sur les puces ESP32-S3.
Le fichier de configuration centralisé tire parti du format INI pour isoler les dépendances et compiler le micrologiciel de manière prédictible, peu importe l’ordinateur de développement.
Le code source complet, les schémas de câblage ainsi que le guide d’installation pas-à-pas sont disponibles en accès libre sur mon dépôt GitHub.
