DNMS
Digital Noise Measurement Sensor
Install / Use
/learn @hbitter/DNMSREADME
English text below
DNMS (Digital Noise Measurement Sensor)
Ein Sensor-Modul zur Schallpegelmessung. Es wird neben dem LAeq-Wert über einem Zeitintervall auch der min. und max. LA-Wert in diesem Zeitintervall festgehalten. Das zentrale Element des DNMS ist ein digitales MEMS-Mikrofon (InvenSense ICS-43434). Ein Mikrocontroller-Board (Teensy3.6 / Teensy4.0) übernimmt die digitalen Daten vom Mikrofon über die I²S Schnittstelle als 24-Bit, 44,1 kHz PCM Daten (ab Firmware Version 2 - zuvor nur 16-Bit). Die Audiodaten werden über einen digitalen A-Filter bewertet, dann wird der Effektivwert bestimmt und daraus der Schalldruckpegel entsprechend der Mikrofonsensitivität berechnet. Die einzelnen Schalldruckpegelwerte werden zu einem fortlaufenden LAeq-Wert weitergerechnet. Ebenso werden der max. und min. Schalldruckpegel (LAmax, LAmin) aus dem Intervall abgespeichert.
Die Werte werden dann über eine I²C-Schnittstelle an einen abfragenden Mikrocontroller zur Weiterverarbeitung übertragen. Das Abfrage-Intervall kann 1 Sekunde betragen oder auch bis zu 3600 Sekunden.
Eine Version mit der Möglichkeit das Frequenzspektrum zu betrachten ist seit einiger Zeit verfügbar. Terzwerte von 20Hz - 20000Hz können ausgegeben werden. Terzwerte werden z.Zt. nicht von Sensor.Community unterstützt, deshalb gibt es spezielle Versionen der NodeMCU Firmware um Terzwerte auf der lokalen Webseite der NodeMCU auszugeben und an weitere APIs wie z.B. zu einer InfluxDB zu senden.
Mit der Firmware Version 5 für Teensy4.0 werden nun auch Z-Werte (LZeq, LZmin, LZmax sowie Z-Terzwerte) unterstützt.
Bei der Firma Watterott electronic GmbH kann nun das Mikrofon IM72D128 von Infineon fertig in einem Kunststoffrohr eingegossen im Shop bestellt werden (https://shop.watterott.com/Mikrofon-IM72D128V01-im-127mm-Rundrohr). Das IM72D128 Mikrofon auf einer Platine und mit Anschlusskabel aber nicht im Kunststoffrohr eingegossen ist ebenfalls verfügbar (https://shop.watterott.com/Mikrofon-IM72D128V01-Platine-mit-Anschlussleitung). Das DNMS Teensy4.0 Board wird demnächst verfügbar sein.
Neuigkeiten
Mai 2025
-
Neues Testprogramm für Teensy4.0 Board und angeschlossenem Mikrofon ICS-43434: DNMS_Vt.8.4 und für Mikrofon IM72D128: DNMS_Vt.8.6, mit verbesserter Frequenzgangkorrektur
-
Neue Teensy 4.0 Firmware DNMS_V5.5.x für IM72D128 und ICS-43434 Mikrofone mit:
- Verbesserte Korrektur des Frequenzgangs für IM72D128 Mikrofon und ICS-43434 Mikrofon. Dies verbessert auch die Terzwerte des Spektrums.
-
Neue Raspberry Pi Firmware dnms-0.9.23 ersetzt dnms-0.9.21 aufgrund von Fehlern:
- Bei der Umwandlung der MAC-Adresse in die ID
- Entfernung Testausgabe der Daten auf Konsole bei Sensor.Community Übertragung
- Beseitigung Pufferüberlauf für InfluxDB/MQTT Übertragung, wenn keine Übertragung konfiguriert war
Oktober 2024
- Neue NodeMCU Firmware AIRROHR-DNMS-5.16 mit:
- Neue Konfigurationsmöglichkeit die WLAN Verbindung ohne Passwort auszuwählen aufgrund einer Änderung in der Wifi Lib. Dies ist notwendig z.B. für Freifunk WLAN Verbindungen.
- Verbesserte Fehlerbehandlung bei der Datenübertragung und entsprechende Fehlerausgaben.
- Fehlerbeseitigung bei der Übertragung des Zeitstempels zur InfluxDB und zu einem MQTT Broker, wenn der DNMS Sensor nicht konfiguriert ist.
September 2024
-
Raspberry Pi dnms-0.9.21 ersetzt Version dnms-0.9.20 aufgrund von Fehlern.
- Fehler in der dnms.conf beim Eintrag 'mqtt_transmit'.
- Fehlerhaft gesetzte Prioritäten für die Threads in der dnms.conf ('prio_1st_timer', ... usw).
- Neben der InfluxDB HTTP Übertragung kann nun parallel eine Übertragung der Werte zu einem MQTT Broker erfolgen.
-
Raspberry Pi dnms-0.9.20 Version mit folgenden neuen Funktionen:
- Data Logging der Messwerte auf der SD-Karte des Raspberry Pi
- Externer Start und Stop der Messwertübertragung, Ausgabe und Speicherung mittels einer named pipe
- Änderung der Eingabe von Bool-Werten in der Konfigurationsdatei dnms.conf: Für false eine '0' und für true eine '1' eingeben.
-
Möglichkeit die NodeMCU Firmware direkt über den Webbrowser auf einen ESP8266 zu flashen. Dies ist möglich mit allen Webbrowsern, die das Web Serial API unterstützen (Chrome, Edge, Brave, Opera aber nicht Firefox ). Um die Funktion zu benutzen, den entsprechenden Link aufrufen abhängig von der gewünschten Sprachversion :
- Deutsche Firmware: https://hbitter.github.io/DNMS/flash-de.html
- Englische Firmware: https://hbitter.github.io/DNMS/flash-en.html
- Französische Firmware: https://hbitter.github.io/DNMS/flash-fr.html
Juli 2024
-
Neue Firmware für Teensy4.0 DNMS_V5.4.x - für ICS-43434 und IM72D128 Mikrofon
- Ersetzt DNMS_V5.3.x da in der Version DNMS_V5.3.x Fehler in der Berechnung der Terzwerte waren. DNMS_V5.3.x bitte ersetzen mit DNMS_V5.4.x
-
Neue NodeMCU Firmware AIRROHR-DNMS-5.12 mit:
- NTP Server können nun in der Konfiguration gesetzt werden unter "Weitere Einstellungen"
- Konfigurationsänderung für die Übertragung zum MQTT Broker, eigenes Feld für die Konfiguration der MQTT Messung. Dies wird im InfluxDB Line Protocol als Measurement weitergegeben
-
Raspberry Pi dnms-0.9.18 Fehlerkorrektur und neue Funktion:
- Korrektur eines Fehlers: Wenn nur die Ausgabe auf dem Terminal konfiguriert war, wurden die Werte nicht richtig auf dem Terminal ausgegeben.
- Neue Möglichkeit der Weitergabe von Messwerten mittels einer named pipe (oder auch fifo) zu anderen Anwendungen auf dem Raspberry Pi.
Juni 2024
-
Raspberry Pi dnms-0.9.16 Korrektur der Versionsnummer:
- Die Versionsnummer wurde falsch (0.9.15 statt 0.9.16) angezeigt
-
Neue NodeMCU Firmware AIRROHR-DNMS-5.8 mit:
- MQTT Übertragung (z.Zt. kein TLS)
- Unterstützung der neuen Teensy4.0 Firmware DNMS_V5.3.x (Mikrofone ICS-43434 und IM72D128 in einer Teensy4 Firmware)
- Möglichkeit nach Restart mit den Messungen zur vollen Minute oder zur vollen Stunde zu beginnen<br>
Weitere Details dazu im README.md unter Firmware/NodeMCU.
-
Erweiterte Raspberry Pi Anwendung dnms-0.9.16 mit:
- MQTT Übertragung zu einem MQTT-Broker (z.Zt. kein TLS)
- Unterstützung der neuen Teensy4.0 Firmware DNMS_V5.3.x (Mikrofone ICS-43434 und IM72D128 in einer Teensy4 Firmware)
- Einführung eines DNMS Korrekturwertes für die Lärmwerte (nicht für Frequenzspektren) entsprechend der NodeMCU Firmware <br>
Weitere Details dazu im README.md unter Firmware/Raspberry Pi.
-
Neue Teensy4.0 Firmware DNMS_V5.3.x mit:
- Zusammenführung der bisher getrennten Versionen für die beiden Mikrofone ICS-43434 und IM72D128 in einer Teensy4.0 Firmware. Die Auswahl des Mikrofons erfolgt über die Konfiguration in der NodeMCU bzw. im Raspberry Pi und wird mittels Umschaltbefehl an die Teensy4.0 Firmware übertragen. Wird kein Umschaltbefehl übertragen ist als standardmäßig das ICS-43434 ausgewählt d.h. auch ältere NodeMCU Firmware unterstützt die Version DNMS_V5.3.x mit ICS-43434 Mikrofon. <br>
Weitere Details dazu im README.md unter Firmware/Teensy4.0/V5.
April 2024
-
Neue NodeMCU Firmware NRZ-2020-134-DNMS-5.6 mit:
- Fehlerbeseitigung für DNMS Korrekturwert (Issue #54)
- LED Statusanzeige
- geänderte Speicheraufteilung<br>
Weitere Details dazu im README.md unter Firmware/NodeMCU.
Februar 2024
-
Verbesserte Teensy4.0 Firmware für die Mikrofone ICS-43434 und IM72D128 mit verbessertem internen Zeitverhalten (Upgrade empfohlen):
- DNMS_V5.2.4 - für ICS43434 mit Teensy4.0
- DNMS_V5.2.6 - für IM72D128 mit Teensy4.0
-
Standalone Testprogramme für Teensy4.0 und die Mikrofone ICS-43434 und IM72D128 mit verbessertem internen Zeitverhalten und geänderter Ein- und Ausgabe beim Start, es können Messintervall ab 125ms eingestellt werden, die Ausgabe von Terzwerten ist ab 500ms möglich:
- DNMS_Vt.7.4 - für ICS43434 mit Teensy4.0
- DNMS_Vt.7.6 - für IM72D128 mit Teensy4.0
-
dnms-0.9.12 erste Version der Raspberry Pi Anwendung um den DNMS Sensor auszulesen und Daten an Sensor.Community und/oder zu einer InfluxDB zu senden als Alternative zu einer NodeMCU (Airrohr-Board). Die Raspberry Pi Anwenung unterstützt zur Übertragung an eine InfluxDB zwei zeitlich unterschiedliche Messintervalle mit unterschiedlich konfigurierbaren Messwerten. Die Messwerte des 2. Messintervalls werden erst ab der Überschreitung eines Schwellwertes (LAeq) übertragen.
-
KiCad Layouts an KiCad Version 7 angepasst für die folgenden PCBs (im Layout selbst keine Änderung):
- DNMS-T4.0-V1.7
- DNMS-RPI-HAT-V1.0
- IM72D128-PCB-V1.0
- IM72D128-Tube-PCB-V1.0
September 2023
- Neue NodeMCU Firmware NRZ-2020-134-DNMS-5.4 auch in englischer und französischer Version mit:
- Verbesserungen bei der Fehlerausgabe von Übertragungen zu Sensor.Community und zu einer InfluxDB
- Vergrößerung des Übertagungspuffers, so dass neben sämtlichen DNMS Werten auch die Werte weiterer Sensoren zu einer InfluxDB übertragen werden können.
- Link zur Meldung von Problemen geändert auf https://github.com/hbitter/DNMS/issues
August 2023
-
Standalone Testprogramme für Teensy4.0 und die Mikrofone ICS-43434 und IM72D128:
- DNMS_Vt.5.4 - für ICS43434 mit Teensy4.0
- DNMS_Vt.5.6 - für IM72D128 mit Teensy4.0
Diese Testprogramme basieren auf der Teensy4.0 Firmware Version 5. Neben einem einfachen Test, ob Mikrofon und Teensy4.0 funktionieren, können die Messwerte mittels einem geeigneten Terminalprogramm auch aufgezeichnet und weiter ausgewertet werden. Das Messintervall kann eingegeben werden.
-
Airrohr-ESP32-PCB-V1.1 PCB gelöscht - obsolet, da keine Firmware Unterstützung.
Juli 2023
- Unterstützung des Mikrofons IM72D128 von Infineon. Das IM72D128 bietet zwei wesentliche Vorteile:
- IP57 Schutz gegen Staub und Feuchtigkeit im Mikrofon integriert (trotzdem ist ein zusätzlicher Wind-/Wetterschutz sinnvoll).
- hoher Signal to noise ratio (SNR) von 72 dB(A), dadurch wird ein unterer Messber
