来源:http://www.jxtobo.com/4572.html 和 http://blog.csdn.net/flyingcys/article/details/49283273?reload

物联网智能单品构成: 智能硬件、APP、云

智能家居/家电现阶段还处于普及阶段,由于家庭wifi网络的普及,目前普遍采用wifi与路由器完成连接,与手机/云端进行数据交互.

智能硬件,如智能插座,智能空调,智能空气净化器由于不具备人机交互界面,不能像电脑一样的搜索/选择指定路由器,输入连接密码的界面,所以必须先解决正确连接路由问题;

目前流行的wifi配置模式一般有以下2种:

1:智能硬件处于AP模式,手机用于station模式,手机连接到智能插座的AP后组成局域网,手机发送需要连接路由的SSID及密码至智能插座,智能硬件主动去连接指定路由后,完成连接。

在处于局域网时,

2:一键配置(smartconfig)模式:智能硬件处于混杂模式(可以抓取空中所有的802.11帧)下,监听网络中的所有报文;手机APP将SSID和密码编码到UDP报文中,通过广播包或组播报发送,智能硬件接收到UDP报文后解码,得到正确的SSID和密码,然后主动连接指定SSID的路由,完成连接

以上两种方式都可以达到让智能硬件连接至指定路由的效果,但是AP模式需要手动切换手机wifi连接的网络,先连接智能硬件的AP网络,配置完成后再恢复连接正常wifi网络.有一定的复杂性,耗时较长;

但是smartconfig由于路由器品牌及手机品牌众多,存在一定的兼容性问题,所以目前一般厂家仍保留AP模式,作为smartconfig失败后的备用配网方案;

1、AP接入

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

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

1、设备进入初始化状态,开始收听附近的WIFI数据包;

2、手机/平板APP设置WiFi名字和密码后,发送UDP广播(组播)包;----智能设备的WIFI芯片可以收到该UDP包,只要知道UDP的组织形式,就可以通过收到的UDP包解密出WIFI的SSID和密码;

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

如下图所示

所谓智能配网:即使用WIFI设备本身自带的WIFI信号,在MAC层将SSID和密码按照一定的协议格式填充在MAC包中不加密的包头部分,采用广播和抓包的方式,从手机等设备将SSID和密码分段多次传递给WIFI模块。

下面重点讲解一下一键配置模式原理及应用;当前主流IOT的wifi方案有:

厂商

芯片方案

技术名称

发包方式

1

TI

CC3200

SmartConfig

往某一固定IP发udp包

2

高通

QCA4004/QCA4002

SmartConnection

3

联发科MTK

MTK7681

SmartConnection

组播地址编码

4

MARVELL

MC200+8801/MW300

EasyConnect

组播地址编码

5

Reltek

AMEBA

SimpleConfig

组播地址编码

6

乐鑫

Esp8266

SmartConfig

组播,通过长度编码

7

新案线

NL6621

SmartConfig

组播地址编码

8

微信

AirKiss

全网广播,通过长度编码

这个功能最早是TI提出并应用于CC3200上;不过从原理上讲,只要芯片驱动支持开启混杂模式(WiFi Promiscuous),就可以支持一键配网功能,只是各个厂家叫法及实现编码方式不同而已;

手机编码发送采用有UDP组播或广播,不同的发送方式和编码,对应的解码过程也不一样。当前测试发现,微信是通过UDP广播包实现的;TI是通过往一固定IP地址发送udp包;其他芯片厂家提供的一般为UDP组播方式;

由于无线数据传播必定是广播的,所以必然可以被监听到;如果AP没有加密的话,UDP直接可以把相关的信息发送出来.但是路由器AP一般都是加密的,而且加密方式不固定.wifi模块在无法直接解析出数据包

我们通过分析802.11的MAC帧格式,可以知道,链路层载荷数据(即网络层的头部及网络层数)在数据帧中是清晰可见的,只要接到到802.11帧就可以立刻提取出载荷数据.

