Wiki Le BIK'LAB

Le Bik'Lab avec le réseau des FabLabs de la région académique Guadeloupe

Outils pour utilisateurs

Outils du site


projets:home-assistant:esphome:noeud-basique-mesures-environnementales:bme680

Différences

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

Lien vers cette vue comparative

Prochaine révision
Révision précédente
projets:home-assistant:esphome:noeud-basique-mesures-environnementales:bme680 [25/10/2023 14:09 ] – créée Oliver Wattéprojets:home-assistant:esphome:noeud-basique-mesures-environnementales:bme680 [04/04/2024 15:35 ] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-====== ESPhome / BME 280 ======+====== ESPhome / BME 680 ======
  
 ===== Montage ===== ===== Montage =====
 +<note>
 +
 +Attention à la polarité ! (**+/-**)
 +</note>
  
 {{ :ateliers:smart-bee:shema_bme680_bb-768x624.png?400 |}} {{ :ateliers:smart-bee:shema_bme680_bb-768x624.png?400 |}}
Ligne 7: Ligne 11:
 Suivre le schéma de montage en respectant les conventions de couleur pour les fils.  Suivre le schéma de montage en respectant les conventions de couleur pour les fils. 
  
-Attention à la polarité (+/-) 
  
 ===== Documentation technique ===== ===== Documentation technique =====
  
