Outils pour utilisateurs

Outils du site


fr:domotique:garagebox

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:domotique:garagebox [2025/02/18 10:53] – modif code radar kodeinfr:domotique:garagebox [2026/03/15 11:19] (Version actuelle) – [Test002 ESPHome : ajout LTR390] oubli remplacer 2 par 3 kodein
Ligne 1: Ligne 1:
 ====== Pourquoi domotiser son garage ====== ====== Pourquoi domotiser son garage ======
 +
 Comme dirait William : //"Et pourquoi pas ?"// LOL Comme dirait William : //"Et pourquoi pas ?"// LOL
  
Ligne 22: Ligne 23:
  
 Mais dans ce cas, il sera nécessaire de trouver des solutions techniques pour pouvoir mettre des capteurs et actionneurs dans et hors des box. Mais dans ce cas, il sera nécessaire de trouver des solutions techniques pour pouvoir mettre des capteurs et actionneurs dans et hors des box.
 +
 ===== Choix technologiques ===== ===== Choix technologiques =====
 +
 A l'origine, je penchais pour une option à base de modules tout fait zigbee. **Mais** une grande majorité de ces capteurs sont alimentés par piles et ça me gonfle un peu de les remplacer tous les X temps pour que ça continue à fonctionner. Une solution serait de les modifier pour les alimenter par batterie et panneau photovoltaïque, mais ça complexifie beaucoup le système et pour les éléments à l'extérieur, il faut s'assurer que ça reste étanche.\\ A l'origine, je penchais pour une option à base de modules tout fait zigbee. **Mais** une grande majorité de ces capteurs sont alimentés par piles et ça me gonfle un peu de les remplacer tous les X temps pour que ça continue à fonctionner. Une solution serait de les modifier pour les alimenter par batterie et panneau photovoltaïque, mais ça complexifie beaucoup le système et pour les éléments à l'extérieur, il faut s'assurer que ça reste étanche.\\
 Donc je me suis penché sur d'autres options et ce qui me semble le plus simple serait une solution à base de [[https://esphome.io/|ESPHome]].\\ Donc je me suis penché sur d'autres options et ce qui me semble le plus simple serait une solution à base de [[https://esphome.io/|ESPHome]].\\
Ligne 31: Ligne 34:
 Une autre option serait d'abandonner ESPHome, de continuer avec des ESP32, mais de la gamme C6 (haute performances) et H2 (très basse consommation électrique) qui sont compatibles Zigbee. Ça demande un peu plus de travail, mais ça a l'avantage de s'intégrer au réseau mesh zigbee déjà existant de la maison. Et si c'est bien fait, de se comporter comme des modules "classiques", donc être intégrable avec n'importe quel central domotique zigbee.\\ Une autre option serait d'abandonner ESPHome, de continuer avec des ESP32, mais de la gamme C6 (haute performances) et H2 (très basse consommation électrique) qui sont compatibles Zigbee. Ça demande un peu plus de travail, mais ça a l'avantage de s'intégrer au réseau mesh zigbee déjà existant de la maison. Et si c'est bien fait, de se comporter comme des modules "classiques", donc être intégrable avec n'importe quel central domotique zigbee.\\
 De plus ces deux modèles sont aussi compatibles Matter. Si jamais je migre vers ce système, il serait toujours possible de reflasher un nouveau firmware pour exploiter ce nouveau système. De plus ces deux modèles sont aussi compatibles Matter. Si jamais je migre vers ce système, il serait toujours possible de reflasher un nouveau firmware pour exploiter ce nouveau système.
 +
 +Mais dans un premier temps, on va choisir la solution la plus simple : ESP Home !
 +
 ===== Choix matériel électronique ===== ===== Choix matériel électronique =====
 +
 Je me suis basé sur le listing du site ESPHome et effectué mon choix d'après les fonctionnalités décrites et la disponibilité à bas coût de modules sur les internets.  Je me suis basé sur le listing du site ESPHome et effectué mon choix d'après les fonctionnalités décrites et la disponibilité à bas coût de modules sur les internets. 
 +
 === Core === === Core ===
 +
 <gallery left&nocrop&200x200&lightbox>:domotique:esphome:esp32.png Photo d'un devboard d'ESP32</gallery>Une carte de développement ESP32 Wifi/BLE (normalement, il y a moyen de toutes les exploiter avec ESPHome). <gallery left&nocrop&200x200&lightbox>:domotique:esphome:esp32.png Photo d'un devboard d'ESP32</gallery>Une carte de développement ESP32 Wifi/BLE (normalement, il y a moyen de toutes les exploiter avec ESPHome).
  
Ligne 41: Ligne 50:
  
 Certains modèles possèdent un connecteur ipex permettant d'utiliser une antenne plus imposante que celle intégrée au pcb et surtout permettant de la déporter pour améliorer la réception du signal. Ce genre de modèle me semble plus adapté pour mon usage. Certains modèles possèdent un connecteur ipex permettant d'utiliser une antenne plus imposante que celle intégrée au pcb et surtout permettant de la déporter pour améliorer la réception du signal. Ce genre de modèle me semble plus adapté pour mon usage.
 +
 === Capteur lumière et UV === === Capteur lumière et UV ===
 +
 <gallery left&nocrop&200x200&lightbox>:domotique:esphome:ltr390.png Photo d'un module LTR390</gallery>Un capteur LTR390 pour mesurer la luminosité ambiante, ce capteur permet aussi de mesurer le rayonnement UV. <gallery left&nocrop&200x200&lightbox>:domotique:esphome:ltr390.png Photo d'un module LTR390</gallery>Un capteur LTR390 pour mesurer la luminosité ambiante, ce capteur permet aussi de mesurer le rayonnement UV.
 C'est grace à lui que le core va pouvoir vérifier si la luminosité ambiante justifie l'allumage du spot extérieur. C'est grace à lui que le core va pouvoir vérifier si la luminosité ambiante justifie l'allumage du spot extérieur.
  
 Connecté sur le BUS I²C. Connecté sur le BUS I²C.
 +
 === Capteur de présence === === Capteur de présence ===
 +
 <gallery left&nocrop&200x200&lightbox>:domotique:esphome:ld2420.png Photo d'un module LD2420 avec ses antennes intégrées au PCB</gallery>Le LD2420 permet non de détecter les mouvements, mais de détecter la présence de trucs qui sont pas là habituellement en utilisant des ondes radios. Il est possible de régler la puissance (donc la distance de détection), la sensibilité ainsi que de calibrer le radar via ESPHome. <gallery left&nocrop&200x200&lightbox>:domotique:esphome:ld2420.png Photo d'un module LD2420 avec ses antennes intégrées au PCB</gallery>Le LD2420 permet non de détecter les mouvements, mais de détecter la présence de trucs qui sont pas là habituellement en utilisant des ondes radios. Il est possible de régler la puissance (donc la distance de détection), la sensibilité ainsi que de calibrer le radar via ESPHome.
 Comme c'est un détecteur de présence, le timer est moins utile : tant que quelqu'un est détecté dans la zone, la lampe peut rester allumée. Je vais quand même mettre un délais à l'extinction, histoire de ne pas faire guirlande de noël quand on bosse à la bordure de la zone de détection. Comme c'est un détecteur de présence, le timer est moins utile : tant que quelqu'un est détecté dans la zone, la lampe peut rester allumée. Je vais quand même mettre un délais à l'extinction, histoire de ne pas faire guirlande de noël quand on bosse à la bordure de la zone de détection.
  
 Connecté en UART et/ou GPIO qui remonte uniquement si une présence est détectée ou non (mais ne permet pas de toucher aux paramètres, ni la remontée d'infos supplémentaires). Connecté en UART et/ou GPIO qui remonte uniquement si une présence est détectée ou non (mais ne permet pas de toucher aux paramètres, ni la remontée d'infos supplémentaires).
 +
 === Capteur température, pression et humidité === === Capteur température, pression et humidité ===
 +
 <gallery left&nocrop&200x200&lightbox>:domotique:esphome:bme280.png Photo d'un breakout board BME280</gallery>Un capteur BME280 permet de collecter des informations météorologiques. Pas du tout essentiel pour le bon fonctionnement de cette installation, mais le module est assez peu cher. Il me semble donc sympathique d'ajouter ces fonctions pour remonter plus d'infos au serveur Home Assistant. <gallery left&nocrop&200x200&lightbox>:domotique:esphome:bme280.png Photo d'un breakout board BME280</gallery>Un capteur BME280 permet de collecter des informations météorologiques. Pas du tout essentiel pour le bon fonctionnement de cette installation, mais le module est assez peu cher. Il me semble donc sympathique d'ajouter ces fonctions pour remonter plus d'infos au serveur Home Assistant.
  
 Connecté en I²C. Connecté en I²C.
 +
 === Actionneur lumière === === Actionneur lumière ===
 +
 <gallery left&nocrop&200x200&lightbox>:domotique:esphome:relay3_3-230.png Photo d'un module relais</gallery>Au moins un relais dont la commande puisse se faire en 3.3v et dont les contacts permettent de piloter du 230V. Bien des modules de ce genre sont disponibles sur les différentes plateformes de vente. La plupart sont isolés par des optocoupleurs, ce qui permet de protéger le MCU de tout mauvais fonctionnement de la partie basse tension (230V). <gallery left&nocrop&200x200&lightbox>:domotique:esphome:relay3_3-230.png Photo d'un module relais</gallery>Au moins un relais dont la commande puisse se faire en 3.3v et dont les contacts permettent de piloter du 230V. Bien des modules de ce genre sont disponibles sur les différentes plateformes de vente. La plupart sont isolés par des optocoupleurs, ce qui permet de protéger le MCU de tout mauvais fonctionnement de la partie basse tension (230V).
  
 Connecté sur un GPIO. Connecté sur un GPIO.
 +
 ====== Essais ====== ====== Essais ======
-J'ai acheté "un peu" de matériel pour réaliser plusieurs montages en parallèle et pouvoir les tester sans devoir démonter un pour faire l'autre.+ 
 +J'ai préféré acheter "un peu trop" de matériel et avoir du surplus pour d'autres projets plutôt que de ne prendre que le strict nécessaire :
   * 5 ESP32 "classiques" avec connecteur antenne ipex   * 5 ESP32 "classiques" avec connecteur antenne ipex
   * 1 ESP32-C6 (zigbee)   * 1 ESP32-C6 (zigbee)
Ligne 70: Ligne 89:
   * 2 kits solaires avec un porte li-ion 18650   * 2 kits solaires avec un porte li-ion 18650
   * 1 DC-DC converter qui accepte 1 à 6V en entrée et sort 3.3V (j'aurais du en prendre 3, mais…)   * 1 DC-DC converter qui accepte 1 à 6V en entrée et sort 3.3V (j'aurais du en prendre 3, mais…)
-Ça devrait me permettre de réaliser quelques essais sans trop me prendre le choux.+Ça devrait me permettre d'explorer à l'aise. 
 ===== Test001 ESPHome ===== ===== Test001 ESPHome =====
 Autant débuter par un truc simple sans faire non plus dans le simpliste (j'ai pas envie de juste lire/écrire des GPIO), donc récupérer les données d'un capteur de t° et les remonter au central domotique. Autant débuter par un truc simple sans faire non plus dans le simpliste (j'ai pas envie de juste lire/écrire des GPIO), donc récupérer les données d'un capteur de t° et les remonter au central domotique.
Ligne 77: Ligne 97:
  
 ==== Firmware ==== ==== Firmware ====
 +
 Le plus complexe pour moi, c'est faire le programme. N'ayant jamais utilisé ESPHome, faut le temps d'apprendre quoi mettre dans le code pour obtenir le fonctionnement désiré et comment pousser ce code dans l'ESP32. Le plus complexe pour moi, c'est faire le programme. N'ayant jamais utilisé ESPHome, faut le temps d'apprendre quoi mettre dans le code pour obtenir le fonctionnement désiré et comment pousser ce code dans l'ESP32.
 +
 === Initialiser le core === === Initialiser le core ===
  
Ligne 156: Ligne 178:
 Dans un premier temps je n'avais que ça : Dans un premier temps je n'avais que ça :
 <gallery center&nocrop&400x400&lightbox>:domotique:esphome:prinscreen_test001_0001.png Infos du module test001 dans Home Assistant | Le module est bien visible, mais ne remonte pas de données de t° etc.</gallery> <gallery center&nocrop&400x400&lightbox>:domotique:esphome:prinscreen_test001_0001.png Infos du module test001 dans Home Assistant | Le module est bien visible, mais ne remonte pas de données de t° etc.</gallery>
-Après avoir corrigé l'adresse dans le firmware :+Après avoir corrigé l'adresse dans le code :
 <gallery center&nocrop&400x400&lightbox>:domotique:esphome:prinscreen_test001_0002.png Infos du module test001 dans Home Assistant après correction | Le module est présent et remonte des données de t° etc.</gallery> <gallery center&nocrop&400x400&lightbox>:domotique:esphome:prinscreen_test001_0002.png Infos du module test001 dans Home Assistant après correction | Le module est présent et remonte des données de t° etc.</gallery>
 C'est officiellement un grand succès! C'est officiellement un grand succès!
  
-==== Améliorations ==== 
-Il va être nécessaire d'étalonner les capteurs lorsque le module complet sera installé à sa place définitive. Parce que si la pression semble correcte (par rapport à mes autres capteurs et météo France), la température et l'humidité paraissent douteuses. Le capteur zigbee du commerce et un petit thermomètre hygromètre de table dans la même pièce donnent des relevés très similaires entre-eux, mais ces relevés sont différents de ceux de test001 (genre 10% d'humidité en plus et 1 ou 2 degrés en moins). 
  
-==== Ajout LTR390 ====+===== Test003 ESPHome : ajout LTR390 ====
 Ajouter le capteur lumière et UV est vraiment trivial. Le bus I²C est déjà initialisé, il y a juste à brancher les quatre pins du capteurs sur les mêmes pins du core que le BME280. Et niveau code, c'est pas plus compliqué que pour le BME on rajoute ça dans la section "sensor" : Ajouter le capteur lumière et UV est vraiment trivial. Le bus I²C est déjà initialisé, il y a juste à brancher les quatre pins du capteurs sur les mêmes pins du core que le BME280. Et niveau code, c'est pas plus compliqué que pour le BME on rajoute ça dans la section "sensor" :
 <code yaml>  - platform: ltr390 <code yaml>  - platform: ltr390
Ligne 179: Ligne 200:
 <gallery center&nocrop&400x400&lightbox>:domotique:esphome:photo001.jpg Photo du prototype câblé et fonctionnel | Le câblage laisse à désirer : les fils aux couleurs fantaisistes, de longueurs mal adaptée et l'esp à cheval sur 2 breadboard >.> </gallery> <gallery center&nocrop&400x400&lightbox>:domotique:esphome:photo001.jpg Photo du prototype câblé et fonctionnel | Le câblage laisse à désirer : les fils aux couleurs fantaisistes, de longueurs mal adaptée et l'esp à cheval sur 2 breadboard >.> </gallery>
  
-==== Ajout LD2420 ====+===== Test002 ESPHome : ajout LD2420 ====
 Le radar à ondes millimétriques est assez simple à raccorder physiquement, encore une fois 4 fils suffisent : Le radar à ondes millimétriques est assez simple à raccorder physiquement, encore une fois 4 fils suffisent :
   * 3.3V sur 3.3V   * 3.3V sur 3.3V
   * GND sur GND   * GND sur GND
   * RX sur TX0 coté ESP   * RX sur TX0 coté ESP
-  * OT2 sur RX0 coté ESP (mais en fonction de la version du firmware du LD2420, ça peut aussi être OT2)+  * OT1 sur RX0 coté ESP (mais en fonction de la version du firmware du LD2420, ça peut aussi être OT2)
 Si on rajoute un cinquième fil, on peut avoir le retour sur GPIO de la présence détectée ou non et éventuellement pouvoir utiliser des modes plus économes en énergie sur l'ESP avec le GPIO qui vient le réveiller. Dans mon cas, pas très utile, le montage ne tournant pas sur batterie et la consommation étant déjà très faible. Si on rajoute un cinquième fil, on peut avoir le retour sur GPIO de la présence détectée ou non et éventuellement pouvoir utiliser des modes plus économes en énergie sur l'ESP avec le GPIO qui vient le réveiller. Dans mon cas, pas très utile, le montage ne tournant pas sur batterie et la consommation étant déjà très faible.
  
-Il faut d'abord configurer le bus UART qu'on va exploiter pour le capteur. Comme on a déjà un UART défini pour le logging, il va être nécessaire de leurs attribuer des ID histoire de bien séparer les flux.+Il faut d'abord configurer le bus UART qu'on va exploiter pour le capteur. Comme on a déjà un UART défini pour le logging, il va être nécessaire de leurs attribuer des ID histoire de bien séparer les flux. 
 <code yaml> <code yaml>
 logger: logger:
Ligne 198: Ligne 220:
   id: radar   id: radar
 </code> </code>
-Comme ça, on ne risque pas d'aller écrire les messages de logs sur l'uart dédié au capteur et/ou inversement.+Comme ça, on ne risque pas d'aller écrire les messages de logs sur l'uart dédié au capteur et/ou inversement.\\ 
 +La vitesse de l'UART est aussi spécifiée pour assurer la compatibilité avec le LD2420 et pareil, si vous avez le firmware avec le TX sur OT2, il sera nécessaire de passer ce paramètre à 256000.
  
 Ensuite, le code pour le module n'est pas complexe mais très long parce qu'il comporte de très nombreuses variables pour configurer le capteur. Et à partir de maintenant je ne mettrai plus le code issu directement de copier/coller depuis ESPHome pour limiter les gros pavés de code indigeste. Par contre, je continuerai à montrer le code "made in moi" pour régler les petits problèmes rencontrés (genre l'ajout d'ID des UART xD). Ensuite, le code pour le module n'est pas complexe mais très long parce qu'il comporte de très nombreuses variables pour configurer le capteur. Et à partir de maintenant je ne mettrai plus le code issu directement de copier/coller depuis ESPHome pour limiter les gros pavés de code indigeste. Par contre, je continuerai à montrer le code "made in moi" pour régler les petits problèmes rencontrés (genre l'ajout d'ID des UART xD).
-===== On garde globalement les mêmes, mais en zigbee ===== + 
-Ouaispour tester et comparer le rapport emmerdement/bénéfices. +Et donc, avec cette config, le radar fonctionne étonnamment bien. Il retourne des valeurs un peu "inventives" pour la distance, mais il détecte parfaitement ma présence même en étant face au plafond. J'ai du sortir de la pièce et me mettre assez loin de l'embrasure de la porte pour qu'il ne me capte plus.\\ 
-J'aimerais aussi beaucoup pouvoir comparer la couverture réseau entre les deuxSurtout que sous peu, quelques modules zigbee supplémentaires devraient être installés dans la maison.+J'imagine que dans une zone libre comme devant le garage et avec une calibration et un paramétrage correct, on devrait avoir des lectures plutôt saines des distances. 
 + 
 + 
fr/domotique/garagebox.1739875992.txt.gz · Dernière modification : de kodein