Posté(e) 20 septembre 202520 sept. Je souhaitais mesurer et enregistrer des statistiques dans HA le niveau sonore en extérieur. N'ayant rien trouvé de pertinent en Zigbee je me suis tourné vers un ESP32 et un micro pour faire un montage DY.L'inconvénient principal est d'être obligé d'alimenter le module au secteur, je vais essayer de mettre une petite batterie mais je crains que l'autonomie ne soit pas au rendez-vous.Alors petit retour d'expérience, cela se fait assez simplement.Pour ceux ou celles qui veulent s'essayer voilà le matériel que j'ai utilisé :un module AZDelivery ESP32 NodeMCU - 10€un micro omnidirectionnel INMP441 AYWHP - 10€Voilà l'intégration dans HA pour calibrer les valeurs. Modifié 21 septembre 202521 sept. par filoo
Posté(e) 21 septembre 202521 sept. Salut @filoo ,Bravo pour la réalisation ! Peux-tu partager un pas à pas du montage matériel puis de l’intégration dans Home Assistant? Ce genre de retour d’expérience va clairement inspirer des projets DIY ici.
Posté(e) 21 septembre 202521 sept. Auteur Ça marche.PARTIE IOn commence par le matériel nécessaire :Carte ESP32 (ici ce sera AZDelivery ESP32 NodeMCU)Micro numérique type INMP441Fils électrique et si comme moi on n'est pas doué pour les soudures des câbles Dupont Breadboard femelle/femelle. (pas trop long)Cable USB microUSB (qui transporte la DATA) et un chargeur de téléphone ou une batterie.BONUS : un écran de type TM1637 (pas nécessaire mais tellement simple et fun).Mais malheureusement il faudra faire quelques soudures donc un fer à souder. Trouver de la pâte à souder, j'ai fait sans et je ne vous montrerais pas de photos, une cata.En images :PARTIE IIMontage et branchement.Le plus délicat est de souder les pins sur le module micro. J'y suis arrivé et je suis une buse en soudure.Casser en deux la barette de 6 pins et souder les côtés courts qui se trouveront côté micro. Ou directement de petits fils électrique.Branchement :INMP441 ESP32 NodeMCU (AZDelivery)VDD ---> 3.3VGND ---> GNDSCK ---> GPIO14WS ---> GPIO15SD ---> GPIO32L/R ---> GNDPARTIE IIIInitialisation de la carte ESP32 pour la faire fonctionner sur Home Assistant.Je vous renvoie sur plusieurs tutos très bien fait disponibles comme : Abrège et ArminasUne fois fait, il vous faudra rajouter des lignes de codes au module sous ESP Home builder.Je présente les codes que j'ai ajouté, ce sont des exemples avec le matériel que j'ai utilisé.Au départ vous devez avoir quelques chose qui ressemble à ça. Cela peut-être différent suivant la méthode d'initialisation mais ça ressemble toujours un peu à ça.esphome: name: esphome-web-b4796c friendly_name: ESP_SON min_version: 2025.9.0 name_add_mac_suffix: false esp32: variant: esp32 framework: type: esp-idf # Enable logging logger: # Enable Home Assistant API api: # Allow Over-The-Air updates ota: - platform: esphome wifi: ssid: !secret wifi_ssid password: !secret wifi_passwordSi vous avez conservé les indications GPIO 14, GPIO 15, voilà le code à rajouter :Sous api: # Enable Home Assistant API api: services: - service: set_bruit_gain variables: value: float then: - lambda: |- id(bruit_gain) = value; - service: set_bruit_offset variables: value: float then: - lambda: |- id(bruit_offset) = value; #Et on rajoute tout le reste à la suite # --- I2S bus (global) --- i2s_audio: id: i2s_in i2s_lrclk_pin: GPIO15 i2s_bclk_pin: GPIO14 # --- Microphone (INMP441) --- microphone: - platform: i2s_audio id: mic_in i2s_audio_id: i2s_in adc_type: external i2s_din_pin: GPIO32 channel: left sample_rate: 16000 bits_per_sample: 32bit correct_dc_offset: true pdm: false # --- Variables globales pour calibration --- globals: - id: bruit_gain type: float restore_value: yes initial_value: '1.0' - id: bruit_offset type: float restore_value: yes initial_value: '60.0' # --- Capteurs : RMS + Peak --- sensor: - platform: sound_level microphone: mic_in passive: false measurement_duration: 1000ms rms: name: "Bruit ambiant (RMS brut dBFS)" id: bruit_rms unit_of_measurement: "dB" accuracy_decimals: 1 peak: name: "Bruit ambiant (Peak brut dBFS)" id: bruit_peak unit_of_measurement: "dB" accuracy_decimals: 1 - platform: template name: "Bruit ambiant calibré" id: bruit_calibre unit_of_measurement: "dB" accuracy_decimals: 1 update_interval: 1s lambda: |- if (isnan(id(bruit_rms).state)) return NAN; return id(bruit_rms).state * id(bruit_gain) + id(bruit_offset); # Capteur calibré + lissé - platform: template name: "Bruit ambiant calibré lissé" id: bruit_calibre_lisse unit_of_measurement: "dB" accuracy_decimals: 1 update_interval: 1s lambda: |- if (isnan(id(bruit_rms).state)) return NAN; return id(bruit_rms).state * id(bruit_gain) + id(bruit_offset); filters: - exponential_moving_average: alpha: 0.05 # plus petit = plus lissé send_every: 1Vous vous retrouvez avec 4 capteurs sous ESPHome HA :"Bruit ambiant (RMS brut dBFS)" - Valeur négative"Bruit ambiant (Peak brut dBFS)" - valeur négative"Bruit ambiant calibré" - Valeur calibré initialement avec une valeur offset à 60."Bruit ambiant calibré lissé" - Valeur calibré également avec un offset à 60.PARTIE IVIntégration dans Home AssistantÀ coller dans configuration.yaml# Valeurs calibrage son input_number: bruit_gain: name: Gain bruit initial: 1.0 min: 0.1 max: 5.0 step: 0.1 bruit_offset: name: Offset bruit initial: 60 min: 0 max: 150 step: 1On rajoute une carte Lovelace :type: entities title: Calibration bruit entities: - entity: input_number.bruit_gain name: Gain - entity: input_number.bruit_offset name: Offset - entity: sensor.bruit_ambiant_calibre name: Bruit calibréOn rajoute une carte mini-graphe-cardtype: custom:mini-graph-card entities: - entity: sensor.esphome_web_b4796c_bruit_ambiant_calibre name: Bruit ambiant name: Bruit calibré icon: mdi:ear-hearing hours_to_show: 12 points_per_hour: 4 hour24: true show: graph: line icon: true name: true state: true extrema: true average: true labels: true grid: true smoothing: true line_width: 1 decimals: 1 height: 160 color_thresholds: - value: 30 color: "#4CAF50" - value: 33 color: "#FFC107" - value: 45 color: "#F44336" Modifié 22 septembre 202522 sept. par filoo
Posté(e) 22 septembre 202522 sept. Top, merci ! Je garde sous le coude pour m'en faire un quand j'aurai un peu de temps 😅
Posté(e) 22 septembre 202522 sept. Auteur Mise à jour pour la partie IV (intégration dans HA)Merci CedricMD, très franchement je ne pensais que cela allez fonctionner aussi simplement.Le plus "chiant" ce sont les soudures, je n'arrive pas à faire quelque chose de propre. Mais je viens de me renseigner et j'ai apparemment du fil étain de très mauvaise qualité. Modifié 23 septembre 202523 sept. par filoo
Posté(e) 23 septembre 202523 sept. Auteur BONUS ÉCRAN TM1637Je pense qu'on peut utiliser l'alimentation 5v du même ESP32 en même temps que le micro en 3,3v.Pour faire le test, j'ai utilisé un autre esp32 équipé déjà d'un TM1637 et surcharger de diodes.Rajouter les lignes suivante dans la config du ESP via EspHome Builder.# TM 1637 display: platform: tm1637 id: tm1637_display clk_pin: GPIO18 dio_pin: GPIO5 inverted: true intensity: 0 length: 4 lambda: |- it.printf(0, "%2.0fdb", id(son_db).state); # Niveau db sensor: - platform: homeassistant id: son_db name: "Bruit ambient" entity_id: sensor.esphome_web_b4796c_bruit_ambiant_calibreEt vous obtenez ceci :
Posté(e) 23 septembre 202523 sept. Il y a 21 heures, filoo a dit :Le plus "chiant" se sont les soudures, je n'arrive pas à faire quelque chose de propre. Mais je viens de me renseigner et j'ai apparemment du fil étain de très mauvaise qualité.Ah les soudures m'en parle pas, c'est pas mon truc non plus 🤪
Posté(e) 15 mars15 mars Bonjour,En premier lieu j'aimerai vous remercier pour ce tuto très intéressant.Par contre si je viens vous voir c'est que chez moi cela ne marche pas pourtant j'ai tout bien suivis.Dans home assistant il me dit sensor.bruit_ambiant_calibre Entité non trouver.Pour mon ESP32 j'ai acheter celui la : https://www.amazon.fr/dp/B071P98VTG?ref=ppx_yo2ov_dt_b_fed_asin_title&th=1AZDelivery ESP32 NodeMCU Module WLAN WiFi Dev Kit C Development Board avec CP2102 (successeur de ESP8266) Compatible avec Arduino incluant Un E-Book!Lors de l'installation j'ai choisis esp32 normal pas de modèle s2 / s3 ou autre ( c'est Gemini qui ma donner cette info je sais pas si elle est juste ).Pour le micro j'ai eu beaucoup de mal a faire les soudures mais j'ai tester avec un multimètre pour voir si je n'avais pas de soucis et tout les câbles sont bien fait par contre j'ai eu un peut d'étain sur le micro donc je sais pas si il n'a pas eu de soucis ou si cela viens de la config ou d'autre chose.Merci d'avance ( C'est mon premier ESP32 j'ai un peut de mal car je découvre )Pour les logs de ESP Home :13:08:57.167][C][esphome.ota:075]: Over-The-Air updates: [13:08:57.167][C][esphome.ota:075]: Address: esp32-micro.local:3232 [13:08:57.167][C][esphome.ota:075]: Version: 2 [13:08:57.167][C][esphome.ota:082]: Password configured [13:08:57.173][C][safe_mode:022]: Safe Mode: [13:08:57.173][C][safe_mode:022]: Successful after: 60s [13:08:57.173][C][safe_mode:022]: Invoke after: 10 attempts [13:08:57.173][C][safe_mode:022]: Duration: 300s [13:08:57.192][C][safe_mode:039]: Bootloader rollback: support unknown [13:08:57.192][C][web_server.ota:238]: Web Server OTA [13:08:57.200][C][api:237]: Server: [13:08:57.200][C][api:237]: Address: esp32-micro.local:6053 [13:08:57.200][C][api:237]: Listen backlog: 4 [13:08:57.200][C][api:237]: Max connections: 8 [13:08:57.209][C][api:244]: Noise encryption: YES [13:08:57.209][C][mdns:177]: mDNS: [13:08:57.209][C][mdns:177]: Hostname: esp32-micro [13:08:57.216][D][sensor:118]: 'Bruit ambiant calibré' >> -inf dB [13:08:57.227][C][sound_level:022]: Sound Level Component: [13:08:57.227][C][sound_level:022]: Measurement Duration: 1000 ms [13:08:57.227][C][sound_level:017]: Peak: 'Bruit ambiant (Peak brut dBFS)' [13:08:57.227][C][sound_level:017]: State Class: 'measurement' [13:08:57.227][C][sound_level:017]: Unit of Measurement: 'dB' [13:08:57.227][C][sound_level:017]: Accuracy Decimals: 1 [13:08:57.233][C][sound_level:163]: Device Class: 'sound_pressure' [13:08:57.248][C][sound_level:017]: RMS: 'Bruit ambiant (RMS brut dBFS)' [13:08:57.248][C][sound_level:017]: State Class: 'measurement' [13:08:57.248][C][sound_level:017]: Unit of Measurement: 'dB' [13:08:57.248][C][sound_level:017]: Accuracy Decimals: 1 [13:08:57.249][C][sound_level:163]: Device Class: 'sound_pressure' [13:08:57.477][D][sensor:118]: 'Bruit ambiant (Peak brut dBFS)' >> -inf dB [13:08:57.530][D][sensor:118]: 'Bruit ambiant (RMS brut dBFS)' >> -inf dB [13:08:58.100][D][sensor:118]: 'Bruit ambiant calibré lissé' >> -inf dB [13:08:58.215][D][sensor:118]: 'Bruit ambiant calibré' >> -inf dB [13:08:58.459][D][sensor:118]: 'Bruit ambiant (Peak brut dBFS)' >> -inf dB [13:08:58.459][D][sensor:118]: 'Bruit ambiant (RMS brut dBFS)' >> -inf dB [13:08:59.104][D][sensor:118]: 'Bruit ambiant calibré lissé' >> -inf dB [13:08:59.223][D][sensor:118]: 'Bruit ambiant calibré' >> -inf dB [13:08:59.463][D][sensor:118]: 'Bruit ambiant (Peak brut dBFS)' >> -inf dB [13:08:59.474][D][sensor:118]: 'Bruit ambiant (RMS brut dBFS)' >> -inf dB
Posté(e) 18 mars18 mars Salut @Cyberdr3am Montre-moi ton fichier YAML complet (surtout les parties i2s_audio:, microphone:, sound_level:). Sans ça, c’est dur de pointer exactement le problème. Colle-le ici (masque les secrets wifi ).
Rejoindre la conversation
Vous pouvez commenter maintenant et vous inscrire plus tard. Si vous possédez un compte, connectez-vous.