常见两种数据帧格式:

Station to AP

AP to Station

DA:目标MAC地址

SA:源MAC地址

LENGTH:表示后面数据的长度

LLC:表示LLC头

SNAP:表示3byte的厂商代码和2byte的协议类型表示

DATA:载荷数据

FCS:帧检验序列

发送端:可以采用2种不同的编码发送方式——UDP广播和组播;

一:UDP广播:

小规模测试后,发现当前只有微信的AirKiss采用了全网广播模式,为啥微信会采用广播模式,原因未知;TI采用的是固定IP地址的UDP数据包,原理和微信基本一致;

从802.11帧格式分析中获知,从无线信号监听方的角度来说,不管无线信道有没有加密,DA、SA、LENGTH 、LLC、SNAP、FCS字段总是暴露的,因此信号监听方可以从这6个字段获取有效信息.

从发送方讲,由于操作系统的限制,如果采用广播,则只剩下LENGTH这一字段发送方可通过改变其所需要发送数据包的长度进行控制,所以只要指定出一套利用长度编码的通讯协议,就可利用广播数据包的Lenght字段进行数据传递;

二:UDP组播:

组播地址是保留的D类地址从224.0.0.0-239.255.255.255 映射到MAC地址为:01:00:5e:xx:xx:xx (低23bit 直接映射);因此目的IP地址与MAC地址映射关系为:将MAC地址的前25位设定为01.00.5e,而MAC地址的后23位对应IP地址的位;

故发送端可以将数据编码在组播ip的后23bit中,通过组播包发送,接收端进行解码即可;

接收端进入一键配置功能后,wifi 模块首先处于混杂模式,一种就是在13个信道,等时切换,如200ms 切换一下,轮询13个信道(一种是1,6,11 加大权重,大多数路由器会在1,6,11 不重叠信道;还有一种方式,先扫描所有路由器,看看那些信道有路由器,就在那些信道切换,具体切换信道时间,与wifi模块抓包性能有关),当wifi 在某一信道收到手机发的包(组播或广播),就锁定该信道,在该信道收包,解析出完整的数据

从信道1开始监听路由上的数据,如当前监听信道有符合规则的数据包,就停止信道切换,停留在当前信道接收完全部数据.否则就依次切换至信道2.3.4....直到信道14后又从信道1开始继续监听依次循环;

当然,wifi智能硬件可以在开启混杂模式之前,先行扫描当前环境下存在的AP获取所有当前AP的信道,然后只对当前扫描到的信道进行依次监听,如当前环境下只存在2个路由,分别在1.6信道,只需轮流扫描channel1和channel6,这样可以提高配置效率

可以采用如下编码方式:由于数据一次只能发送23bit,所以我们需要保证数据有序,23bit 里面需要包含index ,所以可以这样设计:01:00:5e:index(7bit),data[index]:data[index+1]

如:data[0] 为长度, data[1] 为校验,data[2]-data[n] 为具体数据,  APP 按顺序发包,wifi 可以无序收包解析,拿到SSID 和PASSWD

还有一个值得注意的方面:随着无线路由器双频WIFI(即可以有两个WIFI名字,其中一个5G,一个2.4G)的越来越多,也许下一次智能硬件升级更换WIFI方案,要考虑支持5G。

