Decibel metering + data logging

Hey all,

I have a reasonable background in electrical and limited programming experience. I'm new to Arduino and am enjoying the learning process. I have a project in mind. I would like to create a system that records decibel levels inside and outside my apartment at specified intervals (i.e. 1 minute). I've been reading up on the data logging but I have no idea if there's a sensor available for metering decibel levels. Anyone done this?

Nathan

:wink: A microphone converts sound to electical signals with the voltage proportional to loudness.*

The signal from a microphone too low for the Arduino's analog-to-digital converter, so you'll need a preamp. [u]This[/u] is a good start. It has a mic, a preamp, and a circuit to bias the output at 2.5V. (The Arduino cannot accept the negitave-half of an audio signal.) The preamp on that board may not have enough gain for indirect sounds, especially from outside your apartment. So, you may need additional gain.

You'll also need a "real" SPL meter to calibrate your setup ([u]example[/u]). Once you have your reference the dB difference from your reference is calculated as 20 x log (ADC reading/ADC reference). For example, if you get an ADC reading of 100 at 70dB SPL, an ADC reading of 200 would calculate as +6dB (relative to your reference) which would be 76dB SPL.

...specified intervals (i.e. 1 minute).

You could save the 1-minute peaks, or you could calculate a 1-minute moving-average and save that.

I've been reading up on the data logging...

You may want to send your readings out over the USB buys to a comuter, otherwise the Arduino could run out of RAM. And you may want to add a real time clock module to capture the time-of-day.

  • There are some standards for noise & loudness measurement, so you might want to do some research on things like A-weighting, C-weighting, etc. You probably won't be doing anything that advanced, but you should understand the concepts.