An open API service indexing awesome lists of open source software.

https://github.com/roschmi/esp32_i2s_microphone_vol_switcher

Two state sensor (On/Off) reacting on sound levels measured by I2S microphones ( SPH0645LM4 or INMP441 )
https://github.com/roschmi/esp32_i2s_microphone_vol_switcher

esp32 i2s-microphone inmp441 microphone noise onoffswitch platformio sound sph0645

Last synced: about 1 month ago
JSON representation

Two state sensor (On/Off) reacting on sound levels measured by I2S microphones ( SPH0645LM4 or INMP441 )

Awesome Lists containing this project

README

        

# Esp32_I2S_Microphone_Vol_Switcher

SoundSwitcher is a class to implement a two state sensor reacting on sound levels.
The sound volume is measured by an I2S micophone (SPH0645LM4 or INMP441)
The state toggles when a changeable arbitrary soundvolume level is exceeded
A changeable hysteresis is accomplished

Example:

https://www.hackster.io/RoSchmi/heating-burner-monitoring-using-esp32-and-microphone-80015d

https://github.com/RoSchmi/Esp32_WiFiManager_HeatingSurvey

Constructor: has two parameter, a configuaration struct and the used microphone type

Initialization: .begin method with 4 parameters (has to be called in setup())
* switchThreshold
* hysteresis
* updateIntervalMs
* delayTimeMs

The first two parameters need not be explained.

updateIntervalMs : a time interval in ms. Only when the time interval has expired
a new sound level average is calculated

delayTimeMs: this delay time is introduced for reading the analog soundlevel
after the threshold is exceeded. This parameter determins after
which timeinterval the analog value is sampled (to read not just
at the very beginning of the new state)

soundSwitcher.SetActive() : Has to be called right after the soundSwitcher.begin function

soundSwitcher.SetCalibrationParams() : Is optional, determins an offset and a factor

soundSwitcher.feed() : This function is called frequently from the loop() of the main program
It returns a struct Feedresponse.
After the feed command, Feedresponse.isValid has to be checked
If .isValid is true, Feedresponse.hasToggled is checked
If .hasToggled is true, your reaction on the change of the
state has to be performed