Go Down

Topic: Sonomètre connecté (ESP32+ micro I2S) (Read 403 times) previous topic - next topic

al1fch

Mar 22, 2020, 09:59 am Last Edit: Mar 22, 2020, 01:03 pm by al1fch
Bonjour
-> Utilise : une carte dotée d'un ESP32 , un microphone sur bus I2S (modèle INMP441), 5 fils, alimentation 5V
-> Présente en ligne,  via  ThingSpeak, l'évolution du niveau sonore, en dBA


Résultat en extérieur (période de confinement, peu de circulation)   et en intérieur calme





Dans mon quartier une association de riverains, en bordure d'une départementale 4 voies très fréquentée agit depuis plus de 10 ans pour réduire les importantes nuisances sonores (réduction de vitesse à 70 km/h obtenue, compléments nécessaires, peut être un mur anti bruit en particulier au niveau d'une ecole maternelle dont la cour de récréation est peu utilisable)

J'avais dans l'idée de leur donner un 'sonomètre connecté' qui, par une mise en ligne en temps réel du niveau sonore, les aiderait à renforcer leurs effectifs en mettant en évidence sur leur site  la situation en temps réel et souligner des  épisodes particuliers.

Après avoir entrevu la piste du 'hacking' d'un sonomètre du marché (on trouve des réalisations pour certains modèles) je suis récement tombé sur un excellent code de sonomètre pour ESP32 sous IDE Arduino utilisant divers modèles de microphones I2S dont le mien, INMP441 de TDK

J'ai présenté le microphone  INMP441 ( sortie sur bus I2S)  dans ce fil :
https://forum.arduino.cc/index.php?topic=670448.0

Le code,  d'Ivan Kostoski est içi (utilisation explicite de RTOS)
https://github.com/ikostoski/esp32-i2s-slm
https://hackaday.io/project/166867-esp32-i2s-slm

Après acquisition du son (micro sur bus I2S) il applique deux filtres numériques dont celui de la pondération "A"   Toutes les secondes il délivre le niveau sonore en dBA   (cf Wikipedia)

J'ai eu très peu de choses à faire pour envoyer vers ThingSpeak le niveau sonore (à une cadence compatible avec la gratuité du service  >15s)

Je met mon code en PJ vu la taille, dans celui-ci la visualisation sur écran OLED est désactivée, les paramètres d'accès à la box et à ThingSpeak sont à éditer…...

Toute carte à ESP32 convient. A noter que les signaux I2S, dans le cas de l'ESP32, ne sont pas figés sur broches particulières.

Utilisant içi une carte "Mini32" au format des D1 Mini j'ai choisi une disposition qui me permettra de faire un 'shield INMP441' utilisable sur D1 Mini(ESP8266) ou ESP2
Code: [Select]
// I2S pins - Can be routed to almost any (unused) ESP32 pin.
//            SD can be any pin, inlcuding input only pins (36-39).
//            SCK (i.e. BCLK) and WS (i.e. L/R CLK) must be output capable pins
//
// Below ones are just example for my board layout, put here the pins you will use
//
#define I2S_WS            18
#define I2S_SCK           23
#define I2S_SD            19

// I2S peripheral to use (0 or 1)
#define I2S_PORT          I2S_NUM_0



Reste à faire : étalonner avec un authentique sonomètre, retoucher au besoin le code, tester sur ESP8266

al1fch

#1
Mar 22, 2020, 10:05 am Last Edit: Mar 22, 2020, 10:05 am by al1fch
Réservé pour des compléments

lesept

Très intéressant, merci pour le partage.

Tu peux envisager de le mettre dans un boîtier, avec une batterie, et gérer le sommeil pour une durée de vie aussi longue que possible.
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

al1fch

#3
Mar 22, 2020, 11:40 am Last Edit: Mar 22, 2020, 04:11 pm by al1fch
c'est à l'étude !!

mais l'appareil sera installé à l'abri sur un balcon disposant d'une prise secteur, l'autonomie  n'est pas la priorité.. et le boitier attendra...

je vais tester une jauge avec le service IO d'Adafruit qui permet,en version gratuite, de faire un envoi toutes les 2s, ça donnerait, si la latence est raisonnable, quelque chose de plus 'vivant', plus proche du ressenti que l'intégration du niveau sonore sur 1 minute environ...voire 15s avec la contrainte de ThingSpeak gratuit.

je reste volontairement pour l'instant  sur l'option  : "service tiers gratuit dans le nuage"

Go Up