WiFi 配网方案介绍

更新时间:2018-06-08 10:26:18

配网方案介绍

Android 端 API 描述文档参见:Android 配网
iOS 端 API 描述文档参见:iOS 配网

配网定义

针对有屏可输入设备,如手机、平板等,用户可以直接通过界面输入 SSID 和 PASSWORD 让设备连上 WiFi 网络。对于无屏设备,如插座、灯泡等,用户无法通过输入上网信息让设备接入网络,这个时候我们就需要对这些设备进行配网操作。

配网定义:将路由器的 WiFi SSID 和 PASSWORD 通过某种方式传递到终端设备,让终端设备可以接入 WiFi 网络的过程。

配网方案

接下来将介绍一下四种方案:一键配网(又称 smartConfig 或 广播配网)、热点配网、零配、智能路由器配网。

一键配网

一键配网是手机通过广播发送上网热点信息(路由器 ssid & password),设备通过监听方式获取信息,然后连接上网热点的方案。该方案只需要用户输入 WiFi 的密码,点击开始配网即可完成配网操作。

热点配网

手机启动一个预定义热点(热点名:aha,密码:12345678),设备连接到手机热点获取路由器上网热点信息,之后设备再连接上网热点的方式。该方案需要 WiFi 切换相关的权限,如果没有授予权限可能会导致配网失败,建议将该方案作为补充方案。

零配

通过已连接上网热点的WiFi设备,将热点信息发送给待配网设备的方式。随着设备种类及量的提升,个人拥有的智能设备不止一个,如果能让已经配上网的设备帮助新设备自动配置好网络,那就不需要手动端主动参与配网了,这个方案即为零配。

智能路由器配网

路由器预置配网热点,设备通过路由器预置配网热点获取上网热点的方案。该方案适用于用户家里已经有智能路由器的场景,用户不需要输入 WiFi 密码,只需要点击开始配网即可完成配网操作。

配网开发过程

配网主要分为以下四个过程:发现待配网的设备;开始配网;配网中间状态;配网结果。

image.png | left | 638x90

设备发现

设备发现过程是指:获取待配网设备的产品类别(ProductKey)、设备名称(DeviceName)的过程。目前可以通过以下方式获取待配设备的设备信息:
(1)扫描二维码获取设备信息(扫码实现可使用开源库zxing或者阿里demoapp里的方案);
二维码内容可以是 http://www.taobao.com?pk=a17Gp9Vyqpx&dn=GPRS002 ,扫描获得该String之后可以获得PK,DN。
(2)产品列表或者其他整合的推荐列表;
如获取 thing/productInfo/getByAppKey 当前支持的产品列表;
(3)调用 SDK 本地发现接口发现;
Android: startDiscovery 获取到待配网设备的 ProductKey 和 DeviceName 。
iOS:startDiscovery 获取到待配网设备的 ProductKey 和 DeviceName 。

开始配网

热点配网和其他配网方式相比,会有一些前置的步骤,需要先调用以下接口。
(1)开启手机热点;
(2)发现连接到手机热点的设备;
(3)发送 WiFi 连接信息到设备端;

配网中

开始配网后,SDK会将配网的中间过程回调到上层。比如参数校验是否通过、是否需要用户传入额外的参数、配网进行中、配网结果的回调。

配网结果

配网成功或者配网失败,SDK 都会回调配网结果。配网失败会返回具体的配网错误码和错误信息,配网成功则返回 ProductKey 和 DeviceName 信息。用户可以使用配网成功的信息去做绑定操作。

配网方案对比

Android 配网方案对比:

方案名称
平均配网时间(秒)
适用场景
一键配网(smartConfig)
7.6
只有ProductKey;
2.4G WiFi;
热点配网
20
2.4G WiFi;
零配
6.7
当前环境已有具备为其他待配设备进行配网能力的设备;
无需用户输入WiFi 密码;
智能路由器配网
22
已有支持智能路由器配网的路由器,和支持智能路由器配网的智能设备;
无需用户输入WiFi 密码;

iOS 配网方案对比:

方案名称
配网时间
适用场景
一键配网(smartConfig)
11
只有ProductKey;
2.4G WiFi; 交互简单,只需要输入WiFi密码;
热点配网
16
2.4G WiFi;
零配
6.7
当前环境已有具备为其他待配设备进行配网能力的设备; 无需用户输入WiFi 密码;
智能路由器配网
22
已有支持智能路由器配网的路由器,和支持智能路由器配网的智能设备; 无需用户输入WiFi 密码;

results matching ""

    No results matching ""