# CYD INMP441 声贝检测 ESP32 Cheap Yellow Display + INMP441(I2S)+ LVGL 声级仪表盘(近似 dB SPL)。 默认 **2.8" ESP32-2432S028R**;可选 **3.5" ESP32-3248S035C**(`cyd_35r`)。 引脚约定见同目录 [CYD_PROJECT_GUIDE.md](../CYD_PROJECT_GUIDE.md);UI 壳参考 [sgp30test](../sgp30test)。 ## 硬件 | 项目 | 2.8" · 2432S028R | 3.5" C · 3248S035C | |------|------------------|---------------------| | 屏驱 | ILI9341 | ST7796 | | 触控 | XPT2046 SoftSPI | GT911 Wire1(SDA33/SCL32/INT21/RST25) | | 背光 TFT_BL | **GPIO21** | **GPIO27** | | INMP441 WS | **GPIO22**(CN1/P3) | **GPIO22** | | INMP441 SCK | **GPIO27**(CN1) | **GPIO21**(CN1;勿占 27=BL) | | INMP441 SD | **GPIO35**(P3,仅输入) | **GPIO35** | | 供电 | USB 5V;麦克风 **3.3V** | 同左 | 接线: | INMP441 | CYD | |---------|-----| | VDD | 3.3V(CN1) | | GND | GND | | L/R | GND(左声道,勿悬空) | | WS | IO22 | | SCK | IO27(2.8)/ IO21(3.5) | | SD | IO35(P3) | > 不要接 5V;不要占用背光脚。I2S 需要三根信号线,仅两根扩展脚不够(还要 P3 的 IO35)。 > **3.5C**:`SCK=GPIO21` 与 GT911 INT 同脚;固件先完成触控选址,再把 21 交给 I2S,触控仅轮询。背光是 **27**,勿当 SCK。 ## 功能 - 大圆弧显示近似 **dB SPL**(基于 INMP441 −26 dBFS @ 94 dB 的换算,非标定声级计) - I2S 立体声读槽(兼容 ESP32 与麦 L/R 脚命名反相)+ 去直流后再算 RMS - 分级:QUIET / SOFT / NORMAL / LOUD / VERY LOUD / DANGER - PEAK 峰值保持(缓慢回落)、MIN/MAX、电平条、底部趋势图 - EMA 平滑;串口打印 `dB / rms / peak` - 短按切换背光(4 档);长按 ≥0.7s 重置 min/max - 常亮运行(无自动熄屏) ## 读数说明(实测) 本机为**相对声级表**,相对变化可靠,绝对数值未做声级计标定(偏移 `MIC_DB_OFFSET=120`)。 | 场景 | 本固件常见读数 | 真实环境大约 | |------|----------------|--------------| | 安静房间 | **约 55–60 dB** | 约 40–50 dB | | 近距离说话 / 拍手 | **约 70+ dB** | 约 60–80 dB | 安静时整体偏高约十来分贝属预期;若要对齐手机声级计,可改 `src/main.cpp` 里的 `MIC_DB_OFFSET`(例如调到约 `110`)后重新烧录。 ## 构建与烧录 依赖 [PlatformIO](https://platformio.org/)。 ```bash pio run -e cyd_28r -t upload # 2.8" pio run -e cyd_35r -t upload # 3.5C pio device monitor -b 115200 ``` ### 预编译固件 | 板型 | 目录 | |------|------| | 2.8" | [`firmware/cyd_28r/`](firmware/cyd_28r/) | | 3.5" | [`firmware/cyd_35r/`](firmware/cyd_35r/) | ```powershell cd firmware\cyd_28r # 或 cyd_35r .\flash.ps1 ``` 重新打包: ```powershell .\firmware\export_from_build.ps1 .\firmware\export_from_build.ps1 -Env cyd_35r ``` ## 项目结构 ``` platformio.ini include/pins.h lv_conf.h touch.h src/main.cpp touch.cpp scripts/exclude_lvgl_asm.py firmware/ README.md ``` ## 变更记录 | 日期 | 说明 | |------|------| | 2026-10-27 | 兼容 3.5C(`cyd_35r`):WS22/SCK21/SD35、BL27、GT911 Wire1 轮询;导出 `firmware/cyd_35r` | | 2026-10-27 | 文档补充实测读数:安静约 55–60、说话/拍手 70+;说明为相对声级、绝对未标定 | | 2026-10-27 | 修复无声贝变化:I2S 改立体声读槽(ESP32 L/R 与麦脚常反相)+ 去直流后再算 RMS | | 2026-10-27 | 初版:INMP441 I2S 声贝仪表盘(WS22/SCK27/SD35),LVGL 圆弧 + peak/min/max + 趋势图 |