一、wifi配网:
1. 设备启动并进入配网模式:
- 设备的嵌入式系统启动后,会开启一个 AP(Access Point,热点)模式或通过蓝牙等待配网
- 配网模式通常由硬件(如按键)触发,也可以通过预设条件自动进入(开发 Wi-Fi 模块驱动、网络协议栈。实现热点模式、数据接收和 Wi-Fi 配网流程)
2. 前端 App 与设备连接:
- 用户通过手机 App 扫描到设备的热点(或使用蓝牙连接)
- 前端 App 使用 Wi-Fi 或蓝牙协议与设备通信 (前端开发 App 配网界面和逻辑)
3. 用户选择并输入 Wi-Fi 信息:
- App 提供界面供用户选择可用的 Wi-Fi 网络并输入密码
4. App 发送配网信息到设备:
- SmartConfig 或 ESP-Touch:App 将 Wi-Fi SSID 和密码通过特殊的数据包广播到设备,设备通过监听 Wi-Fi 数据包解析出网络信息
- 蓝牙辅助:通过蓝牙将 Wi-Fi 信息直接传递给设备
5. 设备连接 Wi-Fi:
- 嵌入式设备接收到 Wi-Fi 信息后,尝试连接到目标路由器
- 连接成功后,设备通过消息(如 MQTT)或 RESTful API 通知云端自己上线
6. 设备绑定:
- App 将设备信息(如设备 ID)与用户账号绑定,通常通过云端接口完成
二、蓝牙配网
1. 设备启动并开启蓝牙广播:
- 设备嵌入式系统初始化后开启蓝牙广播模式,等待配对
2. 前端 App 搜索并连接设备:
- 用户打开手机 App,扫描到设备的蓝牙广播后进行连接
- App 和设备建立蓝牙通信通道
3. App 发送 Wi-Fi 信息:
- App 将 Wi-Fi SSID 和密码通过蓝牙发送给设备
- 设备接收到 Wi-Fi 信息后存储到嵌入式系统的非易失性存储器中
4. 设备尝试连接 Wi-Fi:
- 嵌入式设备根据接收到的 Wi-Fi 信息连接到路由器
- 如果连接失败,可能会反馈错误信息给 App
5. 设备绑定与注册:
- 设备连接 Wi-Fi 成功后,上报自身信息到云端
- 前端 App 与云端完成设备绑定和注册
有一个问题点: 无论是wifi配网还是蓝牙配网都是需要App 将 Wi-Fi SSID 和密码通过蓝牙发送给设备, 那为啥还需要蓝牙配网?
蓝牙配网的核心特性:
蓝牙配网的关键点在于,设备的主要通信方式并非仅依赖 Wi-Fi,而是在初期通过蓝牙建立通信,然后可能根据需求切换到 Wi-Fi 或继续使用蓝牙
1. 主要用途
- 蓝牙是主通信方式:
- 有些设备在日常运行中主要依靠蓝牙进行数据传输(如蓝牙耳机、智能手环)
- Wi-Fi 是辅助的或仅用于初次配置的功能
- 无需 Wi-Fi 网络时仍可工作:
- 在某些场景下,用户可能不提供 Wi-Fi 环境,设备可直接通过蓝牙工作
一个非蜂窝板的手表, 充电结束后很久, 手机靠近手机后, 手机才会收到通知, 手表充电完成.
当手表和手机距离超出蓝牙范围(5-10m)时,蓝牙连接中断,此时手表无法将通知推送到手机, 如何收到消息的, 就涉及到模块的协议了
只有当手表重新进入蓝牙通信范围时,连接恢复,未传递的通知才会推送到手机.
如果是蜂窝板手表, 就可以独立联网, 手表充满电的时候, 无论手机在哪里, 都会收到手表充满电的通知
2. 蓝牙配网的完整流程:
- 蓝牙用于初始化通信
- 如果设备需要 Wi-Fi(例如云端功能),蓝牙传递 Wi-Fi 配网信息
- 设备连接 Wi-Fi 后继续工作,蓝牙可作为备用通信手段
3. 为什么 Wi-Fi 配网仍需要蓝牙辅助
即使在 Wi-Fi 配网中,蓝牙的作用主要体现在以下场景中:
简化用户操作:
- 传统的 Wi-Fi 配网方式(如 SmartConfig 或 AP 模式)需要用户切换手机的 Wi-Fi 热点,操作较为复杂
- 蓝牙连接无需切换网络,操作更直观
提高配网成功率:
- Wi-Fi 配网的成功率容易受到网络干扰影响,而蓝牙作为短距离通信协议,稳定性更强
- 蓝牙可以在干扰较大的 Wi-Fi 环境中提升初始通信成功率
设备无屏幕时的信息交互:
- 无屏幕设备(如智能灯、插座)无法直接显示 Wi-Fi 状态
- 蓝牙可以为设备提供一个低成本的通信接口,用于初始配置