一种物联网Wi-Fi模块网络自适应切换方法与流程

文档序号:17587379发布日期:2019-05-03 21:26阅读:488来源:国知局
一种物联网Wi-Fi模块网络自适应切换方法与流程

本发明属于物联网领域,特别是涉及一种物联网wi-fi模块网络切换方法。



背景技术:

目前,物联网wi-fi模块提供一次配网过程,或是更换路由器重新配网的方式,不能实现网络自适应切换功能,且wi-fi模块只能保存一组路由器的ssid和password,如果想更换其他路由器,需要重新配网;其无法像手机一样,保存多个路由器的ssid和password,当所连接的路由器断开时可以进行切换,或者在信号强度弱的情况下切换到信号强度强的路由器,极大地影响了用户的体验效果。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是:物联网wi-fi模块只能连接一个路由器,且无法自动切换的问题。

为实现上述目的,本发明提供一种物联网wi-fi模块网络自适应切换方法:

移动终端与物联网wi-fi模块建立链接;

移动终端获取并保存路由器的信息,对获取的路由器信息进行数据组合,并将组合信息发送给物联网wi-fi模块;

物联网wi-fi模块接收移动终端发出的组合信息,并判断路由器的信号强度,根据信号强度连接路由器。

所述移动终端与物联网wi-fi模块建立链接按以下步骤进行:

a1.物联网wi-fi模块启动热点功能,建立socketserver;

a2.移动终端连接物联网wi-fi模块的热点,向物联网wi-fi模块的端口发起链接请求;

a3.物联网wi-fi模块端接收并接受移动终端的链接请求。

所述移动终端获取并保存路由器的信息,对获取的路由器信息进行数据组合,并将组合信息发送给物联网wi-fi模块按以下步骤进行:

b1.移动终端连接获取路由器的信息;

b2.移动终端对获取的信息进行数据组合;

b3.移动终端打包组合数据并通过链接发送给物联网wi-fi模块。

所述物联网wi-fi模块接收移动终端发出的组合信息,并判断路由器的信号强度,根据信号强度连接路由器按以下步骤进行:

c1.物联网wi-fi模块接收移动终端的打包组合数据;

c2.物联网wi-fi模块扫描路由器并获取路由器信息;

c3.物联网wi-fi模块比对已接收的打包组合数据与扫描到的路由器信息:当有多组相同的路由器信息,则比较多组路由器的信号强度,根据信号强度连接路由器,执行c5;当有一组相同的路由器信息,执行c4;当没有相同的路由器信息,执行c2;

c4.物联网wi-fi模块连接路由器;

c5.物联网wi-fi模块检测其与路由器的连接状态及所连接路由器的信号强度,检测模块包括连接检测模块和信号强度检测模块。

所述连接检测模块用于检测物联网wi-fi模块与路由器的连接情况:当物联网wi-fi模块与路由器断开,则执行c2;当物联网wi-fi模块与路由器连接,则完成切换。

所述信号强度检测模块用于检测物联网wi-fi模块和路由器连接的信号强度,方法为:设置间隔时间t,物联网wi-fi模块每间隔t执行一次wi-fi扫描;当信号强度小于80dbm,执行c2;当信号强度大于或等于80dbm,则完成切换。

所述数据组合包括移动终端对获取的路由器信息进行第一次数据组合,格式及顺序为:bssid的长度、bssid数据、密码的长度、密码数据。将此数据组合在一起形成数据rdata,长度为rlen。

打包数据时,生成1到7的随机整数做为加密值,对rdata数据循环左移加密值位形成数据rdataa,长度是rlen。

所述数据组合包括第二次数据组合,格式和顺序如下:数据串总长度alen、wifi模块id的数据长度、需要配置的通信模块的id、加密值、rdataa、数据校验值;将此数据组合在一起形成数据串adata,其总长度是alen;对adata数据中去掉最后1个字节的数据进行校验,得出的值计入数据校验值。

组合数据发送方式为:离散模式基于udp协议进行数据传输,基于组播地址和组播长度传递数据。

本发明的有益效果是:不增加硬件的前提下,移动终端获取并保存路由器的信息,对路由器信息进行数据组合,并将组合信息发送给物联网wi-fi模块;物联网wi-fi模块保留多个路由器的信息,检测各个路由器的信号强度,并选择连接信号强度好的路由器;物联网wi-fi模块同时检测自身与路由器之间的连接情况:当与路由器断开,则继续执行扫描步骤。物联网wi-fi模块实现了在多个路由器之间进行切换连接。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是本发明一实施网络拓扑框架示意图;

图2是本发明一实施例物联网wi-fi模块获取数据的流程图;并保存多组路由器信息的流程图;

图3是本发明一实施例手机端app流程示意图;

图4是本发明一实施例物联网wi-fi模块的多个网络自适应切换流程图。

具体实施方式

下面结合附图和实施例对本发明作进一步说明:

如图1-4所示,一种物联网wi-fi模块网络自适应切换方法:移动终端与物联网wi-fi模块建立链接;

移动终端获取并保存路由器的信息,对获取的路由器信息进行数据组合,并将组合信息发送给物联网wi-fi模块;

