Noise Level Sensor

I’ve been looking around, but there doesn’t appear to be a way to make a “noise level” sensor.

It would be fantastic to be able to detect noises and/or track the volume of noise over time.



@tom_l Good find! I was just pondering about adjusting TTS alert volume to the surrounding loudness level.

It has an analogue output so you should be able to get relative loudness readings. You’re just going to have to manually calibrate it.

Make some noise. Observe the A0 output value and volume level you like. Repeat for different background noise levels. Tabulate your data and create a (most likely) logarithmic* best fit equation in a spreadsheet editor. Use that equation in a template to set the volume level based on the A0 reading.

*Could be linear depending on the KY-038 output. The volume control will already be logarithmic. Anyway see what fits best.


This case use is exactly how I found this thread. I was actually looking to see if anyone had found a way to tap into the mics on the google speakers to accomplish this. I figured I already have a house full of microphones, do I really need to add another? This doesn’t seem to be possible though (and that is probably a good thing privacy wise). :crazy_face:

I haven’t dove into the world of ESPHome yet but this dodad has might be my catalyst to burn the dust off the 'ol soldering iron if it works well.

Does anyone have a working implementation of this? @tom_l?

Not me, I just suggested it