Sebastian

Automatisation à la maison III – L’éclairage atmosphérique du lit

Dans la première partie de la série, vous avez posé les bases pour pouvoir réaliser vous-même une domotique. La deuxième partie sert d’introduction à un cadre possible pour intégrer vos propres capteurs et actionneurs dans cette automatisation avec un effort relativement gérable. Pour la troisième et, pour l’instant, dernière partie de cette série, vous construisez votre propre tableau de commande pour les applications d’éclairage, vous le programmez et vous vous inspirez de la façon dont il pourrait être utilisé dans la pratique.

Le projet

Temps nécessaire : 5h (avancé)

Vous en avez besoin :

  • La compréhension de la partie I et de la partie II
  • Bande LED, différentes options disponibles
    • Jusqu’à trois sorties PWM
    • Jusqu’à deux sorties pour, par exemple, les pixels intelligents (WS2812B)
  • Interrupteurs / éléments de contrôle
  • différents éléments
    • D1-Mini
    • 1x TXS0102
    • 2x 0,1 uF (0603)
    • Diode TVS
    • Fusible thermique
    • Fusible
    • Par canal PWM : 1x MCP1415, 1x 10 kOhm (0603), 1x 100 Ohm (0603), 1x 1 uF (0603), 1x NMOS (TO-252) par exemple IRLR8726
    • Par canal de pixel intelligent : 1x 10 kOhm (0603), 1x 2n7002 (SOT-23), 1x PMOS (TO-252) par exemple DMP3028
    • Par entrée : 1x 10 kOhm (0603), éventuellement des résistances supplémentaires pour le diviseur de tension
  • Certaines bandes de LED, notamment WS2812B, LED RGB ou monochromes
  • Station de soudage et accessoires (pinces et couteaux latéraux) pour les tailles minimales VSSOP-8
  • la carte de circuit imprimé (plus Gerber et Drillfile dans le téléchargement)
  • Diagramme d’assemblage (“InteractiveBom.html”), code et autres fichiers (téléchargement)

EzLight – Gamme de fonctions et aperçu

Pour les commandes d’éclairage, vous pouvez acheter de nombreux produits différents auprès de nombreux fabricants. Ce qui manque, c’est généralement la possibilité de les modifier ou de les adapter à vos propres besoins.

L’EzLight-Board est censée être une solution “universelle”, car elle est modulaire et basée sur un contrôleur utilisé intensivement par les bricoleurs.

Commençons tout de suite par la vue d’ensemble avec ce composant de base, l’ESP8266, qui est branché sur la carte mère sous la forme d’un D1 Mini.
Cela vous permet d’économiser le coût et l’effort d’assemblage du PCB.
Vous pouvez choisir de connecter la commande de l’éclairage au système domotique via le WLAN ou de la faire fonctionner simplement en mode autonome.
La programmation peut se faire en utilisant toutes les méthodes habituelles, du SDK Espressif à Arduino et des cadres pratiques tels que PlatformIO et ESPHome.

Trois GPIO sont prévus pour l’interaction manuelle avec le contrôleur. Deux d’entre elles (pins D0 et D8) servent uniquement de signaux numériques pour, par exemple, des boutons, des interrupteurs ou des encodeurs rotatifs.
Le troisième GPIO A0 peut être utilisé en option comme entrée analogique, permettant l’utilisation de potentiomètres numériques ou de divers capteurs.
Bien sûr, il est également possible d’utiliser ces broches comme sortie, mais gardez à l’esprit le courant maximum que chaque sortie peut fournir.

Il existe deux types de sorties différentes qui peuvent être utilisées pour le contrôle de l’éclairage. Premièrement, il existe trois sorties PWM qui peuvent être configurées soit en groupe pour une chaîne légère RGB, par exemple, soit individuellement pour trois chaînes légères monochromatiques.

Le second type est destiné aux feux contrôlés par les bus, comme le WS2812B. Deux chaînes peuvent être exploitées indépendamment l’une de l’autre.
Le convertisseur de niveau TXS0102 permet au contrôleur 3,3 V de communiquer de manière stable avec les LED tolérantes à 5 V.
Pour minimiser le courant de repos, un MOSFET par chaîne est situé dans l’alimentation en tension d’alimentation en tant que sectionneur.

Chaque puissance de sortie peut être fournie par sa propre source de tension, ce qui ne limite pas les options des LED utilisées (important : GND est fusionné, ils ont donc le même potentiel de référence).
Un contrôle de courant constant n’est pas prévu.

Les fichiers Gerber se trouvent ci-dessus sous “Le projet” dans la section de téléchargement.

Le spectacle de lumière commence

L’éclairage du lit se compose de deux éléments, une lampe de lecture le long de l’appui-tête et un éclairage d’ambiance de fond le long du bord inférieur du lit.
Dans cet exemple, il suffit donc d’équiper une sortie PWM et une sortie WS2812B (ensembles PWM1 et WSLED1).

