I'm looking for some advice on which components to use for this application.

The problem: We'd like to measure the amount of "noise" in a warehouse and display this on a LCD/monitor/whatever. When the noise reaches a certain threshold, it will be suggested that employees put on their ear protection headsets. The sensors (microphones) need to be wireless (RF/Wifi would be preferred! A wired RS-232/485 solution would be considered as well) and need to send samples at least every second. Having a dedicated PC to gather and display the samples is also being considered. For now we're only thinking of one sensor but would like to expand this to many in future.

I want to know what components you would use to accomplish this. I'm looking for a very easy way to gauge noise so maybe decibel samples would be good.

Any hints very welcome!



Yep, use an omnidirectional electret with a flat frequency response into the ADC of a microcontroller.

To measure subjective loudness (which I believe is also what you want to measure for hearing protection), you should probably use A-weighting, or at least filter out very low or very high frequencies. You wouldn't want false positives from ultra low frequencies that encourage them to ignore the warnings, for instance. ("In almost all countries, the use of A-frequency-weighting is mandated to be used for the protection of workers against noise-induced deafness.")

Then do an RMS measurement of the samples over a period of time to get the perceived loudness.


Here's a high-level implementation of A-weighting in MATLAB and Python for reference.

I suppose micro ADCs don't have any anti-aliasing built-in, so you'd have to add an anti-aliasing filter. Sampling frequency would have to be pretty high.


You could also do the filtering and RMS measurement in hardware, and just sample the output of that at a much slower rate with the micro. Here's a hardware A-weighting filter or you could do a simpler band-pass filter for a rough estimate. It's possible to do true RMS measurements in hardware, but I don't know the circuits. You can get a similar "VU meter" result by full-wave rectifying and filtering, which is probably good enough for your task. That's all mixing boards use for their meters.

"so maybe decibel samples"

If you're just using a threshold on the RMS measurement then you don't need to convert to dB or anything.

"need to send samples at least every second"

I'd do the RMS processing in the micro in the sensor, and then just send a single measurement of loudness each second. You don't need to send the actual audio samples.

  • 1
    \$\begingroup\$ i agree, and remembering the A weighting is very important. if this is for safety you need to make sure you meet all safety standards. \$\endgroup\$ – Kortuk Aug 30 '10 at 17:09

If there is only one sensor,the easiest way would be to use a simple microphone+Micro controller interfaced to the PC the via serial port.You can also use the same controller to drive a relay(that switches a hooter) or an LED signage. However if a wireless network is involved (with multiple sensors), you might want to check out this.

If accuracy of measurement is important (especially in a factory setting), you're better off using a professional decibel meter instead of setting up a mesh of nodes.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.