物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004 参考

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/li_yangyang_li/article/details/50983383

物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004

物联网WIFI

嵌入式爱好者(小子图) · 2015-09-05 11:07

物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004

frameborder="0" allowtransparency="true" scrolling="no" vspace="0" hspace="0" style="margin: 0px; padding: 0px; position: static; display: block; border-style: none; vertical-align: baseline; width: 640px; height: 112px;">

自从物联网问世以来,如何使得物  能够联网有了很多的方式,目前运用非常广的WIFI,今天就总结下自这个方面,也对于有需要的盆友也希望有抛砖引玉之效果。

来看个知乎上的提问,很有意思!

问题:

买了BroadLink的智能插座,发现有一个很神奇的一键配置功能。简单的说就是:当智能插座还没有连上WiFi的时候,此时通过手机App可以将WiFiSSID及密码一键配置到智能插座上去。


frameborder="0" allowtransparency="true" scrolling="no" vspace="0" hspace="0" style="margin: 0px; padding: 0px; position: static; display: block; border-style: none; vertical-align: baseline; width: 600px; height: 112px;">


知乎有人回答,看到比较好的解答是:

解析一键配置,其大体工作原理如下

1.  设备进入初始化状态,开始收听附近的 WiFi 数据包。

2.  手机/平板设置 WiFi 名字和密码后,发送 UDP 广播包。

3.  设备通过 UDP 包(长度)获取配置信息,切换网络模式,连接上家里 WiFi,配置完成。

Broadlink最新的插座SP2 RM2e-Air等用的是Marvell Easy-Connect方案

提到的 Broadlink,第一代智能插座产品 Sp1 使用的是 TI 的方案:430 单片机+ CC3000 WiFi 芯片(具体芯片 MSP430F5309 +CC3000MOD)。

到了第二代插座产品 Sp2 使用的是 Marvell 的方案:Cortex-M3 单片机 + 低功耗 Wifi 芯片(具体芯片 88MC200 + 88W8782)。

接下来我们来分析一下原理

物联网智能单品路线:  智能硬件+APP+

APP将要配置上的路由的wifi用户名、密码进入智能硬件,目前各个WIFI芯片厂家基本采用以下几种方式

1TI smartconfig 

2)AP模式: APP 配置 手机连接到 智能硬件(WIFI芯片 的AP),构建成一个局域网,当然该局域网是不能上网的,但是局域网内的各个设备的通信是OK

此时 该局域网内一般有三个设备(WIFI芯片工作在AP模式 或者是AP+STATION模式)手机和智能硬工作在STATION模式。

smartconfig也就是所谓的一键配置,速度比AP模式快,为什么呢?请看下面分解。

所谓的smartconfig就是:

l  手机APP端发送包含WIFI 用户名 WIFI密码的 UDP广播包或者组播包;

l  智能终端的WIFI芯片可以接收到该UDP包,只要知道UDP的组织形式,就可以通过接收到的UDP包解密 出WIFI 用户名、密码;

l  然后智能硬件配置到指定的WIFI AP 上。

AP模式比较不好的就是配置时间比smartconfig要长,手机连接的WIFI接入点会变化,如果配置不成功,手机就无法上网,需要在手动配置WIFI,手机才能上网。

ESP8266 芯片:SDK提供两种连接方式,

1)smartconfig

采用UDP广播模式(UDP接收IP地址是255.255.255.255)esp8266先scan 下AP ,得到AP的相关信息,如工作的channel,然后配置wifi芯片工作在刚才scan到的channel上去接收UDP包,如果没有接收到,继续配置ESP8266工作在另外的channel上,如此循环,直到收到UDP包为止,为什么要提前进行SCAN 下WIFI AP呢?就是为了提高配置效率。假设当前网络中只有两个AP,一个AP工作在CHANEL1,另外个 ap工作在channel13,我们现在需要配置智能硬件连接到AP2 ,就是channel13上,如果不提前scan就需要从1--13扫描浪费时间。就是需要从channel1-chane2---...channnel13一直扫描了,如果扫描了AP,芯片马上从AP CHANNNEL1 到channel13加快获取到UDP包;


frameborder="0" allowtransparency="true" scrolling="no" vspace="0" hspace="0" style="margin: 0px; padding: 0px; position: static; display: block; border-style: none; vertical-align: baseline; width: 300px; height: 52px;">


2) AP接入

AP 是 (Wireless) AccessPoint 的缩写,即 (无线) 访问接入点。简单来讲就像是无线路由器一样,设备打开后进入 AP 模式,在手机的网络列表里面,可以搜索到类似 TPLINK_XXX 的名字(SSID)。

frameborder="0" allowtransparency="true" scrolling="no" vspace="0" hspace="0" style="margin: 0px; padding: 0px; position: static; display: block; border-style: none; vertical-align: baseline; width: 564px; height: 112px;">


QCA4004 跟ESP8266不同,它不进行行前期AP扫描,直接从信道1-2--。。13 循环配置区接收UDP包,并且UDP包采用组播。

PS:

这些看似不同的方案实质上思路是一致的,如刚才提到的 Broadlink,第一代智能插座产品 Sp1 使用的是 TI 的方案:430单片机+ CC3000 WiFi 芯片(具体芯片MSP430F5309 + CC3000MOD)。
到了第二代插座产品 Sp2 使用的是 Marvell 的方案:Cortex-M3 单片机 + 低功耗 Wifi 芯片(具体芯片88MC200 + 88W8782)。


至于 Broadlink 要换方案的原因,抛开价格,功耗因素,WiFi 兼容性这块也值得去考虑。对比这 2 个方案还会发现 Marvell 的芯片兼容性要胜出一些(Marvell 的 88W8782 支持 IEEE 802.11 a/b/g/n,TI 的 CC3000 只支持 IEEE802.11 b/g)。

随着无线路由器双频 WiFi(可以有两个WiFi 名字,其中一个 5G,一个 2.4G)的越来越多,也许下一次智能硬件公司更换 WiFi 方案时,设备支持 5G 也会是个选择因素了(换个支持 5G 的芯片方案)。

再往下畅想,对于手机厂商来讲,可以进一步的优化基于一键配置的连接 WiFi 方式:借助于手机共享自身连入的 wifi(SSID)给设备,直接给用户提供免配置体验(实际是后台替你做了一键配置的流程)。


展开阅读全文

没有更多推荐了,返回首页