Introduction
Noise is in beta. Send questions to
Noise@Sensor.Community๐ง Build your DIY sensor and become part of the worldwide, opendata & civictech network.
With DNMS (Digital Noise Measuring Sensor) you can measure noise pollution yourself.
Check out the original instructions and former versions of the noise sensor on Helmut Bitter's Github.
That repository contains different setups to build the sensor with different kinds of board and PCBs.
There are two different kinds of setups:
- a setup where the NodeMCU with some sensors (PM, temperature etc.) and the DNMS are separated. The PCBs are called AIRROHR V1.4 and DNMS - T4 V1.4
- a combined version of the NodeMCU and DNMS on the same PCB: DNMS - T4+NodeMCU V1.4
Only the variant where the NODEMCU and DNMS are separated is described here. Have a look at Helmut's Github for the other variants!
In this case, the connection between the NodeMCU and the DNMS can be as long as 10m. This is important because you need to find the right position for the DNMS to obtain accurate noise measurements.
Shopping list
Single components
Teensy 4.0 development board. Other sellers: EXPTECH, Antratek, PIMORONI
ultra flexible silicone cables with a diameter of 0,15mmยฒ (AWG 26) in 6 different colours
The DNMS (Digital Noise Measuring Sensor) can be combined with an airRohr PM-Sensor:SPS30 fine dust sensor](https://www.sparkfun.com/products/15103). Other sellers: TME, SOS electronic. The usual SDS011 PM sensor can be used as well.
BME280 6-PIN Version, temperature & humidity. Other sellers: Nettigo, Berrybase
The PCBs and the weather protection will be described below.
๐ Great, you decided to buy the parts online! Unfortunately the delivery can take from days up to three weeks. Until then enjoy your life๏ธ.
Driver & firmware
We already prepared the firmware. You only have to install drivers and flash your NodeMCU (ESP8266) and Teensy 4.0 boards.
To communicate with your ESP8266 you need usb2serial drivers for your operating system.
The chipset for NocdeMCUs v3 is usually CH341, just check the back of your NodeMCU to find some technical information. Choose the link that corresponds to the operating system of your computer.
Windows
Drivers for model V2 (CP2102) for Windows
- Windows 10 - Windows 10 should be able to automatically download these
- Windows 7/8/8.1 - 32-bit version - not supporting 64-bit version OS
Driver for model V3 (CH340/CH341) for Windows
- Windows - Windows 10 should be able to automatically download these
Extract the downloaded file for Windows
- for V2: Open the folder CP210x and double click on the application CP210xVCPInstaller_x64 (or x86)
- for V3: open the folder CH341SER and double click on the application SETUP.
MacOS
MacOS Drivers
Extract the downloaded file for MacOS
- for V2: Unzip the folder CP210x and double click on the application CP210xVCPInstaller_x64 (or x86)
- for V3: Unzip the folder CH341SER and double click on the application SETUP.
- Restart your Mac
Linux
No drivers need to be installed. Chip should be supported directly (verifiable with dmesg)
Firmware Flasher NodeMCU
Support for multiple Operating Systems: Windows, MacOS and Linux.
Connect NodeMCU to your computer with a short micro-USB cable (choose one shorter than 1 Meter, otherwise the installation may fail). Select latest_en.bin
(or another language version) and click โUploadโ. Wait until the process is done. Now we can assemble the sensor.
A big thanks goes to Piotr, from Poland, for his help! ๐โโ๏ธ
Firmware Flasher Teensy
In Helmut Bitter's Github you can find two kinds of firmware:
- .ino
- .hex
Teensy Loader
You can flash the .hex file in the Teensy boards with the standalone GUI software Teensy Loader for Windows, Mac and Linux. A command line version also exist.
Teensyduino
You can flash the .ino file in the Teensy boards with the Arduino IDE extension Teensyduino. If needed, you can modify the firmware directly in the Arduino IDE.
PCBs and circuit diagrams
The best way to build the DNMS is to use one of our PCBs. There are now quite a lot of PCB manufacturer who can produce circuit boards for a few bucks with no minimum quantities. For example, JLCPCB. Just download our circuit diagrams and/or Gerber files below, upload them at the manufacturer's website and order your PCBs.
The last versions of the PCBs are described here. Refer to [Helmut Bitter's Github](https://github.com/hbitter/DNMS/tree/master/PCBs) for further informations and to access the KiCad files.
PCB for the NodeMCU ESP8266 CPU/WLAN with a I2C Bus extension to connect the DNMS on as well as other sensors (SDS011, BME280โฆ). AIRROHR V1.4
Download
PCB for the DNMS Teensy 4.0 which can be connected directly on a NodeMCU ESP8266 or on the AIRROHR PCB above. DNMS - T4 V1.4
Download
Assemble
โ ๏ธ IMPORTANT NOTE Before assembling install the firmware! See firmware flasher section.
Microphone unit
The microphone unit is based on Pesky Products breakout board with a MEMS microphone ICS-43434. You can fin such board at the Tindie marketplace.
Housing for the microphone unit
The housing is made with a .500" (12.7mm) polystyrene tubing. This diameter permits to plug directly most of the calibrators on the unit.
The prototype was developed with the Evergreen No. 236 tubing.
The breakout board has to be adapted to the diameter of the tubing with a file. Use some tape to protect the microphone inlet.
Then solder the six silicone cables. Note which pin the cable is connected with!
Cut a 115 mm long piece of tubing.Stick the microphone board on some crossed tape. Put the cables in the tubing and fasten the board at the extremity of the tubing.
Make the extremity of the tube tight with the tape.
Now you can fill the tube with some resin. This step is mandatory to avoid resonance and obtain calibrated and reproductible data.
The prototype was developed with some PURe Isolation ST 33 produced by Copaltec GmbH.
Specifications
- Dielectric strength: 28 kV/mm
- Specific forward resistance: 5,8.1014 ohm/cm
- Surface resistance: 1,3.1016 ohm
- Mixing ratio resin/hardener: 2 : 1
- Pot time: 20 ร 30 min.
- Curing time: 16 ร 30 h
- Final hardened state: 10 ร 14 days
- Viscosity (mixed): 500 ร 600 mPa.s
- Shore hardness: D 50 to 55 (ISO 868, DIN 53505)
- Thermal conductivity: 0,3 W/mK
- Application temperatures: - 20 to +130 ยฐC
The polyurethane resin UR5545 made by Electrolube should work too.
For each tubing 15 g of resin should be sufficient.
When the resin has hardened remove the tape. Your microphone unit is ready.
DNMS Housing
When the Teensy (DNMS) and the NodeMCU (standalone or on PCB) are separated: DNMS and airRohr
You need a piece of 25 mm diameter tubing (for example tubing for electrical applications), a connector, a 90ยฐ bow and a M25 IP68 cable gland.
The tube itself should be 160 mm long. The DNMS looks place in. The microphone housing is maintained by the cable gland.
The bow prevents water and humidity to enter the housing while letting the cable pass.
The DNMS is connected to the second PCB by a RJ12 cable. If this cable is longer than 250 mm, you must use an IยฒC extension.
After everything is well connected, the parts are glued together.
Result:
The PCB carrying the NodeMCU can be put in any kind of electrical box.
Weather protection
The housings themselves should be waterproof. Only the microphone inlet could be sensitive. TDK, the manufacturer has published some recommendations for sealing InvenSense bottom-port MEMS microphones from dust and liquid ingress but the components are difficult to find and were not tested.
It is absolutely necessary to install a weather protection in the form of a foam cover. If necessary, even a household sponge is sufficient. There are several reasons for this:
- it protects against wind noise (which can increase the decibels measurements)
- it protects against direct water leakage on the microphone. To avoid condensation on the microphone pull back the cover a beat after installing it in order to create a small cavity.
- it protects against solar radiation. Intense sunlight can influence the measured values and reduce the life of the microphone.
Those foam covers are normaly sold as โcovers for measurement microfonsโ. But they are expensive. You can also take a normal foam ball and cut a hole with the scissors.
If you need more ones this source can be helpful.
Location of the microphone
It is important to place the microphone in an area as "free" as possible, this means in a location with as less sound reflecting surfaces as possible. The distance to reflective surfaces should be as great as possible. Try not to mount the microphone directly on the wall of a house, because walls reflect sounds strongly. The distance to the wall should ideally be more than 1 m. Of course this is not always easy to realize.
With a distance of about 50 cm from the tip of the microphone to the wall, the induced error is still reasonable. Good places are for example balconies or terrace railings, or a small mast on the roof.
You can also try to place the microphone directly on the corner of the house for the reflections to partially cancel each other.
A free-standing mast of at least 1 m height could also be a solution but then you have to watch out for reflections on the ground. That depends on the floor covering, of course.
It is also important to always be aware that we measure ambient noise. We can only make an approximation of the noise emission of sources such as roads or railways.
However, the closer you get to the source, the more accurate the reference to the source becomes. Upgrades of the firmware should then be able to get preceise measurements for an identified type of noise.
Configure
Noise is in beta. Send questions to
Noise@Sensor.CommunityGet the ID
Connect the station with an USB cable to power up the sensor
The station tries to connect to the configured WiFi access point. If this does not work, the sensor opens an access point with the name
Particulate Matter ID
,Feinstaubsensor-ID
orairRohr-ID
. The ID is the ChipID (for example 13597771). Please note that number down, as you need it for the registrationConnect to the created access point. Wait until the connection is established.
Android: If the connection disconnects immediately, you may have to deactivate the option 'Smart network switch' under 'Connections -> WiFi -> Advanced'Open your browser and type in http://192.168.4.1/
โ ๏ธ Please note It may take a few tries for the NodeMCU to connect to the home WiFi network. Please do not get impatient and try until it works. The sensor can also be configured via a smartphone. If the configuration of the sensor has worked, the configuration page is no longer accessible under this IP 192.168.4.1
Configure the station
Under 'Configure' enter SSID (name of your home WiFi network), the network security key (under Windows) or WiFi password.
For noise sensors (DNMS) according to this manual, no further changes are necessary
After hitting save, the sensor will restart and is no longer accessible this way when it connects to the WLAN.
Test the station
If no changes have been made other than entering the WiFi network data, the sensor can be 'tested' on the following pages after about 10 minutes. On these pages you have to search for the ChipID (in the example above the 13597771).
Register
Register yourself
Go to devices.sensor.community to register your device and become a part of the open data network.
Register your device
After you logged in click on register new device and fill out the form. Home -> (Login) - Sensors -> Register sensor
- your noted down ChipID of the ESP8266 (NodeMCU)
- your email address (will not be published)
- your address: Street with house number, postcode and city. Click on "Lookup entered address" to get the location coordinates (will be rounded off). Check the position of the pin, change it if needed
- internal name makes it easier to separate if you have multiple sensors (like garden, sensor for mom,...)
- the surroundings of the station - e.g. height above ground, side of the road, high traffic volume, free field or similar
By the way!
Currently it is not possible to register using the site both PM sensor, temp/humidity and DNMS sensor connected to one NodeMCU. For now it can only be done manually by sending a request to tech (at) sensor.community. See issue for details.
Troubleshoot
Transmitting problems?
Enter the following in the browser with your own data: https://api-rrd.madavi.de/grafana/d/BYsfp-xGz/dnms?orgId=1&var-chipID=esp8266-[ID]
The [ID] can also be searched for in input field in the upper left corner https://api-rrd.madavi.de/grafana/d/BYsfp-xGz/dnms?orgId=1
- Is the sensor registered via https://devices.sensor.community/ and is the sensor visible on the map?
- Was the WLAN signal level weak in the past? here is the signal log server-side:
https://api-rrd.madavi.de/grafana/d/Fk6mw1WGz/wifi-signal?orgId=1&var-chipID=esp8266-[ID]
- Was the WLAN signal level weak in the past? here is the signal log server-side:
USB cable problems?
- Check power supply: USB cable
- Reboot (disconnect power supply, e.g. pull USB plug)
- Is the WLAN Config OK (the sensor connects to the configured WLAN) If not:
- does the sensor open an AP (in the first 2-7 minutes after a reboot)?
- Look for
airrohr-[ID]
WLAN network. Patience, it may take 1-2 minutes after boot.
- Check on your own router if the sensor is logged into the network, then remember the IP
- alternatively use "Discovery" in the flashtool
- If yes: connect to the sensor via IP with a browser
http://[ip-of-the-sensor]/
, the interface should appear - If no: the ESP has problems, e.g. power supply insufficient, reboot loop or similar
- Connect USB to a computer and view the log
Track text on serial interface with serial terminal program (Settings: baud 9600, 8N1)
- Linux: screen, minicom, cutecom; Windows: Tera Term; MacOS: screen, minicom, ...
- possibly suitable usb2serial drivers are still necessary, see https://github.com/opendata-stuttgart/meta/wiki/Firmware-einspielen
There you should be able to see what the sensor is doing (boot messages, WLAN connection or AP, measurement - only after 3 minutes)
Electronics problems?
Remove sensor electronics from the housing and observe
Check/replace power supply again
- does ESP flash shortly after reboot?
- Teensy: red LED flashing after reboot?
- check/replace the cables to the sensors again
Noise is in beta. Send questions to
Noise@Sensor.Community