I'm attempting to build a noise sensor that detects loud environmental noise. The idea is that the sensor would be able to detect loud music or a loud television within 30 feet, in order to record a noise disturbance.

I've tried a couple of electret mics. The Grove Loudness sensor's signal has too much variance and "bounces" around a lot: http://www.seeedstudio.com/wiki/Grove_-_Loudness_Sensor

The DFRobot noise sensor's signal is more stable, but it does not detect sound as well as the Grove sensor: http://www.dfrobot.com/index.php?route=product/product&product_id=83#.U6fDE5RdVYU

Both mics are far too sensitive to vibration, and will output higher signals when a door closes, platform shakes etc than when loud music is playing. And neither mic will have a range of 30 ft.

Does anyone know of better types of mics to try? Or should I consider building my own mic? Any advice on building my own mic?


I think your approach will depend largely on whether your device requires tuning or not. For example, if the venue is typically loud (or loud during some times of the day), it will need to have a different threshold than something which is typically very quiet. I think the problem you will have with these analog circuits is that they require you to manually tune the device for the ambient loudness level, which might be different at different times of the day. Most likely the problem is not with the microphone or capturing the data, it is about how you interpret the data.

For your application, the typical thing to do is to reformulate the problem as a statistical model. A common model used for this approach is the Autoregressive moving average model (ARMA: see wikipedia link). Broadly speaking, this model generates a statistical moving average and compares your data to the moving average. You should see how this model corresponds nicely to your problem; when the ambient noise level is very low (for example, it is 3AM), a relatively soft sound will still count as noise. When it is a busy time, the threshold for noise will be higher.

Of course this relies on you sampling the audio data, perhaps into a windowed buffer, and computing the energy of that buffer (those are your 'observations'). Therefore it will require a microcontroller or DSP of some sort. It is going to be more complex than any of those analog circuits - but will likely be much more robust and intelligent behaving as well.

  • \$\begingroup\$ Thanks. Yes, processing the data will be a challenge. But I'm having problems finding a mic that gives good enough readings. See above. \$\endgroup\$ – Simian Jun 23 '14 at 7:24
  • \$\begingroup\$ Usually the electret microphone that is in all of these circuits is pretty good. If you have an oscilloscope you can look at the voltage coming out. But all the boards you have linked do simple processing as part of the circuit (for example, low pass filtering). I'm trying to say that the microphone cannot necessarily be decoupled from the processing in this case, since you say that either the signal is too sensitive or it is not sensitive enough. \$\endgroup\$ – Zuofu Jun 23 '14 at 7:45
  • \$\begingroup\$ I've tested them with an oscilloscope. The problem is that the mics are too sensitive to vibration that is not caused by sound. Nearby footsteps, closing doors, etc will register higher signals than loud music, even within the same proximity. \$\endgroup\$ – Simian Jun 23 '14 at 16:40

The comments suggest to me that the high amplitude disturbances (footfalls, doors etc) are predominantly low frequency sounds.

I'm going to suggest that either microphone may work equally well, but that to detect the presence of loud noise (TV etc) you want to exclude the low frequency content.

So I suggest using a 4th order high pass filter set to about 1 kHz to effectively exclude low frequency noises, and feed that filtered signal into your level detection logic.

You probably want to record the raw, unfiltered sound though, when the level detector tells the recorder to work.

  • \$\begingroup\$ Thanks. Do you have a suggestion on how to increase the mic's range of distance? \$\endgroup\$ – Simian Jun 24 '14 at 16:06

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.