wifi模块配网方式锦集相关推荐

  1. android easylink 搜索设备_Android开发 EasyLink给wifi模块配网

    本文使用的是庆科wifi模块 ------------------------------------------------------------------------------------- ...

  2. android EasyLink给wifi模块配网

    相关文章 博客 http://blog.csdn.net/u010924834/article/details/49491349 本文使用的是庆科wifi模块 http://developer.mic ...

  3. wifi模块配网解析

    本文转载:https://blog.csdn.net/zhejfl/article/details/78722930 智能家居/家电现阶段还处于普及阶段,由于家庭wifi网络的普及,目前普遍采用wif ...

  4. android 使用EasyLink给硬件WiFi模块配网

    最近做了一个小项目,项目中有个需求是,向硬件发送wifi参数,来实现硬件的联网.嵌入式工程师那边要求使用EasyLink来发送Wifi参数. EasyLink ,可以将手机端设置的 Wi-Fi 网络参 ...

  5. WIFI模块各种常见的配网方式说明及其比较

    声明:本文是整理了两位作者博文而成 WIFI模块各种常见的配网方式说明及其比较 本文汇总介绍了目前市面上各种WIFI模块的常见的配网方式的原理和实现,对比了各种配网方式的优势和局限,得出结论,WEB配 ...

  6. WIFI配网方式(AP模式、Smartconfig等模式)

    参考:智能设备WIFI配网方式汇总 地址:https://blog.csdn.net/beauytlife_1985/article/details/87539350?spm=1001.2014.30 ...

  7. wifi 配网方式总结

    本文汇总介绍了目前市面上各种WIFI模块的常见的配网方式的原理和实现,对比了各种配网方式的优势和局限,得出结论,WEB配网是最直接.最简单.最灵活.约束条件最少的配网方式,应该成为WIFI模块配网的标 ...

  8. Wifi设备配网问题

    今天写个物联网的技术文章--关于Wifi设备为什么配网失败. 这相信是很多做过Wifi产品的制造业企业遇到的客诉最多的问题--消费者因Wifi产品配网失败,投诉.申请退货. 据我了解,有客户使用201 ...

  9. 物联网WiFi配网方式原来是这七种!

    1.背景介绍 物联网时代,各种各样的智能物联网设备正走进我们我们的生活,智能门锁.摄像头.猫眼门铃.扫地机.智能音箱.空气净化器.体脂秤等等. 这些物联网设备都有一个共同的特征,就是可以联网,通过配套 ...

最新文章

  1. linux之SQL语句简明教程---AND OR
  2. Virtual Machine Manager 2008 2008 R2系列之安装部署
  3. 利用Fiddler模拟通过Dynamics 365的OAuth 2 Client Credentials认证后调用Web API
  4. 关于 ie8不兼容的一些方法
  5. 【Leetcode | 47】 222. 完全二叉树的节点个数
  6. c语言封闭曲线分割平面_高手的平面课堂:8种常用的设计排版方式,告别通宵加班...
  7. 《C语言程序设计》王希杰 课后答案
  8. 安卓案例:在同一Activity里切换Fragment
  9. windows--bat--设置变量的方法
  10. 【C++快速入门】基础语法篇
  11. Django路由控制
  12. 【Hadoop】用web查看hadoop运行状态
  13. 何宾 单片机原理及应用_stc单片机原理及应用.pdf
  14. win10 系统下‘javac‘ 不是内部或外部命令,
  15. 楼板的弹性计算和塑形计算_板计算的时候什么时候用弹性计算
  16. 30个世界顶级思维,看完豁然开朗
  17. iOS直播等开源项目地址收藏
  18. 数值分析12 - Hermite埃尔米特插值法(要求高阶插值误差足够小)
  19. HTML语句判断IE浏览器版本
  20. 石头扫地机器人卡顿_小帅慢评 篇三:石头扫地机器人S50半年使用体验新品T65简评...

热门文章

  1. keil与proteus联调方法如下
  2. 密码收纳盒 v1.1 正式版
  3. java计算机毕业设计家庭安防系统源码+mysql数据库+系统+lw文档+部署
  4. 数据结构(严蔚敏版)循环队列——C语言
  5. 【问题解决】插上耳机,仍然外放
  6. Python爬虫实战 — — Wallhaven壁纸高清原图下载
  7. python跑一亿次循环_python、rust、julia循环10亿次的时间对比
  8. vue3中的$refs的使用
  9. 编译原理之语法分析(预测分析法)
  10. 六、Abp Vnext 中Efcore的多模块关联查询