智能家居设备是怎么连上家庭 Wi-Fi 的?

109 天前
 bukekangli
现在好多智能家居设备,下载厂商 app ,然后扫码就可以连上了,但是这些 app 怎么把 Wi-Fi 密码传给智能设备的呢
1537 次点击
所在节点    智能家电
6 条回复
fuzzsh
109 天前
蓝牙
loading
109 天前
APP 能获得你手机正在连接的 wifi 密码,或者那个 app 要求你输入的。
你手机要先连到那个设备默认开发出的一个 AP wifi ,你手机已经和智能家居设备建立 wifi 了。
loading
109 天前
高级点的有 NFC ,和蓝牙,也能广播给那个设备,一般就是你手机扫描设备上的二维码,花样很多。还有 wifi 摄像头扫描 app 生成的一个二维码,相关配置信息就在那个二维码上。
jiuhuicinv
108 天前
蓝牙或热点加配套 APP 吧。毕竟如果家居设备嵌入 4g 物联网卡用来接收配置就没必要连 WiFi 了,不过也是有的
dawnvivid
108 天前
来 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]
z919126592
108 天前
遇到一些设备是通过手机播放声波给设备传输的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1135647

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX