WiFi 配网方案介绍

更新时间:2019-05-13 15:31:21

配网方案介绍

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

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

配网定义

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







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

配网方案

接下来对阿里提供的WiFi配网方案进行描述:一键配网(又称 smartConfig 或 广播配网)、手机热点配网、零配、智能路由器配网。

一键配网

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


手机热点配网

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


零配

通过已连接上网热点的WiFi设备,将热点信息发送给待配网设备的方式。该方案不需要用户在手机端输入WiFi热点的SSID/密码,因此称为零配。


智能路由器配网

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

本方案现在已经不再维护,因此此处不做描述

设备热点配网

方案简述: 设备开启设备WiFi热点, 手机搜索发现到热点后连接到该热点, 手机将路由器上WiFi热点的SSID/密码发送给WiFi设备, 然后WiFi设备使用该SSID/密码连接WiFi热点

工作原理如下所示:

摄像头扫码配网

针对拥有摄像头及二维码解码能力设备,可以通过App生成携带SSID、password等信息的二维码,摄像头根据App的二维码画面解码出信息,连接路由器,即完成配网绑定流程。
开发者将SSID、password信息传入SDK后,SDK会将完整二维码信息回调并开启局域网监听,开发者需要展现二维码并监听配网结果。

二维码规则:二维码中携带的信息如下:

key 描述 是否必选
v version,版本号,区分为阿里的二维码规则,当前为Ali_1 必选
s ssid,家庭路由SSID 必选
p password,家庭路由密码 必选
b BSSID,家庭路由的BSSID信息, Hex String,解决gbk编码等问题 必选
t token,绑定需要的Token信息,3 Bytes random string 可选

二维码拼接规则:
按Json 规则拼接,
e.g.

{"v":"Ali_1","s":"Router","p":"12345678","b":"EC26CAB68CC","t":"93DAB7"}

配网开发过程

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

设备发现

设备发现过程是指:获取待配网设备的产品类别(ProductKey)、设备名称(DeviceName)的过程。目前可以通过以下方式获取待配设备的设备信息:
(1)扫描二维码获取设备信息(扫码实现可使用开源库zxing或者阿里demoapp里的方案);
二维码内容可以是 https://www.taobao.com?pk=a17Gp9Vyqpx&dn=GPRS002 ,扫描获得该String之后可以获得ProductKey(蜂窝网二维码中需包含DeviceName)。
(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;
交互简单,只需要输入WiFi密码;
热点配网 20 2.4G WiFi;
零配 6.7 当前环境已有具备为其他待配设备进行配网能力的设备;
无需用户输入WiFi 密码;
智能路由器配网 22 已有支持智能路由器配网的路由器,和支持智能路由器配网的智能设备;
无需用户输入WiFi 密码;
设备热点配网 11 设备支持启动WiFi热点
摄像头扫码配网 10(依赖摄像头识别解码能力) 摄像头设备且支持二维码解码能力

iOS 配网方案对比:

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

results matching ""

    No results matching ""