Comme vous avez pu le voir dans le dernier article sur les briques lumineuses, je me suis lancé 2 défis. Le premier est d’insérer dans le contrôleur existant (un ESP32) mon propre firmware (avec l’aide de ce qui existe déjà) .
Le deuxième est de rendre les briques lumineuses (et tout ce qui est à base de WS2812) compatible ZigBee.
Et c’est ce dernier défi dont je vais vous parler dans cet article.
L’étude et la conception
Le contexte
Bon alors, bien entendu, quand j’ai eu cette idée, j’avais déjà plus ou moins réfléchi sur la faisabilité du truc. Et si je suis en train d’écrire l’article, c’est que j’ai réussi à produire quelque chose.
Comme vous le savez, je me suis mis au ZigBee depuis quelques temps et j’ai développé la ZiGate suite à un hack de la marque Xiaomi. Donc vous imaginez bien que je pars pas de zéro sur le sujet.
Ça fait un petit moment que je réfléchis à développer autre chose que le coordinateur Zigbee mais je n’avais pas encore trouvé un capteur ou un sujet qui me plaisait (hé oui, il y a déjà tellement de produit Zigbee qui existe déjà). Du coup, quand j’ai travaillé sur ces briques lumineuses, je me suis dit que c’était l’occasion de foncer sur ce projet.
La partie électronique
Bon pour effectuer les premiers tests (le POC), j’ai tout simplement pris une ZiGate.
En effet, l’électronique reste assez simple car contrairement à des capteurs classiques, je n’ai pas besoin de me préoccuper de la partie alimentation. Pas de piles et pas besoins de se creuser la tête pour économiser de l’énergie. Pour moi, cette partie est la plus contraignante.
Donc rien de bien nouveau sur ce projet, si ce n’est établir un « level-shifter » 3v-5v pour envoyer les ordres aux LEDs WS2812. En effet, la module Zigbee n’a pas d’entrées /sorties compatibles 5v. Ceci dit, les commandes en 3v fonctionnent vers les LEDs mais si vous avez un long bandeau de LEDs, cela risque de poser problème.
Voici les élément à intégrer :
- Microcontrôleur ZigBee
- Driver USB-TTL intégré
- Level shifter 3v – 5v
- Régulateur linéaire 3.3VDC
- 1 Bouton pour programmer le micro
- 1 Bouton pour effectuer un « Reset factory » Zigbee
Voici le schéma réalisé :
Voici le design du premier prototype :
Partie bottom
Partie Top
Bon j’avoue que j’ai pas super réfléchi au design pour le moment. Je voulais juste un prototype pour valider le concept.
La partie logicielle
Alors, pour la partie logicielle, comme d’habitude, je suis allé voir sur le site de NXP et sur Internet pour chercher ce qui existait déjà.
J’ai relevé 2 projets intéressant, un en ZLL (JN-AN-1171) et un autre en Zigbee 3.0 (JN-AN-1218). J’ai parcouru les 2 projets et j’ai fini par faire un mix des deux pour les raisons suivantes.
En effet, au départ, j’étais beaucoup plus séduit par la version Zigbee 3.0 car plus aboutie, il inclut un driver WS2812.
Et puis je suis tombé, en parcourant quelques sites Internet sur un projet plus ou moins similaire au mien (mais sans les LEDs WS2812) et ce qui a retenu mon attention, c’est qu’il a rendu compatible son projet avec le pont Hue de Philips.
Pour moi, ça reste un sacré atout car l’objectif reste toujours d’être le compatible le plus possible avec le marché.
De plus, ça m’a permis aussi de faire un petit rappel sur les clefs échangées en ZigBee et de trouver les clefs utilisées par le pont Philips pour intégrer les appareils en ZLL.
Conclusion, J’ai utilisé le projet ZLL (JN-AN-1171) en intégrant le driver WS2812 de l’autre projet.
Vous pourrez retrouver le code source et contribuer sur mon Github.
Réalisation et tests
Réalisation du prototype
Bon je vous passe les soudures et le passage au four mais voici à quoi ressemble le premier prototype assemblé du contrôleur LEDs Zigbee.
Bon, vous remarquerez… ou pas… mais j’ai oublié d’intégrer le 2 ème bouton permettant de faire le reset factory zigbee. Pas très grave, je rappelle que c’est un prototype donc je corrigerai et ce sera bon pour la prochaine version. (De toute manière, il y a d’autres choses à refaire 😉 )
Bien entendu avant de souder le module radio, j’ai pris la peine de tester toute la partie alimentation. C’est important, quand on développe une carte, on ne sait jamais si on s’est trompé ou pas. Il faut tester étage par étage et ne jamais tout souder d’un coup car souvent … pshhhh, ça peut cramer …
Bon là, c’est pas fou fou mais bon, par réflexe, je le fais toujours.
Conclusion, tout est bon (presque, j’avais oublié une route), on peut passer au test.
Intégration sur le pont Philips Hue
Pour commencer les premiers tests, je me suis précipité pour voir si je pouvais intégrer mon prototype au pont Philips Hue.
J’ai lancé le pont puis j’ai branché le prototype et j’ai suivi la procédure d’appairage. (Je vous laisse regarder la notice du pont Hue).
Et … bingo !
Le contrôleur apparaît avec les bons paramètres et est reconnu en tant que lumière multicolore (Extended color light).
Tests avec les LEDs WS2812
Bon maintenant que mon prototype est pilotable par mon téléphone, il ne reste plus qu’à tester sur différents supports de LEDs.
Bien entendu, le premier que je teste est le bloc lumineux hexagonal :
Ensuite, je suis passé sur le test d’un NeoPixel circulaire :
Ensuite j’ai fait les tests sur un LED strip classique :
Enfin, j’ai terminé sur le test d’un panneau de LEDs (256 LEDs) 32 x 8
Sur ce panneau, autant vous dire que vous devez vous procurer une bonne alimentation (au moins 3A) Sinon, vous aurez des couleurs qui ne correspondront pas à la couleur que vous aurez choisi.
Du coup, vous avez deux possibilités :
- soit une alimentation classique par le port micro-USB
- soit par le connecteur 3 broches.
Bien entendu, si vous voulez piloter plus de 70 LEDs, je vous recommande de ne plus passer par le port USB mais par une alimentation adaptée en utilisant le connecteur 3 points.
Conclusion
Grâce à ce petit contrôleur LEDs Zigbee, vous pouvez piloter et transformer n’importe quel objet utilisant les LEDs WS2812 en lumière pilotable à travers un pont Philips Hue ou la ZiGate.
Bien entendu, au moment où j’écris, j’utilise un prototype mais, normalement, au moment où vous lisez ceci, le produit final est surement en cours de validation ou fabrication.
N’hésitez pas à me dire ce que vous en pensez et si ce type de produit vous intéresse … mais pour ma part, je pense que je vais l’intégrer rapidement à ma domotique et plus particulièrement dans le but de faire une veilleuse pilotable pour ma fille.
D’ailleurs dans un prochain mini article, je pense que je vous montrerai comment la réaliser.
EDIT : Si vous souhaitez acquérir la version finale de ce contrôleur, vous pouvez aussi l’acquérir « tout prêt » sur la boutique :
https://lixee.fr/produits/28-ziglight-controleur-leds-ws2812-3770014375063.html
A bientôt !
Ça sera en vente quand ? 😀
Bientôt !
J’achète !!! Merci pour ton travail !
Petite question est-il possible ou envisagé de pouvoir piloter individuellement les LEDs d’un bandeau à base de WS2812 ?
Merci pour le soutien. Pour le moment, pas possible…
Prêt pour une mise en vente en complément de zigate?
Pour ma part , prêt à investir…
Merci ! Bientôt en vente
Super, une très bonne idée !
Merci !
Bonjour, est ce que cela permettrait de modifier les premières spheres Philips living colors qui n’étaient pas encore hue?
Difficile de répondre. Je n’ai pas le produit mais s’il utilise les LEDs WS2812, je pense que oui sinon non 🙂
Coucou pour info les 1er living color sont appairables au bridge hue via hack
Comme dirait De Funes: « Alors moi il m’épate. Il m’épate il m’épate il m’épate ! » 🙂
Merci, merci, merci, merci 😉
Félicitations pour ce beau boulot. Vivement qu’il soit en vente pour l’acheter et que je le présente sur mon blog.
Seb
Merci !
Génial, ca ! J’achète ! 😀
Merci !
Bravo pour ce taf, je vois déjà les applications (in)utiles que je pourrai en faire 🙂
Merci pour le soutien !
Super ^^
Un travail d’orfèvre, comme d’habitude.
Je suis aussi intéressé si tu en vends.
Cordialement
Merci !
Bonjour,
Le projet fonctionne parfaitement avec l’ambilight de Philips à l’aide d’un pont HUE.
Pour l’éclairage indirect d’un plafond, un binaire pour piloter un ruban de led monochrome serait intéressant.
Bonjour,
Je vois que le module JN5168, n’a pas fini de nous épater !
J’aime bien l’idée d’associer les 3 projets suivants :
– Teleinfo (https://faire-ca-soi-meme.fr/domotique/2016/09/12/module-teleinformation-tic/)
– Capteur T/H (https://faire-ca-soi-meme.fr/domotique/2017/02/03/capteur-temperature-humidite-wifi-sur-pile-a-moins-de-10-euros-arduino-et-jeedom/)
– Utiliser le JN5168 comme sensor/switch
Si jamais … 🙂
is this module avabile for sell ? i need 10
thank you
Bonjour
Installé avec la zigate sur Jeedom.
J’ai ‘juste’ un petit souci… Pas d’information d’état dans la liste des commandes générées. Suis je le seul?
How did you connect the controller to the Cololight panel? Did you use the external connectors (pinout?) or did you open up the panel? Thanks!
Bonjour,
Super boulot !
Est-ce compatible avec des WS2811 ? avec une séquence RBG ..?
J’ai une belle guirlande que je mettrai bien dans le jardin l’été…
Would you be willing to share your prototype PCB file? The GitHub repository has only pictures of it.
Bonjour,
J’ai des WS2811 en 12VDC, puis-je alimenter votre carte en 5VDC, ma guirlande en 12VDC, relier les masses et récupérer uniquement le signal WS2811 ?
je suis fortement intéressé par votre produit.
Bonjour,
oui ça fonctionne, je viens de faire le test. Je ne sais pas si c’est du au pilotage en 5v ou dû à mon bandeau de led mais le blanc sur 5 mètres est un peu bleuté.
Fred
Et est-il possible de modifier la séquence RGB en BGR par exemple, de mémoire elle n’est pas standart
Je viens d’en commander un 😉 pouvez-vous me répondre pour la séquence RGB / GRB / BGR ……
Bonjour,
je voulais essayer le firmware sur un JNS5168 avant d’acheter un contrôleur, mais malheureusement l’appareil n’est pas trouvé. Le micrologiciel de Peeveeone fonctionne sans problème. Quelle est la différence entre les deux?
Beaucoup de salutations
Jörg