Lorsque j’ai rénové ma maison, je voulais utiliser un éclairage LED pour réduire ma facture d’énergie.
Il est possible de mettre en place un éclairage simple avec des interrupteurs et des spots de LEDs à la place des ampoules. Il faut éventuellement des systèmes de va-et-vient s’il faut 2 interrupteurs pour une même pièce. Pour 3 interrupteurs dans une seule pièce, il faut installer des montages cage d’escalier ou des télérupteurs.
Une autre possibilité est d’utiliser un système domotique. Il existe beaucoup de solutions de domotique pour contrôler l’éclairage de la maison, les volets, le son, etc. Certains produits comme les Phillips Hue sont en particulier dédiés à l’éclairage. Ils ont l’avantage de fonctionner sans fil, c’est donc idéal pour moderniser sa maison sans casser les murs. Ces solutions sont également très complètes et intègrent par exemple la gestion de l’ambiance lumineuse et le pilotage par smartphone.
Parmi les solutions disponibles à étudier, il y a la question du prix, du type de réseau (souvent en 2.4GHz, ce qui n’es pas idéal avec des murs en pierre), du type d’éclairage, de l’ergonomie des variateurs, etc. Il faut aussi voir comment le système peut évoluer : si je veux utiliser les spots d’un constructeur mais les variateurs d’un autre, faut-il rajouter des boîtiers pour faire communiquer les deux systèmes ?
Un peu perdu dans cette jungle et sans réussir à y trouver des informations techniques facilement, j’ai préféré une solution que je maîtrise, que je peux réparer et qui fait ce que je veux (ni plus, ni moins), je l’ai donc développée.
Je n’avais que des murs nus, passer des câbles avant de mettre le placo n’était pas un problème pour moi.
Architecture globale
J’ai 21 variateurs et 44 spots à installer dans 13 pièces : je compte comme une pièce un groupe de spots qui doivent être allumés en même temps, ça inclut donc la cage d’escalier ou un couloir par exemple.
Il y a les variateurs et les spots mais il faut également un chef d’orchestre pour piloter une pièce : les contrôleurs.
Comme j’ai prévu d’avoir jusqu’à 3 variateurs pour une pièce, il fallait que le contrôleur accepte au moins 3 variateurs.
Comme un contrôleur peut piloter plusieurs pièces, il fallait aussi qu’un contrôleur puisse piloter autant de groupes de spot que de variateurs s’il y a un seul variateur par pièce.
Cela permet d’utiliser un seul contrôleur pour 3 pièces.
Je me suis donc fixé comme objectif de pouvoir connecter au moins 3 variateurs à au moins 3 sorties LED à chaque contrôleur.
Voici le schéma d’une pièce avec 3 variateurs contrôlant un groupe de 4 spots.
Les contrôleurs sont alimentés en 12 ou 24 V par une alimentation intégrée à côté du tableau électrique de la maison comme celle ci :
Les contrôleurs sont connectés aux spots et aux variateurs par des câbles électriques.
Les variateurs
Les variateurs doivent permettre de faire varier l’intensité lumineuse, j’ai choisi des variateurs rotatifs plutôt que à glissière ou à a appui continu sur un bouton « haut et un bouton « bas ».
Une fonction intéressante est de faire varier l’intensité voulue en faisant tourner le variateur mais également de pouvoir éteindre la lumière ou l’allumer à la dernière intensité définie en appuyant sur le variateur.
J’ai une autre contrainte : comme il y a plusieurs variateurs pour une même pièce, je ne peux pas utiliser des variateurs à butée, je risquerais de me trouver dans le cas ou un variateur est à fond mais que l’éclairage a été réduit par un autre variateur, il devient donc impossible d’augmenter l’éclairage avec ce variateur car lui, est déjà fond.
Ça tombe bien, il existe un composant idéale pour ce cas et en plus, il est facile à gérer par des micro-contrôleurs comme celui de l’Arduino UNO : l’encodeur rotatif (en anglais).
Ce qu’il reste à faire avec ce composant :
– l’intégrer dans un support mural
– Le connecter au contrôleur
Pour l’intégration, j’ai simplement collé l’encodeur rotatif à l’intérieur d’un cache de prise que j’ai percé :
– Le cache seul
– L’encodeur rotatif
– Le cache percé avec l’encodeur rotatif collé à l’intérieur et les connexions :
En voyant la photo de l’encodeur rotatif, je me rend compte que j’aurais pu visser l’encodeur rotatif au lieu de le coller, j’aurais dû écrire ce post avant de finir l’installation…
Les 4 broches sont :
– GND
– A et B : les deux signaux donnant le sens et la vitesse de rotation du variateur au contrôleur
– bouton : le signal indiquant si quelqu’un appuie sur le variateur
Ces 4 fils sont connectés au câble raccordé au contrôleur.
Le résultat une fois connecté est le suivant :
Et une fois fixé :
J’ai rajouté sur l’axe du variateur l’habillage réalisé avec OpenSCAD :
Il s’insère simplement en force sur l’axe du variateur, voici la face arrière :
Les sources et le STL sont disponibles : knob
Les spots
Les spots reçoivent l’alimentation 12 ou 24 V qui est déjà hachée par le contrôleur pour faire varier leur intensité.
L’électronique est donc très simple : un connecteur pour recevoir l’alimentation et deux LEDs en série.
Un fusible thermique évite la surchauffe : si la température du circuit dépasse 72 °C, le courant est fortement réduit. Après plus d’un an d’utilisation, je ne pense pas qu’il soit essentiel.
Les LED sont en série et il n’y a pas de résistance pour limiter le courant. Les LEDs utilisées, des JK3030 6-V, se comportent à peu près comme des résistances sur une plage de tension autour de 6 V, ajouter une résistance ferait donc dissiper inutilement de l’énergie alors qu’on cherche à économiser cette énergie et à éviter la surchauffe des spots. Encore une fois, après un an, je n’ai pas eu de problème lié à ce circuit.
Le routage est également très simple. Comme il y a beaucoup d’espace disponible, j’ai mis des pistes surdimensionnées.
Pourquoi cette forme bizarre ?
Pour installer le spot sur un boîtier d’encastrement standard (les mêmes que pour les variateurs ou les prises 220 V classiques).
Mettre et enlever le spot nécessite simplement de desserrer un peu les vis de maintien et de tourner le spot pour l’enficher dans les vis.
L’habillage des spots
Vive les imprimantes 3D ! L’habillage est fait en impression 3D, je lui ai juste ajouté 2 aimants pour le fixer aux vis du boîtier d’encastrement et un disque en quartz commandé sur aliexpress.
L’habillage du spot est entouré d’ailettes qui laissent passer l’air pour dissiper la chaleur mais pas la lumière directe. Il a deux supports pour y coller les aimants et un cadre pour y fixer le disque de verre ou de quartz.
Les ailettes ont un léger décrochement à l’endroit où le PCB vient se loger (à 45° par rapport aux plots des aimants).
Les aimants 6 x 1 mm en tube :
Les disques en quartz :
L’habillage est également disponible au format source OpenSCAD ou en STL : spot
Première version
Pour les spots, j’ai installé une première version qui est inutilement complexe. Avant de voir le résultat, je ne connaissais pas la luminosité d’une LED ni son échauffement. J’avais donc réalisé un circuit qui permettait de mettre 2 ou 4 LEDs :
Les résistances R1, R2 et R3 servent à choisir quelles LEDs utiliser. Je ne conseille pas ce circuit car utiliser 4 LEDs provoque un échauffement trop important, se limiter à 2 LEDs éclaire suffisamment et évite l’utilisation de résistances de 0 Ω (ou de fils).
J’avais également oublié de mettre des trous pour les connecteurs en dessous de D4…
C’est la version qui est installée chez moi et qui fonctionne mais il est possible de se simplifier la vie avec la nouvelle version qui fonctionne uniquement en 12 V.
Les rubans de LEDs
Dans la cuisine, le plafond est en béton, j’ai donc préféré ne pas percer. Une alternative aux spots est de mettre des rubans de LEDs dans des rails qui sont collés au mur.
Voici le rail blanc en alu et le cache translucide qui se clipse dedans :
Il suffit de coller ce rail au plafond, avec de la colle PU par exemple. Les ruban de LEDs ont une face adhésive à coller dans le rail :
Pour les connexions électriques, les rubans ont des pads + et – tout le long. On connecte à un bout les câbles qui viennent du contrôleur :
Et pour faire une jonction, il faut connecter le + sur + et le – sur le -, ici avec deux jonctions :
Sur cette photo, Le ruban vertical est celui connecté au contrôleur, les rubans à droite et à gauche sont alimentés par ces connexions. Un fer à souder au gaz peut être pratique pour faire les soudures une fois les rubans collés !
Le contrôleur
Le contrôleur est la dernière partie à voir.
Il est alimenté en 12 ou 24 V, il reçoit les informations des variateurs et module les spots en fonction.
Le contrôleur développé peut être connecté à trois variateurs au maximum et contrôler jusqu’à trois groupes de LED.
Ça permet par exemple de contrôler une pièce avec trois variateurs ou trois pièces avec chacune son variateur, des solutions mixtes sont possibles en configurant le firmware.
Les variateurs sont directement connectés au micro-contrôleur (un ATMEga328P comme la carte Arduino UNO), c’est le firmware qui gère tout ça.
Les spots de LEDs sont pilotés par les sorties PWM du micro-contrôleur au travers de MOSFET-N. Ces composants agissent ici comme des relais de puissance entre le micro-contrôleur qui fonctionne en 5V et qui ne peut pas délivrer beaucoup de puissance et l’alimentation 12/24V.
Le contrôleur intègre également un transceiver RS-485 et un capteur d’humidité et de température qui ne demandent qu’à être utilisés dans une prochaine version du firmware.
Un port I²C avec une broche d’interruption a aussi été prévu pour ajouter un capteur de présence par exemple.
Chaque variateur a un port dédié sur le contrôleur. Chaque groupe de LED a aussi un port dédié (+ et -) et les LEDS d’un groupe sont en parallèle.
Pour le contrôleur comme pour les spots, j’ai fait fabriquer le PCB puis soudé les composants moi même. Pour souder les composants, il est plus facile de le faire au four à refusion qu’à la main car il y a des petits composants, surtout le capteur de température et d’humidité HDC1080. De plus, comme j’avais en tête d’utiliser un four pour la soudure, je n’ai pas mis de freins thermiques, ça complique d’autant plus la soudure à la main, oh oui…
Les sources
Voici les sources du hardware et les fichiers gerber : light_board_v1
C’est la version installée mais elle a évolué. J’ajouterai ici un lien vers le gitlab quand une nouvelle version sera suffisamment propre. Ce sera bien plus pratique, surtout pour les connecteurs.
Voici les sources du firmware : light_fw
Des dents vont grincer, ce n’est pas un code Arduino mais du C++. Pour compiler et uploader le code, il faut avoir un environnement qui sait gérer des Makefile et taper « make upload ». J’ai utilisé un programmateur Olimex qui utilise le protocole stk500v2. Il est possible de porter relativement simplement ce code vers Arduino mais il y a un conflit sur le timer 1, il ne sera plus possible d’utiliser la fonction delay() d’Arduino par exemple. Il n’y a pas non plus de port USB sur la carte, il faut donc un programmateur pour charger le programme : une carte Arduino peut faire l’affaire.
Résultats
Voici deux photos prises de nuit à ISO 100 au minimum et au maximum de la puissance des LEDs :
Et voici la même expérience sur un système basé sur des rubans de LEDs au lieu de spots :
Première conclusion
J’ai installé 6 contrôleurs chez moi il y a plus d’un an et, pour des prototypes, ça fait le job !
Il reste des améliorations mais pour la vie de tous les jours, rien ne m’a poussé à retravailler le système.
J’ai donc une solution peu onéreuse : environ 4 € le variateur, 5 € le spot, 15 € le contrôleur et 50 € pour l’alimentation générale 12V 75 W.
Cette solution peut être intégrée dans un système de domotique grâce au port RS-485 et utilise un éclairage et des variateurs à personnaliser, contrairement à une solution « clés en main » qui permet moins de customisation.
C’est sûrement pas très important mais ça permet aussi d’avoir un système qui fonctionne entièrement en basse tension. Que ce soit pour mes doigts ou pour les souris, c’est toujours plus rassurant. Cela permet aussi sûrement de faire fonctionner le système sur une batterie de voiture.
6 contrôleurs à 3 entrées pour 21 variateurs, où est l’arnaque ?
J’ai dû tricher lorsque j’ai utilisé un contrôleur pour 3 pièces mais qu’une pièce a deux variateurs : ça fait 4 variateurs et c’est trop pour la version courante du contrôleur.
En fait, l’un des deux variateurs de la pièce qui a besoin de 2 variateurs a été remplacé par un bouton simple du commerce qui revient à sa place quand on le lâche.
Il est connecté dans les mêmes connecteurs du contrôleur que le signal « button » et « GND » que le variateur associé.
Le bouton du variateur et le bouton simple sont donc directement en parallèle.
Améliorations possibles
Un point gênant est qu’à basse luminosité, il y a parfois un effet de variation de luminosité sur une période d’environ 1 s sur les circuits 12 V. Cette période étonnamment longue me fait penser que c’est l’alimentation qui a du mal à réguler en étant aussi peu sollicitée. Ceci reste à vérifier et à corriger.
La version du contrôleur présentée est la première version de prototype, la 0.0.1. Elle était suffisante pour être installée directement mais quelques améliorations sont apportées par une version en cours de développement. Je ne pense pas tester cette nouvelle version à moins de retaper une nouvelle maison ou que quelqu’un soit motivé pour sa propre installation.
Hardware
- Utiliser des connecteurs à sertir pour les variateurs. Les connecteurs avec des broches à souder sont fastidieux à faire et à défaire : un seul connecteur par variateur facilite le travail
- Utilise un ATMEga328PB ou autre au lieu d’un ATMEga328P pour avoir plus d’entrées/sorties (4 variateurs et 4 sorties LEDs) et ne plus avoir à débrancher les variateurs pour permettre la programmation
- Ajouter des LEDs sur le circuit en parallèle des MOSFET de contrôle pour les tests (quitte à ne pas les installer sur le produit fini)
- Ajouter un composant pour mesurer le courant consommé pour faire du monitoring ou mettre en place des sécurités en cas de surconsommation
Firmware
- Un transceiver vers du RS-485 et un capteur d’humidité et de température sont intégrés au circuit mais je n’ai pas encore tiré profit de ces composants.
- Ajouter une communication avec un module maître pour gérer les lumières et exploiter les données des capteurs depuis une interface centralisée (Majord’home sur un Raspberry Pi ?)
- Ajouter un bootloader pour mettre à jour les modules depuis la connexion avec le module maître.
- Stocker la configuration en EEPROM plutôt qu’en dur dans le code
HTH, Mickael