firmware: add I2S MEMS microphone driver; fix missing essence migration
Mic: confirmed via its pinout (L/R, WS, SCK, SD, VCC, GND) that the third target module is a standard I2S digital MEMS mic (INMP441-family). Added mems_mic.c/h using ESP-IDF's current driver/i2s_std.h API — reports RMS audio level in dBFS as sensor_type "evp" rather than attempting on-device voice-band FFT (the browser EVP mode's approach); the backend's existing statistical anomaly detector handles spike detection from the raw level, same as it already does for temperature/pressure/presence. Also fixes a real gap Workstream B's report flagged: User.essence (a live model column used throughout merged code — /auth/me, inventory purchases, summon trickle) had no migration line in main.py's lifespan, which would have broken on the actual production Postgres database.
This commit is contained in:
@@ -14,6 +14,7 @@ idf_component_register(
|
||||
"sensor_registry.c"
|
||||
"bmp280.c"
|
||||
"rd03e.c"
|
||||
"mems_mic.c"
|
||||
INCLUDE_DIRS
|
||||
"."
|
||||
REQUIRES
|
||||
@@ -30,8 +31,9 @@ idf_component_register(
|
||||
|
||||
# Note (unverified): recent ESP-IDF versions (v5.3+) split the old
|
||||
# monolithic "driver" component into per-peripheral components
|
||||
# (esp_driver_i2c, esp_driver_uart, ...); "driver" is kept as a
|
||||
# backward-compatible umbrella that still pulls those in, which is why a
|
||||
# plain REQUIRES driver is used above. If a real build against your exact
|
||||
# IDF version complains it can't find driver/i2c_master.h or driver/uart.h,
|
||||
# add esp_driver_i2c / esp_driver_uart explicitly to REQUIRES.
|
||||
# (esp_driver_i2c, esp_driver_uart, esp_driver_i2s, ...); "driver" is kept
|
||||
# as a backward-compatible umbrella that still pulls those in, which is why
|
||||
# a plain REQUIRES driver is used above. If a real build against your exact
|
||||
# IDF version complains it can't find driver/i2c_master.h, driver/uart.h,
|
||||
# or driver/i2s_std.h, add esp_driver_i2c / esp_driver_uart / esp_driver_i2s
|
||||
# explicitly to REQUIRES.
|
||||
|
||||
Reference in New Issue
Block a user