一种局域网内智能设备发现方法及系统
技术领域
本发明涉及一种局域网内智能设备发现方法及系统。
背景技术
随着互联网和物联网的发展,智能家具渐渐地开始进入人们的家庭和生活,人类渐渐地进入到智能家具时代。这些智能家具通过家庭路由器的WiFi接入到网络中,然后由智能手机的应用程序来控制。现有技术的智能设备主要指智能家具、智能穿戴等设备、器械和机器的统称。目前的局域网中的设备相互之间的发现方法主要有两种:第一种是某台设备使用UPD广播的方式向所有的局域网设备发送广播报文,然后再接收其他设备返回的响应报文,报文内包含其他设备的IP地址,获取到IP地址后,该设备就可以直接与其他设备开始通信;第二种是采用苹果的发布的Bonjour协议,实现零配置网络中的设备发现。这两种方法大体是通过智能手机去主动发现其他智能家具,具体的智能设备发现方法主要是先将智能手机和智能家具连接到同一个局域网中;再由智能手机应用程序端广播设备发现报文到局域网中,等待智能设备回复自己的设备信息报文;最后由手机应用程序获取智能设备报文,然后与某个设备通信。
现有的设备发现方法主要缺点是通过手机来广播报文发现智能设备,智能设备的发现速度较慢,这些设备信息还需要智能手机端去维护和更新,增加了应用程序开发的代码量和复杂度;由于每次打开应用程序都要去重新获取一次智能设备的设备信息,在局域网不停地广播设备发现报文,也会增加网络阻塞和智能手机的耗电速度。而基于Bonjour的零配置网络发现方法安装起来过于庞大,对于如智能灯泡这样的轻量级的智能设备而言过于耗费硬件资源。
又如公开号为CN 103460760A的中国发明专利所公开的一种设备发现的方法、设备和系统,涉及通信技术领域,所述方法包括:第一设备开启设备到设备D2D监听和广播功能;当第一设备监听到第二设备的广播信息后,将所述第二设备的广播信息和目标用户的用户标识上报给网络侧,使所述网络侧根据所述第二设备的广播信息获取在所述第二设备上登录的用户标识,并判断在所述第二设备上登录的用户标识是否为所述目标用户的用户标识;所述第一设备接收所述网络侧返回的所述判断结果,所述第一设备根据所述判断结果确认所述目标用户所登录的设备是否与所述第一设备在预设的距离之内。但是该发明方法过程过于繁琐,同时该方法的系统也过于复杂,不适于移植给家庭局域网来使用。
发明内容
针对现有技术的问题,本发明提供一种基于路由器的家庭局域网内智能设备发现方法及系统,本发明通过使用路由器替代手机端去发现智能设备,让手机端更快速的获取智能设备信息,增加设备发现的可靠性,从而使手机端的应用程序代码更加轻量化,增加了应用程序的健壮性。
本发明的技术方案是提供一种局域网内智能设备发现方法,其包括以下具体步骤:
A1,智能设备信息注册,智能设备向路由器发起注册请求;
A2,智能设备信息存储,所述路由器将接收到注册请求添加到本地数据库中形成智能设备列表;
A3,智能设备询问,所述路由器向局域网发出广播发现未请求的智能设备并更新所述智能设备列表;
A4,智能设备列表获取,手机端的应用程序向所述路由器发送智能设备获取请求信息,由所述路由器向所述应用程序响应回发所述智能设备列表。
作为本发明的优选,所述A2包括以下步骤,
B1,未注册设备登录,在本地数据库中添加未注册的所述智能设备的设备信息并将该所述智能设备登记为在线状态;
B2,已注册设备登录,所述路由器检查已注册的所述智能设备是否为在线状态,如果为离线状态则修改为在线状态。
作为本发明的优选,所述的A3包括以下步骤,
C1,广播报文,所述路由器在局域网中广播报文,该报文请求所有的所述智能设备响应一次注册信息的报文;
C2,智能设备列表刷新,所述路由器根据收到的所述智能设备发回的响应报文,刷新本地的所述智能设备列表;
C3,智能设备列表清理,所述路由器将没有返回所述响应报文的所述智能设备的所述设备信息从所述只能设备列表上删除或修改为离线状态。
作为本发明的优选,所述A4中应用程序提取所述智能设备列表中需操控的所述智能设备的IP,然后通过所述IP与需操控的所述智能设备进行通信。
作为本发明的优选,所述的注册信息包括设备名称、MAC地址、IP地址、在线状态和离线时间。
作为本发明的优选,所述C2包括以下处理方式,
D1,收到未注册的所述智能设备发送的报文,则存储该所述智能设备的注册信息;
D2,收到已注册的所述智能设备发送的报文,更新设备名称、IP地址和在线状态,并将离线时间置0;
D3,如果没有收到已经注册的设备的报文,则通过查找所述路由器本身记录的所有连接所述路由器的所述智能设备的注册信息,查看该已经注册的所述智能设备是否在线;如果该已经注册的所述智能设备确定不在线,则将该已经注册的所述智能设备设置为“离线”状态,记录离线时间;如果该已经注册的所述智能设备在线,则所述路由器单播一个报文给该已经注册的所述智能设备,若依然没有收到回复,也将该已经注册的所述智能设备设为离线状态,记录离线时间。
作为本发明的优选,所述C1中所述路由器在主动广播的过程中,广播的间隔时间逐次递增递增,当间隔时间达到预设时间后不再增加,一直以所欲预设时间作为间隔时间进行广播报文。
本发明还设计了一种局域网内智能设备发现系统,包括智能设备、路由器、控制终端;所述路由器用于接收所述智能设备发送的报文并存储形成智能设备列表;所述控制终端通过搭载的应用程序从所述路由器上的所述智能设备列表中获得需要控制的所述智能设备的注册信息并与所述智能设备进行通信。
作为本发明的优选,所述路由器还包括本地数据库,所述本地数据库用于存储所述智能设备的注册信息并形成智能设备列表。
作为本发明的优选,所述路由器还包括广播模块,所述广播模块用于向局域网内所有所述智能设备进行广播从而发现未请求的智能设备。作为本发明的优选,所述的指纹图像预处理模块包括依次连接的去噪单元、图像增强单元、图像二值化单元以及图像细化处理单元。
本发明让手机端更快速的获取智能设备信息;增加了设备发现的可靠性;同时使手机应用程序更加轻量化,增加应用程序的健壮性。
附图说明
图1为本发明的系统硬件架构图;
图2为本发明的智能设备主动发起注册请求流程图;
图3为本发明的应用程序向路由器请求智能设备列表流程图;
图4为本发明的应用程序与智能设备的连接流程图;
图5为本发明的系统框图;
图中:1-智能设备;2-路由器;3-控制终端;2-1-本地数据库;2-2-广播模块。
具体实施方式
以下结合附图对本发明作进一步详细说明。
本发明通过使用路由器替代手机端去发现智能设备,让手机端更快速的获取智能设备信息,增加设备发现的可靠性,从而使手机端的应用程序代码更加轻量化,增加了应用程序的健壮性。
本方法实施例采用的基本系统构架如图1所示,控制终端3、智能设备1均与同一个路由器2连接,控制终端3主要为手机和平板电脑等移动智能终端,智能设备1主要是智能家居中的诸如智能灯泡、智能窗帘等设备。
本办法采用路由器2替代智能手机在局域网中广播设备发现报文,同时所有的智能设备1信息由路由器2维护在本地数据库2-1中,并由路由器2在局域网中不定时的去广播设备发现报文,维护本地数据库2-1中的智能设备列表信息。智能手机端只需用向路由器2请求智能设备列表信息即可获取局域网中的所有智能设备1信息。
具体包括以下具体步骤:
A1,智能设备1信息注册
智能设备1向路由器2发起注册请求,智能设备1在连接上WiFi后,主动向路由器2发送注册请求,“表明”自己是智能设备1;由于路由器2本身就会获取连接到它的设备的名称、MAC地址、IP地址,所以路由器2需要与智能设备1交互的数据仅仅是“该设备是不是智能设备1”。
故智能设备1中发送的注册信息仅仅“表明”自己是“智能设备1”即可,不需要包含其他信息,所述的注册信息包括设备名称、MAC地址、IP地址、在线状态和离线时间;
A2,智能设备1信息存储
所述路由器2将接收到注册请求添加到本地数据库2-1中形成智能设备列表,路由器2收到智能设备1的注册信息后,会将该设备的信息添加到本地数据库2-1中,数据的存储字段如表所示,主要包含智能设备1的名称、MAC 地址、IP地址、在线状态和离线时间。
其中,路由器2通过MAC地址来唯一标示一台智能设备1;通过标记设备的在线状态,就可以反馈给应用程序端,哪些设备在线、可用;通过标记设备的离线时间,可以鉴定一条注册信息的有效性,例如,如果一台设备离线24小时,则判定该设备已经不再使用,在数据库中删除对应的注册信息,存储结构如下表:
名称 |
MAC地址 |
IP地址 |
是否在线 |
离线时间 |
bulb-1 |
XX:XX:XX:XX:XX:XX |
192.168.2.111 |
是 |
0h |
bulb-2 |
XX:XX:XX:XX:XX:XX |
192.168.2.112 |
否 |
20h |
A3,智能设备1询问
所述路由器2向局域网发出广播发现未请求的智能设备1并更新所述智能设备列表,除了智能设备1主动向路由器2发送注册信息外,路由器2也要主动去查询局域网中是否有新的智能设备1、是否某些智能设备1已经离线;
A4,智能设备列表获取
手机端的应用程序向所述路由器2发送智能设备1获取请求信息,由所述路由器2向所述应用程序响应回发所述智能设备列表,应用程序提取所述智能设备列表中需操控的所述智能设备1的IP,然后通过所述IP与需操控的所述智能设备1进行通信,因为所有的智能设备列表都由路由器2维护,所以智能手机中的应用程序只要向路由器2发送请求信息,即可获得局域网中的智能设备1信息,如图3所示。用户选择列表中的设备,即可直接与该智能设备1通信,如图4所示。如果通信失败,则应用程序主动请求路由器2去刷新列表,重新获取智能设备1信息。
如图2所示,本发明的所述A2步骤具体包括以下步骤:
B1,未注册设备登录,在本地数据库2-1中添加未注册的所述智能设备1 的设备信息并将该所述智能设备1登记为在线状态;
B2,已注册设备登录,所述路由器2检查已注册的所述智能设备1是否为在线状态,如果为离线状态则修改为在线状态。
本发明的所述的A3步骤包括以下步骤,
C1,广播报文
所述路由器2在局域网中广播报文,该报文请求所有的所述智能设备1响应一次注册信息的报文,所述C1中所述路由器2在主动广播的过程中,广播的间隔时间逐次递增递增,当间隔时间达到预设时间后不再增加,一直以所欲预设时间作为间隔时间进行广播报文,例如,广播的时间间隔按照3的指数递增,当间隔为一个小时时,不再增加,一直以1小时的间隔广播报文,如果局域网中有新的智能设备1提交“注册”信息,则路由器2广播报文的时间间隔重新从1s开始,继续指数递增到1小时,此外,应用程序端也可以主动请求路由器2去广播设备发现报文;
C2,智能设备列表刷新
所述路由器2根据收到的所述智能设备1发回的响应报文,刷新本地的所述智能设备列表;
C3,智能设备列表清理
所述路由器2将没有返回所述响应报文的所述智能设备1的所述设备信息从所述只能设备列表上删除或修改为离线状态,通常选取24小时作为判断有无返回的时间最大限。
这种通过路由器2广播检查智能设备1的方法,极大地提高了设备发现的可靠性和应用程序发现智能设备1速度。
同时,这种指数递增的广播时间间隔也极大的减少了局域网中广播的泛滥,从而减少了网络拥堵。
在所述C2步骤中,路由器2的处理方式有以下几种:
D1,收到未注册的所述智能设备1发送的报文,即本地数据库2-1中没有存储的智能设备1发送的报文,则存储该所述智能设备1的注册信息;
D2,收到已注册的所述智能设备1发送的报文,更新设备名称、IP地址和在线状态,并将离线时间置0;
D3,如果没有收到已经注册的设备的报文,则通过查找所述路由器2本身记录的所有连接所述路由器2的所述智能设备1的注册信息,查看该已经注册的所述智能设备1是否在线;如果该已经注册的所述智能设备1确定不在线,则将该已经注册的所述智能设备1设置为“离线”状态,记录离线时间;如果该已经注册的所述智能设备1在线,则所述路由器2单播一个报文给该已经注册的所述智能设备1,若依然没有收到回复,也将该已经注册的所述智能设备1设为离线状态,记录离线时间。
如图1、图5所示,本发明的系统实施例包括智能设备1、路由器2、控制终端3,手机与智能设备1均与同一个路由器2连接;控制终端3采用手机、平板电脑等随身携带的智能终端,控制终端3上安装用于控制智能设备1的应用程序;所述路由器2用于接收所述智能设备1发送的报文并存储形成智能设备列表;所述控制终端3通过搭载的应用程序从所述路由器2上的所述智能设备列表中获得需要控制的所述智能设备1的注册信息并与所述智能设备1进行通信。
所述路由器2还包括本地数据库2-1,所述本地数据库2-1用于存储所述智能设备1的注册信息并形成智能设备列表;所述路由器2还包括广播模块2-2,所述广播模块2-2用于向局域网内所有所述智能设备1进行广播从而发现未请求的智能设备1。
本系统工作时先有路由器2对局域网内的智能设备1的报文进行接收,将接收到的报文内的注册信息存储在本地数据库2-1上,注册信息主要表明智能设备1的类型以及智能设备1的IP,同时路由器2也想局域网发送报文要求智能设备1回应,当没有主动发送注册信息的智能设备1收到该报文后就会向路由器2发送自己的注册信息,而本地数据库2-1将注册信息存储成智能设备列表,当控制终端3需要操作智能设备1的时候,控制终端3会主动连接到路由器2上,路由器2将智能设备列表发送给控制终端3,控制终端3从智能设备列表上获得需要控制的智能设备1的IP,最后进行点对点的通讯操作。
在本系统中控制终端3的通讯任务仅仅是连接路由器2获取智能设备列表和与需要控制的智能设备1进行点对点操作,整个过程的数据通讯量不大,而数据量最大的报文发送和接收交由路由器2进行完成,路由器2本身就是针对通讯而进行过硬件优化和软件优化的,所以完成这样的任务路由器2的配置负担十分之小,所以这就降低了控制终端3的硬件配置需求和软件开发的代码总量,所以本系统的架构方案可以让控制终端3更快速的获取智能设备1信息;增加了设备发现的可靠性;同时使手机应用程序更加轻量化,增加应用程序的健壮性。
本发明具有以下有益效果:
本发明可以使手机端更快速的获取智能设备信息;本发明增加了设备发现的可靠性;同时,使手机应用程序更加轻量化,增加应用程序的健壮性。
上面所述的实施例仅是对本发明的优选实施方式进行描述,并非对本发明的构思和范围进行限定。在不脱离本发明设计构思的前提下,本领域普通人员对本发明的技术方案做出的各种变型和改进,均应落入到本发明的保护范围,本发明请求保护的技术内容,已经全部记载在权利要求书中。