固件开发
提示
本页面介绍了固件开发相关的内容。
配网(Wi-Fi 配网)
配网 (Provisioning) 是物联网 (IoT) 设备部署过程中的第一步,并至关重要。在此环节中,设备会配置好网络凭证,并完成云端服务的身份认证。
ESP RainMaker 集成了 ESP-IDF 中的网络配网组件,大幅简化了配网流程。通过安卓或 iOS 手机应用程序,选择蓝牙 (BLE) 或软接入点 (SoftAP),即可完成设备配网。
此外,用户-节点映射操作也在配网过程 中完成。
配网传输方式:BLE/SoftAP
| 方式 | 通信方式 | 设备广播 | 用户操作 | 优点 | 缺点 |
|---|---|---|---|---|---|
| BLE | BLE GATT | BLE 广播,设备名称格式如 PROV_XXXX | 手机扫描设备 → 建立 BLE 连接 → 建立安全会话 → 发送 Wi-Fi 凭证及其他信息 | 速度快、用户体验流畅、反馈清晰、手机可保持联网状态 | 设备须支持 BLE、可能存在兼容性问题 |
| SoftAP | 基于 Wi-Fi 的 HTTP 协议 | 设备创建热点,热点名称 (SSID) 格式如 PROV_XXXX | 手机连接至该热点 → 建立安全会话 → 发送 Wi-Fi 凭证及其他信息 | 实现简单、兼容性高 | 需手动切换 Wi-Fi、过程中可能断连、切换网络时手机可能断连 |
配网流程(BLE 示例)
- 设备开启 BLE 广播,包含以下信息:
- 设备名称:
PROV_xxxxxx - 服务 UUID:
0xFF50(乐鑫自定义配网服务)
- 设备名称:
- 手机应用扫描并发现设备
- 应用建立 GATT 通信
- 应用建立安全会话(可选择输入 PoP 验证码)
- 应用交换数据以完成用 户-设备映射
- 应用发送 Wi-Fi SSID 和密码
- 设备尝试连接网络,并向云端上报状态
- 应用先在本地检查 Wi-Fi 连接状态,随后通过云端验证设备状态
信息
SoftAP 遵循类似流程,区别在于其通信方式为 HTTP 而非 BLE。
配网流程(扫描二维码)
在生产环境中,部分设备会附带一个二维码,其中包含基础的配网元数据(名称、验证码、传输方式)。使用应用程序扫描此二维码后:
- 应用程序解析二维码内容,其中包含传输方式 (BLE/SoftAP)。
- 应用程序根据传输方式字段,选择对应的配网流程。
- 此方式可省去手动发现设备的步骤,提升配网的一致性。
二维码仅作为引导机制,而非传输载体。实际数据的传输仍通过 BLE 或 SoftAP 完成。这一方式能避免手动搜索或选择设备,从而简化用户体验。
二维码内容示例
RainMaker 二维码通常包含 JSON 格式数据或 Base64 编码的 URL,格式如下:
{
"ver": "v1",
"name": "PROV_AB12CD",
"pop": "abcd1234",
"transport": "ble"
}
或:
https://rainmaker.espressif.com/qrcode.html?data={"ver":"v1","name":"PROV_AB12CD","pop":"abcd1234","transport":"ble"}
扫描二维码后,应用程序可实现以下功能:
- 获取设备名称(用于 BLE 扫描或 Wi-Fi SSID)
- 获取 POP(如需使用)
- 确定配网方式(BLE 或 SoftAP)
开发者参考:相关 API
目前有两套配网接口:
network_provisioning:idf-extra-components项目下的组件。(推荐)wifi_provisioning:ESP-IDF 下的组件。(旧版接口)
当配置项 CONFIG_ESP_RMAKER_USING_NETWORK_PROV 启用时(默认启用),系统将使用 network_provisioning 接口;若该配置项未启用,则会回退使用 wifi_provisioning 接口。
主要差异
-
功能层面:
network_provisioning组件不仅支持通过 BLE 传输实现的 Wi-Fi 配网,还支持通过 BLE 实现的 Thread 配网。 -
API 命名:
network_provisioning的 API 以network_为前缀。wifi_provisioning的 API 以wifi_为前缀。