Files
inmp441test/README.md
DESKTOP-PUHFO60\dsx2016 475f42a49d Add CYD 3.5C build: I2S on 22/21/35 with GT911 poll-only touch.
Export firmware/cyd_35r and document GPIO21 shared with GT911 INT.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-27 21:06:10 +08:00

103 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 + 趋势图 |