109 lines
3.6 KiB
Plaintext
109 lines
3.6 KiB
Plaintext
menu "Door Buzzer Detector"
|
|
|
|
menu "Hardware"
|
|
config BUZZ_I2S_BCLK_GPIO
|
|
int "I2S BCLK (mic SCK) GPIO"
|
|
default 3
|
|
range 0 48
|
|
config BUZZ_I2S_WS_GPIO
|
|
int "I2S WS (mic WS/LRCL) GPIO"
|
|
default 4
|
|
range 0 48
|
|
config BUZZ_I2S_DATA_GPIO
|
|
int "I2S data-in (mic SD) GPIO"
|
|
default 5
|
|
range 0 48
|
|
choice BUZZ_I2S_SLOT
|
|
prompt "I2S slot that carries the mic"
|
|
default BUZZ_I2S_SLOT_LEFT
|
|
help
|
|
INMP441: L/R pin tied to GND -> left slot, tied to VDD -> right slot.
|
|
config BUZZ_I2S_SLOT_LEFT
|
|
bool "Left"
|
|
config BUZZ_I2S_SLOT_RIGHT
|
|
bool "Right"
|
|
endchoice
|
|
config BUZZ_AUDIO_SHIFT
|
|
int "Right shift applied to the 32-bit I2S sample"
|
|
default 14
|
|
range 8 20
|
|
help
|
|
The INMP441 delivers 24-bit data left-justified in a 32-bit slot, so
|
|
a shift of 16 keeps the top 16 bits (unity gain). A smaller shift adds
|
|
digital gain (14 = 4x) which helps with this quiet mic; the result is
|
|
clamped to int16. Fingerprints are level-independent, but the RMS gate
|
|
is not.
|
|
config BUZZ_BOOT_BUTTON_GPIO
|
|
int "User button GPIO (BOOT)"
|
|
default 0
|
|
range 0 48
|
|
config BUZZ_RGB_LED_ENABLE
|
|
bool "Drive the on-board WS2812 status LED"
|
|
default y
|
|
config BUZZ_RGB_LED_GPIO
|
|
int "RGB LED GPIO"
|
|
default 48
|
|
range 0 48
|
|
depends on BUZZ_RGB_LED_ENABLE
|
|
endmenu
|
|
|
|
menu "Detector defaults (runtime-adjustable, persisted in NVS)"
|
|
config BUZZ_THRESHOLD_MILLI
|
|
int "Cosine-similarity threshold x1000"
|
|
default 800
|
|
range 100 999
|
|
config BUZZ_MIN_RMS
|
|
int "Loudness gate: minimum frame RMS (int16 units)"
|
|
default 200
|
|
range 0 32767
|
|
config BUZZ_WIN_N
|
|
int "Sliding window length N (frames, 32 ms each)"
|
|
default 15
|
|
range 1 32
|
|
config BUZZ_WIN_M
|
|
int "Matches required M within the window"
|
|
default 10
|
|
range 1 32
|
|
config BUZZ_COOLDOWN_MS
|
|
int "Quiet tail to group buzz frames into one event (milliseconds)"
|
|
default 500
|
|
range 0 86400000
|
|
config BUZZ_NOISE_MULT_X10
|
|
int "Learn/adapt gate: noise floor multiplier x10"
|
|
default 40
|
|
range 10 1000
|
|
config BUZZ_ADAPT_WEIGHT_PCT
|
|
int "Adapt: weight (percent) of the newly learned template"
|
|
default 50
|
|
range 0 100
|
|
config BUZZ_MONITOR_MS
|
|
int "Minimum interval between 'monitor' lines (ms)"
|
|
default 100
|
|
range 10 60000
|
|
endmenu
|
|
|
|
menu "Wi-Fi"
|
|
config BUZZ_WIFI_SSID
|
|
string "Wi-Fi SSID"
|
|
default ""
|
|
config BUZZ_WIFI_PASSWORD
|
|
string "Wi-Fi password"
|
|
default ""
|
|
endmenu
|
|
|
|
menu "Buzz event HTTP endpoint"
|
|
config BUZZ_EVENT_URL
|
|
string "POST endpoint URL"
|
|
default ""
|
|
help
|
|
Full URL for the JSON event POST. Use an address reachable from the ESP32;
|
|
localhost refers to the ESP32 itself, not your development computer.
|
|
config BUZZ_EVENT_SECRET
|
|
string "Event secret key"
|
|
default ""
|
|
help
|
|
Secret sent in the JSON request body. Keep it private and configure it for the endpoint.
|
|
endmenu
|
|
|
|
endmenu
|