物联网|物联网Wi-Fi配网方式,你知道几种?



物联网|物联网Wi-Fi配网方式,你知道几种?
本文插图

一 概要
Wi-Fi大家很早就接触了 , 但是配网对很多人都比较陌生 。 因为早期的Wi-Fi设备基本都是带屏幕和输入设备的(如笔记本/手机/PDA等) , 而配网只需要用户直接输入路由器的SSID/password即可 , 简单到被人忽略 。
但是随着物联网的兴起 , Wi-Fi被大量应用于没有人机交互方式的设备中 , 如智能插座等物联网终端产品中 , 而Wi-Fi(IEEE802.11)标准在设计之初是没有考虑这种无人机交互方式的配网的 , 也就是没有官方标准 。 配网成了一种类似于黑客找漏洞的技术 , 这也就导致了市面上配网的方法多种多样 , 且各家玩各家的 , 鱼龙混杂 , 互不相通 , 整体体验偏低 。
【物联网|物联网Wi-Fi配网方式,你知道几种?】几个概念:
狭义配网:Wi-Fi设备获取路由器信息(SSID,password等)并连接路由器的过程 。
绑定:用户手机APP账号与被配网设备关联的过程 。
广义配网:狭义配网+绑定 。
本文讨论的配网如未注明都指狭义配网 , 并省略云端参与流程 。 简化示意图如下:

物联网|物联网Wi-Fi配网方式,你知道几种?
本文插图

那么市面上的配网技术有哪几种呢?按原理分商用的主要有:
一键配网
广播包长方式
组播地址方式
设备热点配网
蓝牙配网
手机热点配网
路由器配网
零配
其他(如语音配网/摄像头二维码配网等)
阿里云IoT开发的物联网操作系统AliOS Things支持上述1-6配网方式 。 二 详细介绍1 一键配网
流程
一键配网(Smart Config)主要原理为:
设备进入sniffer模式(又叫混杂模式 , 即不过滤数据报文) , 监听环境中所有的802.11报文;
设备需要在所支持的信道(通常1-13)上轮询监听(因为设备不知道用户手机和目标路由器的信道);
捕获到符合配网规则的数据报文后停止信道轮询 , 尝试在在此信道上接收完成所有报文;
当前信道接收失败或超时重新回到步骤2;
数据报文接收完成则关闭sniffer模式 , 回到station模式并开始尝试连接路由器 , 狭义的配网过程完成 。

物联网|物联网Wi-Fi配网方式,你知道几种?
本文插图

数据传输方式
数据的承载方式有两种 , 一种广播方式 , 另一种是组播方式 。 下面分别介绍 。
设备在接入路由器之前 , 没有获得对应密钥 , 无法解密路由器局域网内的数据报文(包括连接到目标路由器的用户手机的报文) 。
如下图所示 , 设备在sniffer模式收到的数据报文主体即Frame Body部分是加密的 , 仅帧头和整个报文长度是不加密的 。 要通过手机将配网信息传给设备 , 那么就得考虑使用这些信息 。
MAC帧格式:

物联网|物联网Wi-Fi配网方式,你知道几种?
本文插图

1)广播包长方式
数据报文长度共2字节 , 且包头和校验和占掉了一部分字段故不能从0开始编码 , 而太长会导致整个数据报文冗余数据急剧增加 , 如折中取11bit 。
具体方式为:手机端通过发送不同长度的广播报文 , 将配网信息编码到报文长度信息中 。 ——有点像藏头诗吧?
2)组播地址方式
如果使用地址编码 , 即使用下图的DA编码,那么就是组播方式 。
ieee802.11将224.0.0.0 ~ 239.255.255.255划定为组播保留地址 , 在以太网中 , 目的IP地址为组播保留地址的数据包 , 目的MAC地址需要做一个映射 。 具体做法是 , MAC地址的3个高字节固定为01:00:5E , 后三个字节依次为组地址的从高字节起的第二字节取低7位、组地址的第三字节和第四字节 , 例如组地址225.215.145.230对应的MAC地址为01:00:5E:57:91:E6 。 所以有23个bit可用户编码 。 优点:
用户操作简单 , 体验好(成功时) 。 缺点: 对手机 , 路由器都有严格的兼容性要求 , 比如有些路由器默认关闭广播/组播报文转发使得设备收不到路由器转发的报文;手机以5G频段连接到路由器 , 2.4G的设备压根收不到包等 , 诸如此类不可控因素导致整体兼容性差 , 配网成功率低 。
总结
物联网刚兴起时大多数厂商的默认选择 , 在饱受用户投诉之后慢慢被弃用 。 2 设备热点配网
设备热点配网很好理解:
设备端Wi-Fi进入softAP模式 , 建立一个约定名称的AP热点;
APP端提示用户手动将手机连接到1中设备建立的热点;
连接建立后 , 手机与设备建立局域网;
手机通过UDP/TCP将配网信息直接传给设备;
设备拿到配网信息后切换回station模式 , 开始连接路由器 。

物联网|物联网Wi-Fi配网方式,你知道几种?
本文插图

