以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「englyf」https://mp.weixin.qq.com/s/tb5eOFNUZLtPPLipLAh3vA
本文大概 1435 个字,阅读需花 4 分钟内容不多,但也花了一些精力如要交流,欢迎评论区留言谢谢你的点赞收藏分享
目前在家庭物联网这一块,绝大部分的电子消费品都是基于wifi联网的设备。从商家那里达到消费者手中之后,简单开机使用无法体现其全部价值,还是需要经过消费者给设备配网的过程,把设备从信息孤岛接入互联互通的世界。
什么是配网?
买回来的电子消费品如果需要基于wifi联网,那么用户就需要先通过指定APP告诉自己的设备如何连接wifi(用户名和密码),设备才基于获取的账户信息接入网络。
设备成功联网之后,距离能充分利用网络的功能还是有差距的。这些设备对于用户来说就是专用的联网设备,它不可以随心所欲一会连接百度,一会又连接抖音,它的才能需要专用的服务器来辅助发挥。
一般物联网设备,都需要在公网搭配专用服务器,基于这些服务器帮助用户实现对设备的随时随地访问,充分沟通用户和设备。因此,接入服务器是第二步。为了服务器和设备安全通信,令牌信息也不可或缺。
配网的一般过程
一般在配网的最开始阶段,APP 先从服务器请求一个令牌信息。获得令牌返回后,APP 可通过多种方式传递给设备,包括wifi SSID、密码和令牌。接着 APP 开始尝试从服务器获取已激活的设备信息列表。
然后,设备利用收到的相关信息连接路由器,路由器为接入的设备分配新 IP 地址,设备成功接入网络。
设备连接服务器,开始设备认证过程。设备将三元组信息接入服务器,服务器校验信息通过。令牌信息上传给服务器,完成安全激活。
服务器向 APP 返回已激活的设备信息列表,配网过程结束。
sequenceDiagramparticipant APPparticipant CloudServerparticipant Deviceparticipant RouterAPP ->> CloudServer : 请求令牌(Token)CloudServer ->> APP : 令牌(Token)返回loop 各种传输手段APP ->> Device : Token、SSID、PasswordendAPP ->> CloudServer : 请求已激活设备列表Device ->> Router : 连接路由器Router ->> Device : 分配 IP 地址Device ->> CloudServer : 请求激活CloudServer ->> Device : 激活返回CloudServer ->> APP : 返回已激活设备列表配网归类
配网的主流方式有几种,比如热点配网、智能配网、蓝牙配网等。不同方式之间的主要差异就在于从 APP 传输信息给到设备的不同途径。
热点配网
热点配网属于 wifi 配网的一种,利用设置设备的 wifi 模组为热点模式,这样允许手机连接设备的热点,使得手机和设备处于同一局域网中,APP 即可把令牌、路由器的 SSID 和密码等信息加密后在局域网内广播。
设备通过接收局域网内的广播包来解析并解密,获取路由器的 SSID 和密码,然后再切换到 Station 模式去连接路由器,连接成功后则可向云端发起激活请求,完成绑定激活流程。
由于热点英文简称 AP,所以也叫 AP 模式。
热点配网流程:
sequenceDiagramparticipant Deviceparticipant APPDevice ->> Device : 开启热点APP ->> APP : 连接热点APP ->> Device : 广播配网信息:令牌、SSID、PasswordDevice ->> Device : 接收解析APP –> Device : 剩余配网过程智能配网
智能配网,利用设置设备的 wifi 模组为监听模式,不断抓取无线报文并对其进行解析,提取需要的信息。手机连接路由器,APP 把令牌、路由器的 SSID 和密码等信息按一定方式进行编码,通过组播或广播方式发射无线报文。
常用的编码方式有两种:
先用 UDP 数据包长度来编码,然后通过 UDP 广播发送。先用 MAC 地址来编码,然后通过 UDP 组播发送。
智能配网也叫快速配网,有的简称 EZ 配网。
相比于 AP 配网,EZ 配网虽然也属于 wifi 配网的一种,但是对最终用户来说更加便捷。缺点是,EZ 配网对路由器和手机硬件有要求,所以兼容性不足,以及无线干扰产生丢包的问题会更明显,所以 EZ 配网无法保证 100% 成功。
智能配网流程:
sequenceDiagramparticipant Deviceparticipant Routerparticipant APPAPP ->> Router : 广播配网信息:令牌、SSID、PasswordRouter ->> Device : 广播配网信息:令牌、SSID、PasswordDevice ->> Device : 捕捉无线报文Device ->> Device : 解析解密APP –> Device : 剩余配网过程蓝牙配网
蓝牙配网,意思就是手机 APP 通过蓝牙通道传输配网相关信息(令牌信息、路由器的 SSID 和密码等)给到设备,设备基于这些信息完成配网的过程。
流程是,设备首先是通过蓝牙广播暴露设备相关的信息,手机 App 接收并解析蓝牙广播包,如果广播包中包含指定服务,则 APP 发起扫描响应请求,进一步获取设备的详细信息,获取到设备完整的信息后在 App 显示待配网设备。当用户选择绑定设备时,App 与设备建立蓝牙连接,把配网相关信息通过蓝牙通道发送给设备,设备获取到配网信息,完成激活流程。
蓝牙配网的流程如下所示:
sequenceDiagramparticipant Deviceparticipant APPDevice ->> APP : 蓝牙广播APP ->> APP : 接收解析APP ->> Device : 扫描响应请求Device ->> APP : 完整详细信息APP ->> APP : 显示待配网设备APP ->> Device : 建立蓝牙连接APP ->> Device : 配网信息APP –> Device : 剩余配网过程