物联网wi-fi模块接收移动终端发出的组合信息,并判断路由器的信号强度,根据信号强度连接路由器。

所述移动终端与物联网wi-fi模块建立链接按以下步骤进行:

a1.物联网wi-fi模块启动热点功能,建立socketserver;

a2.移动终端连接物联网wi-fi模块的热点,向物联网wi-fi模块的端口发起链接请求;

a3.物联网wi-fi模块端接收并接受移动终端的链接请求。

所述移动终端获取并保存路由器的信息,对获取的路由器信息进行数据组合,并将组合信息发送给物联网wi-fi模块按以下步骤进行:

b1.移动终端连接获取路由器的信息;

b2.移动终端对获取的信息进行数据组合;

b3.移动终端打包组合数据并通过链接发送给物联网wi-fi模块。

所述物联网wi-fi模块接收移动终端发出的组合信息,并判断路由器的信号强度,根据信号强度连接路由器按以下步骤进行:

c1.物联网wi-fi模块接收移动终端的打包组合数据;

c2.物联网wi-fi模块扫描路由器并获取路由器信息;

c3.物联网wi-fi模块比对已接收的打包组合数据与扫描到的路由器信息:当有多组相同的路由器信息,则比较多组路由器的信号强度,根据信号强度连接路由器,执行c5;当有一组相同的路由器信息,执行c4;当没有相同的路由器信息,执行c2;

c4.物联网wi-fi模块连接路由器;

c5.物联网wi-fi模块检测其与路由器的连接状态及所连接路由器的信号强度,检测模块包括连接检测模块和信号强度检测模块。

所述连接检测模块用于检测物联网wi-fi模块与路由器的连接情况:当物联网wi-fi模块与路由器断开,则执行c2;当物联网wi-fi模块与路由器连接,则完成切换。

所述信号强度检测模块用于检测物联网wi-fi模块和路由器连接的信号强度,方法为:设置间隔时间t,物联网wi-fi模块每间隔t执行一次wi-fi扫描;当信号强度小于80dbm,执行c2;当信号强度大于或等于80dbm,则完成切换。

所述数据组合包括移动终端对获取的路由器信息进行第一次数据组合,格式及顺序为:bssid的长度、bssid数据、密码的长度、密码数据。将此数据组合在一起形成数据rdata,长度为rlen。

打包数据时,生成1到7的随机整数做为加密值,对rdata数据循环左移加密值位形成数据rdataa,长度是rlen。

所述数据组合包括第二次数据组合,格式和顺序如下:数据串总长度alen、wifi模块id的数据长度、需要配置的通信模块的id、加密值、rdataa、数据校验值;将此数据组合在一起形成数据串adata,其总长度是alen;对adata数据中去掉最后1个字节的数据进行校验,得出的值计入数据校验值。

组合数据发送方式为:离散模式基于udp协议进行数据传输,基于组播地址和组播长度传递数据。

所述路由器的信息主要为:路由器的ssid和password,ssid是servicesetidentifier的缩写,中文意思是:服务集标识,password的中文意思是:密码;所述socketserver为端口服务器,网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket;所述bssid,也称为bss,bss是basicserviceset的缩写,每个bss都会被赋予一个bssid。所述移动终端可以配合app获取、保存路由器的信息,也可通过app发出路由器组合信息,当然也可以用其他类似途径获得和发出路由器的信息,此为属于现有技术,在此不做赘述。

本实施例具体步骤如下:

1.物联网wi-fi模块启动softap热点功能,连立一个固定端口的tcpsocketserver,并执行bind和linsten,即监听client发过来的链接请求;

2.手机连接wi-fi模块的softap热点,将app打开,建立client的tcpsocket,并向和物联网wi-fi模块端相同的固定端口发起tcp连接请求;

3.物联网wi-fi模块端接收并接受tcp连接请求,这样,物联网wi-fi模块与手机建立了tcp的连接;

4.手机app获取所连接的路由器的ssid,并且提示用户输入正确的密码,并对路由器的ssid和password按照规则进行加密和信息组合;

5.手机app把信息组合通过tcpsocket发送给物联网wi-fi模块端;

6.物联网wi-fi模块端接收到手机app的信息组合,并按照信息组合规则进行解析,从而得到路由器的路由器的ssid和password,并把这组路由器的ssid和password保存到内存中,以便后续可以直接从内存中读取并使用;

7.物联网wi-fi模块关闭softap热点功能,使用上述步骤拿到的ssid和password连接到对应路由器,同时,连立一个固定端口的tcpsocketserver,并执行bind和linsten,即监听client发过来的链接请求;

8.手机断开与wi-fi模块softap的连接,再与物联网wi-fi模块连接到同一路由器,形成了一个“物联网wi-fi模块——第一路由器——手机”的局域网,手机app打开,建立client的tcpsocket,并向与物联网wi-fi模块端相同的固定端口发起tcp连接请求;

9.物联网wi-fi模块端接受tcp连接请求,手机app提示用户依次输入第二路由器和第三路由器的ssid、password,并对输入的ssid和password进行加密和信息组合;