-{{ :hardware:kits-biklab:fiche_kit_bme680.pdf |}} +La documentation technique complète est disponible : 
 + 
 +  * en ligne : [[hardware:kits-biklab:bm680|Kit BME680]] 
 +  * en téléchargement (PDF) : {{ :hardware:kits-biklab:fiche_kit_bme680.pdf |}}  
 + 
 +Toute cette documentation est diffusée sous [[https://creativecommons.org/licenses/by/4.0/deed.fr|licence Creative Commons CC BY 4.0 Deed]] pour en faciliter la réutilisation. 
 + 
 +===== Code ===== 
 + 
 +==== Code basique ==== 
 +<file yaml bme680simple.yaml > 
 +esphome: 
 +  name: "station2" # le nom de l'objet connecté 
 +   
 +esp8266: 
 +  board: nodemcuv2 
 + 
 +logger: 
 + 
 +# Enable Home Assistant API 
 +api: 
 +  encryption: 
 +    key: "JhwNLgVDiZLAtKsukQRb2//wYz/olZdI/mBx22uX9WA=" 
 +    # voir https://esphome.io/components/api.html#configuration-variables 
 +    # il y a sur la page un générateur de clé aléatoire 
 +    # changez et mettez une autre valeur pour votre noeud 
 + 
 +ota: 
 +  password: "secret_ota_password" # changer pour une valeur de votre choix 
 + 
 +wifi: 
 +  ssid: "wifi_ssid" # nom du réseau wifi 
 +  password: "wifi_password" # mot de passe du réseau wifi 
 + 
 +## on définit les GPIO du bus I2C 
 +i2c: 
 +  sda: D1 # à changer si carte différente (GPIO21 pour esp32) 
 +  scl: D2 # à changer si carte différente (GPIO22 pour esp32) 
 +  scan: True 
 +  id: bus_a 
 + 
 +bme680_bsec: 
 +  # documentation esphome : https://esphome.io/components/sensor/bme680_bsec.html 
 +  address: 0x77 
 +  iaq_mode: static 
 +  sample_rate: ulp 
 + 
 +sensor: 
 +  - platform: bme680_bsec # multi capteurs atmosphériques (qualité de l'air) 
 +  # documentation esphome : https://esphome.io/components/sensor/bme680_bsec.html 
 +    temperature: # température de l'air 
 +      name: "Temperature (station2)" 
 +      id: station2_bme680_temperature 
 +      sample_rate: lp 
 +      filters: 
 +        - offset: -2.0 
 +        - sliding_window_moving_average: 
 +            window_size: 20 
 +            send_every: 20 
 +    pressure: # pression atmosphérique 
 +      name: "Pression atmosphérique (station2)" 
 +      id: station2_bme680_pressure 
 +      sample_rate: lp 
 +      filters: 
 +        - sliding_window_moving_average: 
 +            window_size: 20 
 +            send_every: 20 
 +    humidity: # humidité dans l'air 
 +      name: "Hygrométrie (station2)" 
 +      id: station2_bme680_humidity 
 +      sample_rate: lp 
 +      filters: 
 +        - sliding_window_moving_average: 
 +            window_size: 20 
 +            send_every: 20 
 +    iaq: # indice de qualité de l'air (calculé) 
 +      name: "indice de qualité de l'air (station2)" 
 +      id: station2_bme680_iaq 
 +      filters: 
 +        - sliding_window_moving_average: 
 +            window_size: 10 
 +            send_every: 10 
 +    co2_equivalent: # taux de CO2 calculé (estimation aproximative) 
 +      name: "taux CO2 équivalent (station2)" 
 +      id: station2_bme680_eco2 
 +      filters: 
 +        - sliding_window_moving_average: 
 +            window_size: 10 
 +            send_every: 10 
 +    breath_voc_equivalent: # cov calculés dans le souffle d'une personne 
 +      name: "COV équivalents dans le souffle" 
 +      id: station2_bme680_bvoc 
 +      filters: 
 +        - sliding_window_moving_average: 
 +            window_size: 20 
 +            send_every: 20 
 + 
 +</file> 
 + 
 +==== Code avancé ==== 
 + 
 + 
 +<file yaml bme680adv.yaml > 
 +substitutions: 
 +  devicename: station2 # nom de l'objet connecté, changer ici uniquement 
 + 
 +esphome: 
 +  name: ${devicename} # la valeur définie plus haut sera placée ici 
 + 
 +esp8266: 
 +  board: nodemcuv2 
 + 
 +logger: 
 + 
 +# Enable Home Assistant API 
 +api: 
 +  encryption: 
 +    key: "JhwNLgVDiZLAtKsukQRb2//wYz/olZdI/mBx22uX9WA=" 
 +    # voir https://esphome.io/components/api.html#configuration-variables 
 +    # il y a sur la page un générateur de clé aléatoire 
 +    # changez et mettez une autre valeur pour votre noeud 
 + 
 +ota: 
 +  # le mot de passe OTA sera récupéré dans sectets.yaml 
 +  password: !secret ota_password 
 +  # décommenter la ligne ci après pour définir le mot de passe ici 
 +#  password: "wifi_password" # mot de passe du réseau wifi 
 +wifi: 
 +  # le ssid et le password wifi seront récupérés dans sectets.yaml 
 +  ssid: !secret wifi_ssid 
 +  password: !secret wifi_password 
 +  #décommenter pour définir le wifi dans ce fichier, supprimer au dessus 
 +#  ssid: "wifi_ssid" # nom du réseau wifi 
 +#  password: "wifi_password" # mot de passe du réseau wifi 
 + 
 + 
 +## on définit les GPIO du bus I2C 
 +i2c: 
 +  sda: D1 # à changer si carte différente (GPIO21 pour esp32) 
 +  scl: D2 # à changer si carte différente (GPIO22 pour esp32) 
 +  scan: True 
 +  id: bus_a 
 + 
 +sensor: 
 +  - platform: bme680_bsec # multi capteurs atmosphériques (qualité de l'air) 
 +  # documentation esphome : https://esphome.io/components/sensor/bme680_bsec.html 
 +    temperature: # température de l'air 
 +      name: "Temperature (${devicename})" 
 +      id: station2_bme680_temperature 
 +      sample_rate: lp 
 +      filters: 
 +        - offset: -2.0 
 +        - sliding_window_moving_average: 
 +            window_size: 20 
 +            send_every: 20 
 +    pressure: # pression atmosphérique 
 +      name: "Pression atmosphérique (${devicename})" 
 +      id: station2_bme680_pressure 
 +      sample_rate: lp 
 +      filters: 
 +        - sliding_window_moving_average: 
 +            window_size: 20 
 +            send_every: 20 
 +    humidity: # humidité dans l'air 
 +      name: "Hygrométrie (station2)" 
 +      id: station2_bme680_humidity 
 +      sample_rate: lp 
 +      filters: 
 +        - sliding_window_moving_average: 
 +            window_size: 20 
 +            send_every: 20 
 +    iaq: # indice de qualité de l'air (calculé) 
 +      name: "indice de qualité de l'air (${devicename})" 
 +      id: station2_bme680_iaq 
 +      filters: 
 +        - sliding_window_moving_average: 
 +            window_size: 10 
 +            send_every: 10 
 +    co2_equivalent: # taux de CO2 calculé (estimation aproximative) 
 +      name: "taux CO2 équivalent (${devicename})" 
 +      id: station2_bme680_eco2 
 +      filters: 
 +        - sliding_window_moving_average: 
 +            window_size: 10 
 +            send_every: 10 
 +    breath_voc_equivalent: # cov calculés dans le souffle d'une personne 
 +      name: "COV équivalents dans le souffle (${devicename})" 
 +      id: station2_bme680_bvoc 
 +      filters: 
 +        - sliding_window_moving_average: 
 +            window_size: 20 
 +            send_every: 20 
 + 
 +  # mesure la force du signal wifi reçu en dB 
 +  # documentation : https://esphome.io/components/sensor/wifi_signal 
 +  - platform: wifi_signal 
 +    name: "signal WiFi (${devicename})" 
 +    update_interval: 10s 
 + 
 +  # donne l'utpime (depuis combien de temps l'objet connecté est il allumé) 
 +  # documentation : https://esphome.io/components/sensor/uptime 
 +  # ici on ajoute des calculs pour avoir un format lisible (j:h:m:s) 
 +  - platform: uptime 
 +    name: "${devicename} Uptime Sensor" 
 +    id: ${devicename}_uptime_sensor 
 +    update_interval: 60s 
 +    on_raw_value: 
 +      then: 
 +        - text_sensor.template.publish: 
 +            id: ${devicename}_uptime_human 
 +            state: !lambda |- 
 +              int seconds = round(id(${devicename}_uptime_sensor).raw_state); 
 +              int days = seconds / (24 * 3600); 
 +              seconds = seconds % (24 * 3600); 
 +              int hours = seconds / 3600; 
 +              seconds = seconds % 3600; 
 +              int minutes = seconds /  60; 
 +              seconds = seconds % 60; 
 +              return ( 
 +                (days ? String(days) + "j " : "") + 
 +                (hours ? String(hours) + "h " : "") + 
 +                (minutes ? String(minutes) + "m " : "") + 
 +                (String(seconds) + "s"
 +              ).c_str(); 
 + 
 +text_sensor: 
 +  # on présente l'adresse IP du noeud 
 +  # documentation https://esphome.io/components/text_sensor/wifi_info.html 
 +  - platform: wifi_info 
 +    ip_address: 
 +      name: "adresse IP (${devicename})" 
 +      id: ${devicename}_ip_address 
 + 
 +  - platform: template 
 +  # on présente l'uptime sous forme texte, voir plus haut 
 +    name: "Uptime (${devicename})" 
 +    id: ${devicename}_uptime_human 
 +    icon: mdi:clock-start 
 + 
 +  # version de espHome utilisée 
 +  # https://esphome.io/components/text_sensor/version 
 +  - platform: version 
 +    name: "Version d'ESPHome installée" 
 +    id: ${devicename}_ESPHome_Version 
 + 
 +</file> 
projets/home-assistant/esphome/noeud-basique-mesures-environnementales/bme680.1698242980.txt.gz · Dernière modification : 04/04/2024 15:35 (modification externe)