优点: 成功率高 , 可靠 。 缺点: 用户操作相对一键配网复杂度略高(iphone用户需要手动跳转到无线局域网设置界面连接app界面提示的设备热点) 。
总结
中庸可靠是其取胜之道 , 在昔日霸主一键配网由于成功率不高被广为吐槽后 , 设备热点配网在市场上的占有率稳定提升 。 3 手机热点配网
这是热点配网(softAP)的一个变种 , 热点不由设备创建而是由手机创建 。 优点: 设备无需支持热点模式 , 端上开发工作量较低;
可与一键配网共存(同时使能) , 在阿里云IOT手机热点配网中 , 手机热点SSID固定为aha , 这样处在一键配网模式的设备一旦扫描到周围存在aha热点即尝试连接aha 。 常用来做备用配网方案 。 缺点: 用户体验不佳 , 尤其在ios设备上APP无法自动创建热点 , 需要用户跳转设置界面手动改设备名并手动打开热点 。
总结
曾经作为一个创新在阿里IoT中作为一键配网失败后的替补方案 , 由于一键配网本身占比降低 , 替补的出场率也就更低了 。 4 蓝牙配网
蓝牙配网整体流程跟设备热点配网差不多 。 只不过用ble替换了设备端的热点 , 理论上还是一种基于点对点连接的配网方式 。

物联网|物联网Wi-Fi配网方式,你知道几种?
本文插图

优点: 兼容性较好 , 成功率高 。
用户体验好 。 缺点: 成本略高 。 相对与其他配网模式 , 需要额外增加蓝牙硬件成本 。
总结
适合与本身既有蓝牙又有Wi-Fi的应用场景的设备 , 或者模组成本相对不是那么敏感的土豪设备 。 随着低成本BLE的推行 , 其占有率逐渐提升 。 5 路由器配网
路由器配网的思路就是路由器在配网模式下开启一个特定的用于配网的SSID , 设备发现了这个热点后连接这个热点以获取配网信息 , 流程跟手机热点配网相似 。 其简化流程图如下:

物联网|物联网Wi-Fi配网方式,你知道几种?
本文插图

优点:
用户体验较好 。
缺点:
应用面窄 , 需满足设备跟路由器都为同一方案的场景 。
总结
适合端上整套生态打法的厂商 。 6 零配
这是一种充分利用待配设备/及主配设备的高权限优势的配网 , 要求主配和待配设备的应用程序都能发送和接收802.11管理帧 。 直接使用802.11 的管理帧(probe request/response)携带配网信息 , 从而实现高效配网 。 简化原理如下:

物联网|物联网Wi-Fi配网方式,你知道几种?
本文插图

优点:
用户体验好 , 成功率高 , 如智能音响对智能设备配网即可使用此方式 。
缺点:
应用面窄 , 需要满足路由器下存在已经配网的同方案设备的要求 。
总结
设计上本身高效可靠 , 但是由于手机APP权限问题 , 无法通过第三方程序组装或者接收Wi-Fi管理帧 , 限制了其在手机上的应用(手机不能当主配) , 也就使得其只能成为一种辅助或者特定领域的配网方式 。 三 总结对比
通过一个表格对比各配网方式特点:

物联网|物联网Wi-Fi配网方式,你知道几种?
本文插图

四 发展方向
除了上面列出的配网方式外 , 还有其他一些方向供大家参考 。 Wi-Fi P2P 。 使用Wi-Fi Direct技术直接将配网信息通过手机传给设备 。
缺点:无奈仅Android手机支持Wi-Fi Direct技术 , IOS尚不支持 。 而且不是所有的安卓手机都支持 , 导致手机兼容性差 , 一条腿走路注定了无法普及 。 苹果AWDL协议 。 AWDL可以认为是苹果私有的端上P2P协议 , 如Air Drop即基于这种协议 。 无奈协议不开源 , 即使对协议进行破解 , 使用起来也存在法务风险 。 不然可以跟1中方式配合使用 , 形成互补 。
因此 , 上面两种方式在通用配网中不会成大气候 。 针对特定场景的配网:
语音配网(使用本地语音识别技术给带语音识别模块的设备如智能音响配网) 。
针对智能摄像头的二维码配网(摄像头主动扫手机APP生成的二维码)等 。
借助了自己独特的软硬件优势在相应领域提供体验上佳的配网体验 , 是物联网发展对细分市场高度定制和优化的表现 。 DPP(Device Provisioning Protocol) 。 Wi-Fi Easy Connect的重要组成部分,Wi-Fi Alliance官方制定 。 由4个步骤组成:
引导:扫描二维码或输入字符串触发 , 获取对方设备的公钥以及信道、mac等其他信息;
验证:待配与主配通过上一步获得的信息建立安全连接;
配置:配网信息传输给待配设备;
接入:待配设备使用配网信息向目标AP认证并建立连接 。
目前DPP还处于标准制定完善阶段 , 尚未商用 。 不过一旦官方出来制定一套统一配网标准 , 其前景还是非常可观的 , 有望一统江湖 , 很大程度解决配网碎片化的问题 。
在DPP商用之前 , 设备热点配网(↗)/蓝牙配网(↗)/一键配网(↘)仍然是主流 。
来源:阿里云开发者社区


    推荐阅读