10.手机app把第二路由器和第三路由器的ssid、password组合信息通过tcpsocket发送给物联网wi-fi模块端,物联网wi-fi模块接收手机app的信息组合,并按照信息组合规则进行解析,从而得到第二路由器和第三路由器的ssid、password,并把这两组路由器的ssid和password保存到内存中。

所述bind的中文意思是:绑定;所述linsten中文意思是:监听;所述client中文意思是:客户端。

通过上述步骤,物联网wi-fi模块把第一路由器、第二路由器和第三路由器的ssid和password保存到的内存中,第一路由器ssid、password是通过物联网wi-fi模块的配网功能拿到的,第二路由器和第三路由器的ssid、password是通过“物联网wi-fi模块——第一路由器——手机”的局域网拿到的,也可以通过其他类似连接云端的广域网拿到。此为现有技术,在此不做赘述。

如图4所示,本实施例的物联网wi-fi模块多个网络自适应切换方案步骤如下:

1.物联网wi-fi模块上电;

2.物联网wi-fi模块读取内存中是否有路由器ssid及password:如果未读取到,说明本wi-fi模块没有经过配网,执行配网流程;如果读取到有路由器ssid及password,就执行物联网wi-fi模块的扫描功能,扫描周围热点,保存扫描结果中的路由器ssid、信号强度信息;

3.物联网wi-fi模块比较扫描结果中的路由器ssid与内存中的所有路由器ssid:如果没有相同的路由器ssid,继续执行扫描;如果比对结果中有一组相同路由器ssid,则连接此路由器;如果比对结果中有多相同路由器ssid,则比较扫描结果中路由器的信号强度,选出信号强度强的路由器,进行连接;

4.物联网wi-fi模块连接到路由器后,连接检测模块可以通过现有的机制判断其与路由器的连接情况,如没有现有的机制,可以1分钟检测一次连接,判断物联网wi-fi模块是否断开与路由器的连接:如断开,则跳转到wi-fi模块扫描步骤;如连接,则不做处理;

5.连接检测模块进行的同时,信号强度检测模块每隔5分钟,执行一次wi-fi模块的扫描动作,判断所连接路由器的信号强度:当信号强度小于80dbm,说明信号很弱了,跳转到wi-fi模块扫描步骤,寻找信号强度好的路由器;当信号强度大于等于80dbm,则不做处理。

所述信息组合方式为:第一次数据组合,格式及顺序为:bssid的长度、bssid数据、密码的长度、密码数据,bssid的长度为1字节,bssid数据长度为bssidlen字节,密码的长度为1字节,密码数据长度为password长度字节。将此数据组合在一起形成数据rdata,长度为rlen。在打包数据时生成1到7的随机整数做为加密值keytype,对rdata数据循环左移keytype位形成数据rdataa,长度是rlen。第二次数据组合,格式和顺序如下:数据总长度alen、wifi模块id的数据长度、需要配置的通信模块的id、加密值、rdataa、数据校验值ch,数据总长度alen长度为1字节,wifi模块id的数据长度为1字节,需要配置的通信模块的id长度为devidlen字节,加密值长度为1字节,rdataa长度为rlen字节,数据校验值ch长度为1字节。将此数据组合在一起形成所有数据adata,总长度alen的值为1+1+devidlen+1+rlen+1;对adata数据中去掉最后1个字节的数据进行校验,得出的值计入数据校验值ch,所述校验值ch长度为1字节;adata就是需要传输的整体数据,长度为alen,alen最大长度为255;生成数据校验值ch的数据校验方法通过对数据采用异或运算计算出来,示意代码如下:for(inti=0;i<len;i++)ch^=data[i];ch初始值为0。组合数据发送方式为:离散模式基于udp协议进行数据传输,基于组播地址和组播长度传递数据,组播端口号为:5040。对adata数据从前到后每12bit一组形成一个包发送,每个包都有一个序号,序号从0开始,顺序为0、1、2、3、4…最后一个包的序号为:(alen*2+2)/3-1。序号用两个数代替n1和n2,为n1*7+n2,n2为0到6的数。为了标记第一包,第一包的n2为7。每一个包都包含一个完整字节数据ai和4个bit数据bi,当最后一个包数据不足12bit时,不足的全是0。对每个包的数据进行校验生成一个字节的校验码ch。校验规则为数据ai和数据bi异或运算。假设一个包序号为n1i、n2i,校验码为ci,数据ai为:8bit)、数据bi为:4bit。组播地址以229开头,为229.x1.x2.x3,数据长度为len,是针对一个组播地址发送数据的长度,利用x1、x2、x3、len来传递一包的数据。x1的最高两位设为0,最高两位为:第8位和第7位,第6位记录数据ai的最高位,第5位记录校验码ci的第5位;x2的数据为数据ai的第7位;x3的第4位记录数据bi的数据,第5位、第6位和第7位记录序号n2i的值;长度len为n1+1。通信模块比较时只需比较校验码的后5位。下面是分包示例:原始数据0x120x340x560x780x9a分成4包数据,分别为0x120x03、0x560x04、0x780x09、0x000x0a,序号n1和序号n2分别对应07、01、02、03。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1