Controleur_led_compatible_zigbee

Contrôleur LEDs – compatible ZigBee

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.

[Total : 2   Moyenne : 5/5]

 

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é :Schema_controleur_leds_zigbee

Voici le design du premier prototype :

Board_BOT_v1.0

Partie bottom
Board_TOP_v1.0

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.

Controleur_zigbee_led Controleur_zigbee_led_face

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 !

Screenshot-philips-hue-appairage

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 :

bloc_lumineux_jaune_zigbee bloc_lumineux_rose_zigbee bloc_lumineux_blanc_zigbee bloc_lumineux_vert_zigbee

Ensuite, je suis passé sur le test d’un NeoPixel circulaire :

Neopixel_zigbee_rouge Neopixel_zigbee_bleu

Ensuite j’ai fait les tests sur un LED strip classique :

Led_strip_zigbee_vert Led_strip_zigbee_bleu

Enfin, j’ai terminé sur le test d’un panneau de LEDs (256 LEDs) 32 x 8

panneau_led_zigbee panneau_led_zigbee_2

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 :

ziglight_3d_case

https://lixee.fr/produits/28-ziglight-controleur-leds-ws2812-3770014375063.html

A bientôt !

26 comments

  1. 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 ?

  2. 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.

  3. 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?

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.