🏠 home › concepts › ble-provisioning
tags
[IoT, BLE, 蓝牙, 配网]
created
2026-04-12
updated
2026-04-30
sources
[raw/snippets/iot-docs/ref-ble.md, raw/snippets/iot-docs/guide-app.md, raw/snippets/iot-docs/guide-device.md, raw/snippets/bk7258-build/iot-architecture-onboarding.md, raw/notes/2026-04-30-claude-desktop-buddy-vs-sentino-iot-sample-architecture.md]

定义

用户首次使用 IoT 设备时,通过手机 App 蓝牙(BLE)将绑定信息(和 WiFi 凭证)传递给设备的过程。使用 Rlink BLE V1 协议。

关键要点

WiFi 模式蓝牙包的 8 字段(含 MQTT 接入信息)

蓝牙配网包不只下发 WiFi,还包含 MQTT 接入信息(实现:rino_ble_app.c:290-302):

字段 含义 写到哪
sid WiFi SSID Config_Net_info->Wifi_Info.Ssid
pw WiFi password Config_Net_info->Wifi_Info.Key
mq MQTT host 域名 Config_Net_info->Mqtt_Info.Mqtt_Host
iport MQTT 端口 Config_Net_info->Mqtt_Info.Mqtt_Port
bid 绑定 ID(用户绑设备的关系凭证) Config_Net_info->Bind_Id
userId 用户 ID Config_Net_info->User_Id
country 国家码(默认 CN) Config_Net_info->Country_Code
tz 时区(默认 Asia/Shanghai) Config_Net_info->User_Tz_Str

设计含义:MQTT 接入地址不在固件硬编码,由 APP 在配网时动态下发到 Flash。好处是 APP 端可以根据用户区域/账号/品牌路由到不同 MQTT 集群(国内/海外、生产/测试、多租户),固件出厂后不用换。这是消费 IoT 服务发现问题的"WiFi 解法"——用 APP 当场参与代替引导服务器。详见 iot-device-bootstrap 与其他 4 种 4G 解法对比。

另一种 BLE 协议设计参考:claude-desktop-buddy

claude-desktop-buddy(Anthropic 2026-04-20 开源)是"BLE + 设备"参考代码的另一种哲学样本——用业界标准 Nordic UART Service UUID(6e400001-b5a3-f393-e0a9-e50e24dcca9e)+ newline-delimited JSON 而非自定义 V1 帧。两种风格对比:

维度 Sentino BLE V1(本页) claude-desktop-buddy
Service UUID 自定义(广告 0xA101 ≠ GATT 0x1910 NUS 业界标准 6e400001-...
数据格式 V1 帧 HEAD/SN/TOTAL/LEN/CRC + 重组 UTF-8 JSON,\n 分隔,发送端裸切、接收端按 \n 重组
分包可靠性 CRC 错或 SN 不连续整帧丢弃 委托 BLE 协议栈
加密 BLE 链路不强加密;应用层声称 AES-ECB 但 web 工具走 plaintext LE Secure Connections + Passkey + Bond,特征 ENCRYPTED 强制
适用场景 平台优先(设备-云-业务一体),4G 时代起源的 Tuya/Rlink 体系 协议优先(端到端两点无云),桌面应用 + maker 设备

→ 选 NUS + newline JSON 的好处是 maker 能用业界工具(nRF Connect / bluefy / Web Bluetooth Examples)直接 talk,没有协议学习门槛;选 V1 帧 + 自定义 GATT 的好处是更精细的可靠性控制(CRC + 序号 + 重组)+ 平台层身份耦合(与 broker / 三元组 / 云端账号体系协议同源)。两条路对应不同商业模式,详见 claude-desktop-buddy"协议优先 vs 平台优先"段。

相关概念