小澔智能音响 · 快速上手
ESP32-S3 · bread-compact-wifi 面包板 · 平台绑定 · 固件编译 · 热点配网 · 换网 · OTA 升级 · 自动同步音频
一、硬件清单与接线
核心元件
- ESP32-S3-DevKitC-1 开发板(推荐 N16R8:16MB Flash + 8MB OPI PSRAM,小智模块同款)
- MAX98357 I2S 功放模块 + 喇叭
- SSD1306 OLED 128×32(I2C)
- Mini SD 卡模块(SPI,平台音频同步)
- IP5306 充放电模块 + 3.7V 锂电池
- 非自复位电源键、自复位音量+/−/暂停键
bread-compact-wifi 推荐接线
与 xiaozhi-esp32 面包板新版(WiFi)一致,开发板 ID:bread-compact-wifi
| 模块 | 信号 | ESP32-S3 GPIO |
|---|---|---|
| MAX98357 DIN | I2S 数据 | GPIO 6 |
| MAX98357 BCLK | 位时钟 | GPIO 15 |
| MAX98357 LRC | 左右声道 | GPIO 16 |
| MAX98357 SD | 使能(不接则完全无声) | 3.3V |
| MAX98357 VIN / GND | 电源 | 3.3V 或 5V / GND |
| 喇叭 | SPK+ / SPK− | 接模块输出端 |
| SSD1306 OLED | SDA / SCL | GPIO 41 / 42(128×32) |
| 音量 + / − | 按键(上拉,按下接 GND) | GPIO 40 / 39 |
| 触摸功能键 | 短按暂停,长按切换手机推流 | GPIO 38(上拉;N16R8 勿用 33–37) |
| 内置 LED | 状态指示 | GPIO 48 |
| SD 卡(SPI 扩展) | CS / MOSI / MISO / SCK | 10 / 11 / 13 / 12 |
电源键为非自复位,由 IP5306 负责充放电与开关机;固件开机默认 SD 卡音频模式,长按暂停键切换手机 WiFi 推流模式(ESP32-S3 不支持经典蓝牙 A2DP)。
二、固件编译与烧录
- 在「设备管理」绑定硬件后,点击 固件编译,选择开发板类型并创建编译。
- 推荐使用 Chrome 或 Edge,USB 连接 ESP32,在编译历史中点击 烧录。ESP32-S3-DevKitC 有两个 USB-C:优先插 UART 口(CP210x)。若插的是原生 USB 口,须先按住 BOOT → 点 RST → 再选串口。
- 网页烧录会先全片擦除 Flash再写入;新固件首次启动会清空 SD 上的旧音频,再从 OSS 重新下载。
- 若网页烧录不可用,可点击 下载源码 (.ino),用 Arduino IDE 打开并烧录(需安装 esp32 开发板包及相关库)。
- 平台地址(
app.public-url)留空即可:启动时自动检测本机局域网 IP,并写入config/application.yml。换网络后重启 Spring Boot,再重新「创建烧录包」更新 NVS。 - 也可手动运行
./scripts/sync-public-url.sh同步 IP 到配置文件。 - Arduino IDE 烧录时:Flash 16MB,PSRAM 选 OPI PSRAM(N16R8 板必选项;若选 QSPI/enabled 会报 PSRAM chip not found)。
- 烧录后可用编译页 📟 监视器 查看实时串口日志(115200,Chrome/Edge)。
三、配网原理
首次配网和更换网络都用手机连设备热点完成,不必拆机烧录。平台配网页仅在设备仍在线时可选。
| 步骤 | 操作位置 | 说明 |
|---|---|---|
| 1 | 平台 · 设备管理 | 绑定设备,固件编译并烧录 |
| 2 | 硬件 · 热点 | 上电,手机连 XH-Setup-序列号,选 2.4G WiFi |
| 3 | 自动 | 联网 → 心跳上线 → 拉取音频流式播放 |
| 换网 | 硬件 · 音量减 | 长按音量减 5 秒,再连 XH-Setup-序列号 选新 WiFi |
四、平台使用流程
五、更换 WiFi(机壳封装后)
音响封在机壳里之后,换路由器或改密码不必拆机、不必插线烧录。用音量减重新打开配网热点即可。
- 音响上电。长按音量减 5 秒,屏幕显示「配网热点」。
- 手机 WiFi 列表里连接
XH-Setup-设备序列号(无密码)。部分手机会自动弹出配网页;没有弹出时,浏览器打开192.168.4.1。 - 在列表里选择新的 2.4G WiFi 并输入密码。ESP32 不支持 5G,5G 网络不会出现。
- 提交后音响去连新网络。成功会完整播放
wifi_success.mp3,失败播放wifi_fail.mp3,可再长按音量减重试。 - 连上后平台「设备管理」显示在线,音频继续按资源库同步播放。
旧网已经连不上时
- 上电后连旧 WiFi 失败约 40 秒,会自动再开
XH-Setup-序列号,操作与上面相同。 - 连续两次连不上也会自动开热点,不必干等。
- 平台「设备配网」页的「提交 WiFi」只在音响当前仍在线时可用;已经换环境离线时,必须用热点。
六、OTA 远程升级
正式「设备管理」对管理员和普通用户相同,只使用已发布稳定包。本机先编译再启动,调试页只用这份预编译包。OTA 和设备调试都可以分配给管理员。
- 改固件后先跑
./scripts/build-prebuilt-firmware.sh,再启动服务。打开 设备调试 创建烧录包(只写 NVS,不现场编译),测稳后再把*merged.bin上传到 OSS。 - 在设备调试页或 OTA 固件 点 发布。发布后,正式设备管理创建烧录包和在线音响才会用这一份。
- 普通用户和管理员在「设备管理」看到的是同一套页面,只能拿已发布稳定包 + 设备 NVS。
- 音响检测到新版本会完整播放
ota_upgrade.mp3,成功后播放ota_success.mp3再重启。升级时不要断电。
注意
- OTA 菜单和发布操作不会出现在权限分配里,也无法授权给普通管理员。
- 离线设备不会升级;下次联网后会自动补升。
- 第一次从旧分区表换成可 OTA 分区时,仍需 USB 烧录一次;之后即可只靠 OTA。
- 网页上传请选整包
*merged.bin;设备 OTA 实际下发的是从中切出的应用分区。
七、音响功能说明
平台同步播放
联网后自动核对 SD 卡与设备资源库,不一致则下载/删除,保持完全一致。开机完整播放 welcome.mp3,WiFi 连上后完整播放 wifi_success.mp3,配网失败播放 wifi_fail.mp3,资源有更新时 new_resources.mp3 并同步。换网见第五节,OTA 见第六节。
提示音存在 OSS global/basic/:welcome.mp3、wifi_success.mp3、wifi_fail.mp3、new_resources.mp3、ota_upgrade.mp3、ota_success.mp3(扩展名统一小写 .mp3;设备经 /files/ 从 OSS 拉取到 SD /basic)。
手机播放(WiFi 推流)
ESP32-S3 仅支持 BLE,不支持手机蓝牙 A2DP。长按暂停键约 1.5 秒进入推流模式,手机浏览器打开音响 IP 地址(端口 8090),粘贴资源库 mp3 直链即可播放;再次长按切回 SD 模式。
按键
音量 +/− 调节播放音量;短按暂停/继续;长按音量减 5 秒打开换网热点。电源键为非自复位,物理断电关机。
AI 场景(规划中)
后续将接入外部 AI 平台,支持多邻国学英语等场景式学习,当前版本暂未开放。