Wifi SmartConfig实现
来源:互联网 发布:c语言编写2048小游戏 编辑:程序博客网 时间:2024/06/05 16:53
现在好多设备都直接用手机wifi来配置,没有操作界面的设备了,像TISmartConfig,Airkiss。
网上也很多说明,自已也实现了个,总体比较简单。
设备端,需要能支持wifi混合模式,基本就可以了。
实现的过程就是把需要发送的数据通过udp包的长度来编码,设备端在混合模式下,通过抓取udp的广播包,根据802.11的特点过滤一下,找到自定义协议的包就行了,锁定特定的MAC地址后,连续抓包,解析出来就行了,这比较简单.
协议的定义
一般都定义一个协议的头,如用 0x1, 0x4, 0x8,这样设备端在抓UDP包时,见到这样的包长度规律后,就认为是一个协议包头,可以再加一个包头的CRC8校验,这4个字节,做为UDP的长度包,连续发送。
测试一般3,4个连续的UDP被打乱次序的机会,也不是很大,这样就可以很快的锁定是协议的开始了。
对数据进行编码,一般数据比较多时,指望连续发UDP,能按顺序连续接收,是不现实的。所以可以对每一个数据字节,再编码,我的做法是,每一个节点用4个字节来编码,这样:
前导符 | 数据序号| 数据|CRC8
第一个字节固定为 0xc,表示一个字节的开始,第二个字节表示数据字节的序号,第三个字节为真正的数据,第四个字节为CRC校验:对前面3个字节做校验,接收端就可以判断是不是正常的了.
也就是你要发一个字符串到设备,如: “12345678”,表示WIFI连接的密码,那么你就需要发送 4*8=32个UDP数据报,因为对每一个数据编了号,这样不同的数据可以多次验证接收,成功率也就很高了。
在数据再发送一个CRC数据的校验,对接收的数据再校验一次。
可以像Airkiss一样也发一个SSID的CRC校验,校验找到的SSID是不是真正的要配置的SSID,感觉有点多余呀。
可以像Airkiss一样发一个随机数,用来当设备端连接上WIFI时,通知配置用用户,设备已经通过你的数据连接上了。
一般像WIFI密码这样的数据,比较小,测试了一下,几秒就搞定了.
- Wifi SmartConfig实现
- 讲一讲WiFi快连、SmartConfig、SmartConnect
- wifi一键配网smartconfig原理及应用
- 讲一讲WiFi快连、SmartConfig、SmartConnect
- 讲一讲WiFi快连、SmartConfig、SmartConnect
- 讲一讲WiFi快连、SmartConfig、SmartConnect
- wifi一键配网smartconfig原理及应用
- WiFi快连、SmartConfig、SmartConnect、smartlink
- 讲一讲WiFi快连、SmartConfig、SmartConnect
- wifi一键配网smartconfig原理及应用
- SmartConfig
- SmartConfig
- 物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004
- 物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004
- 物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004
- 物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004
- 物联网 WIFI 一键配置原理(smartconfig) ESP8266/QCA4004 参考
- cc3000 smartconfig
- NYOJ 860 又见01背包(01背包理解运用)
- 酷酷的 CSS3 三角形运用
- 安装SQLserver2008r2出现试图执行未经授权的操作
- HDU 5821 乱搞
- 记录一下看云的笔记
- Wifi SmartConfig实现
- Linux添加/删除用户和用户组
- 看懂此文,不再困惑于 JS 中的事件设计
- Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion' ha
- css3笔记
- RoR利用RSpec测试项目
- 反射机制
- Unreal 蓝图显示鼠标
- c# 对excel数据进行打印