Comme vous l’avez probablement déjà deviné, vous utiliserez ESPHome pour programmer le contrôleur. D’une part, vous voulez pouvoir le contrôler via le Home Assistant Server, mais vous voulez aussi disposer d’un bouton pour allumer et éteindre les différents feux sans smartphone.

Le téléchargement joint ci-dessus sous “Le projet” comprend un fichier de configuration générique pour ESPHome. Là, tous les éléments du matériel sont préconfigurés. Pour les lampes de lit, vous pouvez prendre ce modèle et supprimer les nœuds inutiles et ajouter d’autres fonctions.

Le fichier “bedlight.yaml” représente ma configuration, que je vais maintenant présenter brièvement en plusieurs parties.
Tout en haut, il y a la possibilité de substituer facilement des noms, de sorte que vous n’ayez pas à travailler à plusieurs endroits.

Le nœud de configuration ESPHome devrait être correct sans autre ajustement, assurez-vous simplement que votre “secret.yaml” est rempli avec les bonnes références (il y a un modèle pour cela dans les fichiers joints également).

Dans le nœud Binary Sensors, vous pouvez définir des boutons, des interrupteurs et, si nécessaire, leur effet.
Dans le cas du Bedlight, le nœud ressemble à ceci, par exemple :

binary_sensor:
  - platform: gpio
    id: button_2
    pin:
      number: D0
      inverted: False
      mode: INPUT
    internal: True
    on_multi_click:
        - timing:
            - ON for 0.1s to 0.5s
            - OFF for at least 0.6s
          then:
            - light.toggle: monochrom_1
        - timing:
            - ON for 0.1s to 0.5s
            - OFF for at most 0.4s
            - ON for 0.1s to 0.5s
          then:
            - if:
                condition:
                - light.is_on: ws_led_1
                then:
                - light.turn_off: ws_led_1
                else:
                - light.addressable_set:
                    id: ws_led_1
                    red: 0%
                    green: 0%
                    blue: 80%
                - light.turn_on: ws_led_1
    on_press:
        - delay: 1s
        - while:
            condition:
              and:
                - light.is_on: monochrom_1
                - binary_sensor.is_on: button_2
            then:
              - light.dim_relative:
                  id: monochrom_1
                  relative_brightness: -2%
                  transition_length: 0.1s
              - delay: 0.1s

Le bouton connecté à D0 est configuré ici. La variable “internal” signifie que l’état du bouton-poussoir n’est pas transmis à Home Assistant.


Dans le sous-nœud “on_multi_click”, vous définissez le comportement. Par exemple, si l’on appuie brièvement sur le bouton-poussoir (entre 0,1 et 0,5s) puis qu’on le relâche, l’état de la sortie “monochrom_1” est basculé.
En d’autres termes : nous allumons et éteignons la lumière de lecture.

Un double clic permet d’allumer et d’éteindre la lumière sous le corps (ws_led_1). Si la lumière de lecture est trop forte, la luminosité peut être réduite en maintenant le bouton enfoncé. Cette fonction est définie dans “on_press”.

Avec ces quelques lignes, vous avez mis en place un concept de fonctionnement relativement compliqué et vous pouvez contrôler les lumières !

Dans les nœuds suivants, les lumières sont définies. Comme déjà mentionné, il est possible d’utiliser l’une des deux options pour les sorties PWM:

light:
    # Comment out if not needed
  - platform: monochromatic
    id: monochrom_1
    name: ${pwmlight_1_name}
    output: pwm_1
    internal: False
    # Comment out if not needed
  - platform: monochromatic
    id: monochrom_2
    name: ${pwmlight_2_name}
    output: pwm_2
    internal: False
    # Comment out if not needed    
  - platform: monochromatic
    id: monochrom_3
    name: ${pwmlight_3_name}
    output: pwm_3
    internal: False

ou

#light:
  - platform: rgb
    id: rgb_1
    name: ${rgblight_name}
    red: pwm_1
    green: pwm_2
    blue: pwm_3
    internal: False

Le WS2812B offre également un certain nombre d’options de personnalisation.

Vous voulez ajouter vos propres effets de lumière ? Avec le nœud “effects” et la documentation, ce n’est pas un problème.

light:
  - platform: fastled_clockless
    chipset: WS2812B
    name: ${smartledlight_1_name}
    num_leds: 60
    rgb_order: GRB
    id: ws_led_1
    pin: D1
    power_supply: power_supply_ws_led_1
    effects:
      - random
      - addressable_flicker

D’autres éléments sont définis à la fin, par exemple l’affectation des broches aux sorties et la coupure de la tension d’alimentation pour WS2812B par le nœud d’alimentation.

Le résultat

Une fois que le matériel et le micrologiciel ont été préparés et que les barrettes de LED ont été installées et câblées, il ne manque plus qu’une

esphome bedlight.yaml run

et le contrôleur est programmé.

Enfin, vous configurez Home Assistant et ajoutez une intégration ESPHome avec EzLight et le spectacle peut commencer :

Laisser un commentaire

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