跳到主要内容

图 9 - Wi-Fi 配网三方式对比

首次启动设备怎么告诉它"我家 Wi-Fi 叫啥密码啥"?项目提供 3 种配网方式同时支持。

如果上方图无法显示,点这里看 PNG 版本

决策流程

设备启动时按这套逻辑判断:

  1. NVS 里有保存的 SSID 吗?
    • → 尝试连,给 60 秒超时
      • 连上 → 网络就绪
      • 60 秒没连上 → 进入配网模式
    • 没有 → 等 1.5 秒(让屏幕显示完版本号)→ 进入配网模式

进入配网模式后,由 Kconfig 决定用哪种同时启用多种

三种配网方式

方式 1:Hotspot 网页配网(推荐)

设备 → 开 SoftAP 热点 "Xiaozhi-xxx" + HTTP 服务器 (192.168.4.1)
用户 → 手机连这个热点 → 浏览器输入网址 → 填家里的 SSID/密码
设备 → 保存到 NVS → 重连家里的 Wi-Fi

优势:零依赖,手机不需要装 App。 劣势:需要用户两步切换 Wi-Fi(连热点 → 配完连家庭网)。

方式 2:BluFi 蓝牙配网

设备 → 启动 BLE BluFi 服务(Espressif 自家协议)
用户 → 手机 App("EspBluFi") → 蓝牙连接 → 发送 SSID/密码

优势:用户不用切 Wi-Fi;App 体验更好。 劣势:需要装专门 App;蓝牙占额外硬件(C5 没蓝牙就不行)。

方式 3:声波配网(最神奇)

手机 App → 用 AFSK 调制 SSID/密码 到声音波形 → 手机喇叭播放
设备麦克风 → 听到 → 解调 AFSK → 还原出 SSID/密码

原理:用 FSK(频移键控)把数字信号调到 1-3 kHz 音频范围,听起来像电话拨号声音。

优势:不需要切 Wi-Fi 也不需要蓝牙;适合一对多场景(一个手机配多个设备);项目还附带了网页版(scripts/sonic_wifi_config.html),打开网页都能配。 劣势:环境噪音大时失败率高;速度慢(几十秒)。

三方式可同时启用

Kconfig 允许 3 个开关同时开(虽然不常这么用)。配网状态下设备同时监听 3 个通道,先收到的算。

一句话讲清

"没 SSID 或连不上就进配网;三种方式:手机连热点用浏览器填、手机 App 用蓝牙发、手机喇叭放声音设备麦克风听。三种可以同时启用,给用户最大选择。"

关联章节

  • /09-boards §9.3.2(WifiBoard 的三种配网启动逻辑)
  • docs/blufi.md(项目自带的 BluFi 设计文档)
  • scripts/sonic_wifi_config.html(声波配网网页)