Vous vous rappelez de la lampe de bureau USB? Cette semaine, on vous propose une variante WiFi. En effet, depuis la création de la version USB, de nouveaux modules Yoctopuce sont apparus, qui permettent de réaliser assez facilement cette amélioration.
Ces modules sont au nombre de deux: il y a bien sûr le YoctoHub-Wireless-SR, mais aussi le Yocto-LatchedRelay.
Le Yocto-LatchedRelay et le YoctoHub-Wireless-SR
Le Yocto-LatchedRelay
Le Yocto-LatchedRelay est particulièrement adapté à ce genre d'utilisation. C'est un relais bistable, il n'a donc pas besoin de courant pour maintenir n'importe laquelle de ses deux positions. De plus, il dispose d'une entrée qui permet de faire basculer le relais manuellement.
Peut-on contrôler cette lampe par WiFi?
Architecture d'une lampe de bureau
Une lampe de bureau moderne est généralement constituée d'une ampoule halogène ou à LED, d'un transformateur 12V ou d'un driver de LED et d'un interrupteur qui coupe l'alimentation. L'idée est donc de modifier la lampe de bureau en plaçant le Yocto-LatchedRelay en amont de l'alimentation, et de remplacer l'interrupteur par un bouton poussoir connecté au Yocto-LatchedRelay. Ainsi une simple pression sur le bouton poussoir permet de faire basculer le relais et donc de contrôler la lampe manuellement.
Le YoctoHub-Wireless-SR
On aurait pu s'arrêter là et obtenir une lampe contrôlable par USB bien plus simple a construire que le modèle précédent. Cependant, on a choisi de contrôler le Yocto-LatchedRelay grâce à un YoctoHub-Wireless-SR permettant de controler la lampe depuis pratiquement n'importe quel ordinateur connecté au réseau.
Proposition d'amélioration
La dernière brique qui manque est l’alimentation: Il faut du 5V pour alimenter la partie Yoctopuce, on a choisi d'utiliser un petit convertisseur AC/DC 1W.
Ce truc minuscule peut produire du 5V ~@200mA à partir de courant alternatif
Le montage
Ce bricolage est en théorie très simple, il présente cependant deux difficultés majeures. Assez curieusement il est difficile de trouver une lampe qui dispose d'assez de place dans son pied pour installer les modules Yoctopuce. La mode actuelle est, semble-t-il, aux lampes très fines.
D'autre part, le câblage doit être particulièrement soigné. On a choisi un YoctoHub-Wireless-SR pour ne pas avoir à utiliser une antenne externe. Il se trouve que commuter une alimentation électrique à l'aide d'un relais peut causer suffisamment de parasites radio pour perturber la carte WiFi du YoctoHub-Wireless-SR. Il faut donc absolument éviter de faire passer des fils à proximité de l'antenne du YoctoHub-Wireless-SR, et si possible il aussi éviter de placer le relais trop près du YoctoHub-Wireless-SR. L'installation d'un condensateur d'amortissement (snubber) à l'entrée du driver de led permet aussi de limiter le phénomène.
Ce genre de composant peut vous aider a limiter les perturbation électromagnétiques
Notez que le YoctoHub est capable de redémarrer automatiquement sa carte WiFi en cas de problème, par conséquent un problème de perturbation radio se traduit au pire par une perte de connectivité durant quelques secondes, mais autant éviter les problèmes.
Le contenu de la lampe, version Yoctopuce
Le logiciel
Une fois la lampe terminée, il reste à écrire le code pour la piloter à distance. On pourrait piloter la lampe en direct par le réseau, mais cela ne permettrait pas de la contrôler depuis n'importe où à cause des filtres NAT. On a donc choisi d'utiliser l'API par callback HTTP. A intervalle régulier, la lampe se connecte sur un serveur, notifie son état et change d'état si le serveur le lui demande. Parallèlement, le serveur offre à l'utilisateur une page web toute simple qui permet de connaitre l'état de la lampe et de le changer. L'implémentation a été faite en PHP, vous trouverez le code ici. Voici une petite vidéo qui montre la lampe en fonctionnement:
Conclusion
On a volontairement gardé ce projet le plus simple possible, mais il est possible d'ajouter un certain nombre d'améliorations: les fonctions pulse et set_maxTimeOnStateB du relais permettent de limiter automatiquement le temps pendant lequel la lampe va rester allumée. Il reste aussi deux ports libres sur le YoctoHub-Wireless-SR, on pourrait en utiliser un pour connecter un Yocto-Light et ainsi fabriquer un simulateur de présence un peu crédible.