dawnvivid
6 天前
来 V 站这么久了第一次遇到了专业对口的问题(曾经干过两三年的消费物联 APP 开发),让我来讲一讲!
首先,授人以渔:“把 WiFi SSID 和密码告诉智能家居设备,让它能够自行连上家庭 WiFi”,这个过程叫做“配网”
常见的配网方式,必要条件与优缺点:
1. SoftAP
楼上已经有朋友说到过
原理:
1 )设备在未配网的状态下,自身会开启一个 WiFi 热点
2 )然后只需手机连接设备开启的热点(一般通过手机 APP 自动,或者引导用户进行),这样手机就和设备建立起了点对点的无线连接(此时设备还不能上网)
3 )再然后,手机 APP 通过特定的通讯协议,把用户的家庭 WiFi SSID 和密码通过设备开启的 WiFi 热点发送给设备。
优点:必要条件最少,只需手机能连 WiFi
缺点:如果手机在这之前连接的是家庭 WiFi ,那么手机连接设备 WiFi 进行 SoftAP 配网期间,手机会是断网状态(如果手机也没有打开 4G 开关的话),容易对一些小白用户造成一些困扰,同时不便于智能家居 APP 在此时做一些必要的服务器 API 通讯
2. BLE Combo
楼上也已经有朋友说到过
原理:
1 )设备在未配网的状态下,自身会进行 BLE (低功耗蓝牙)广播,使得手机可以发现并通过 BLE (低功耗蓝牙)连接到设备
2 )手机通过 BLE 连接到设备后,通过 BLE 向设备发送家庭 WiFi SSID 和密码信息
优点:规避了 SoftAP 需要手机切换连接不同 WiFi 的缺点,而且会比 SoftAP 综合成功率更高一些
缺点:需要设备的无线通讯模组支持 BLE ,这可能会增加成本(如果设备的核心功能只需要 WiFi 而并不需要 BLE 的话)
还有其他的一些比较少见的配网方式:
3. SmartConfig
原理:
1 )设备在未配网的状态下,无线通讯模组开启混杂模式,监听 WiFi 信号中传输的所有信息,从这些信息(的未加密部分特征,例如报文长度)找到以特定规律编码的信息(有点类似使用手电筒通过摩斯密码打出 SOS 信号?),从中提取出家庭 WiFi SSID 和密码信息
2 )对应地,需要手机 APP 按照同样的编码方式将家庭 WiFi SSID 和密码信息发送(或者应该说是广播)出来
优点:手机无需进行任何额外的连接操作,只需在现有连接状态下进行数据发送操作
缺点:花活,成功率低
4. 反向扫码配网
前提条件:设备安装有摄像头类的硬件,例如监控摄像头
原理:
1 )手机 APP 要求用户提供 SSID 和密码后,将其按特定格式编码为文本,然后用二维码展示到手机屏幕上
2 )设备通过摄像头扫描二维码,读取其中的 SSID 和密码信息
5. 声波配网
前提条件:设备安装有麦克风
原理:
1 )手机 APP 要求用户提供 SSID 和密码后,将其按特定格式编码为音频,然后通过手机扬声器播放出来
2 )设备通过麦克风收听这段编码的音频,从中解码出其中的 SSID 和密码信息
6. 直接交互配网
前提条件:设备有触摸屏类的硬件
这个就不赘述了,如果物联设备本身就是带触摸屏 GUI 的,直接让用户在设备上输入 SSID 和密码就行 [doge]