Export firmware/cyd_35r and document GPIO21 shared with GT911 INT. Co-authored-by: Cursor <cursoragent@cursor.com>
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;UI 壳参考 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。
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/ |
| 3.5" | firmware/cyd_35r/ |
cd firmware\cyd_28r # 或 cyd_35r
.\flash.ps1
重新打包:
.\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 + 趋势图 |
Description
Languages
C++
71.3%
PowerShell
19.4%
C
7.3%
Python
1.3%
Batchfile
0.7%