基于双mqtt服务器的智能家居设备控制方法及系统与流程

文档序号:12067931阅读:514来源:国知局
基于双mqtt服务器的智能家居设备控制方法及系统与流程

本发明涉及智能家居技术领域,尤其涉及基于双mqtt服务器的智能家居设备控制方法及系统。



背景技术:

智能家居系统是将一个家庭成员生活范围内的所有物品,尤其是电器类产品进行互联,实现信息共享。智能家居系统包括家电控制系统、灯光控制系统、家居安防系统、影音娱乐集中控制系统、远程控制系统等。其是一个有机的整体,而系统间又相互独立,实现对室内灯光、空调、电视、冰箱、洗衣机等智能化控制、远程控制、移动控制。

现有的智能家居系统要想实现设备间的互联,以及设备与云端的互联,一般是采用无线通信方式,wifi和zigbee是目前使用较多的两种技术。

Zigbee是IEEE 802.15.4协议的代名词。根据这个协议规定的技术是一种短距离、低功耗的无线通信技术。但是Zigbee自组的网络不能与互联网相连,必须要有一个类似路由的设备对zigbee网络进行管理并实现协议转换。

Wi-Fi的无线通信协议是802.11b/g/n。与zigbee不同的是,其要求是高速率,大容量,wifi没有自组网能力,需要手动设置。Wi-Fi芯片的封装尺寸稍大,而且功耗较高。

现有技术中的智能家居系统都支持远程访问,但是当外网不通时,设备间无法通过局域网进行通信,从而无法在外网不通时,对智能家居系统中的设备进行访问及控制。

因此,现有技术还有待于改进和发展。



技术实现要素:

鉴于现有技术的不足,本发明目的在于提供一种基于双mqtt服务器的智能家居设备控制方法及系统,旨在解决现有技术中智能家居系统都支持远程访问,但是当外网不通时,设备间无法通过局域网进行通信,从而无法在外网不通时,对智能家居系统中的设备进行访问及控制的技术问题。

本发明的技术方案如下:

一种基于双mqtt服务器的智能家居设备控制方法,其中,方法包括:

移动终端通过路由器连接远端mqtt服务器,判断移动终端与远端mqtt服务器是否连接成功;

若移动终端与远端mqtt服务器连接成功,则移动终端将本机设备信息发送到远端mqtt服务器,并从远端mqtt服务器中获取智能家居设备列表,对智能家居设备列表中的智能家居设备进行操作;

若移动终端与远端mqtt服务器连接失败,则移动终端连接局域网mqtt服务器,并将本机设备信息发送至局域网mqtt服务器,并从局域网mqtt服务器中获取智能家居设备列表,对智能家居设备列表中的智能家居设备进行操作。

所述的基于双mqtt服务器的智能家居设备控制方法,其中,所述移动终端通过路由器连接远端mqtt服务器之前还包括:

预先将远端mqtt服务器搭建在互联网上,将局域网mqtt服务器搭建在路由器上。

所述的基于双mqtt服务器的智能家居设备控制方法,其中,所述移动终端连接局域网mqtt服务器,并将本机设备信息发送至局域网mqtt服务器,并从局域网mqtt服务器中获取智能家居设备列表,对智能家居设备列表中的智能家居设备进行操作之后包括:

移动终端每隔一预定时间连接远端mqtt服务器,若移动终端与远端mqtt服务器连接成功,则断开移动终端与局域网mqtt服务器,重新连接远端mqtt服务器。

所述的基于双mqtt服务器的智能家居设备控制方法,其中,所述移动终端将本机设备信息发送到远端mqtt服务器,并从远端mqtt服务器中获取智能家居设备列表,对智能家居设备列表中的智能家居设备进行操作之后还包括:

路由器每隔一预定时间连接远端mqtt服务器,若路由器与远端mqtt服务器连接成功,则局域网mqtt服务器从远端mqtt服务器获取设备通信数据。

所述的基于双mqtt服务器的智能家居设备控制方法,其中,所述移动终端每隔一预定时间连接远端mqtt服务器,若移动终端与远端mqtt服务器连接成功,则断开移动终端与局域网mqtt服务器,重新连接远端mqtt服务器还包括:

当远端mqtt服务器发现有路由器连接时,远端mqtt服务器将设备通信数据同步至路由器上的局域网mqtt服务器。

一种基于双mqtt服务器的智能家居设备控制系统,其中,系统包括:

判断模块,用于移动终端通过路由器连接远端mqtt服务器,判断移动终端与远端mqtt服务器是否连接成功;

第一设备控制模块,用于若移动终端与远端mqtt服务器连接成功,则移动终端将本机设备信息发送到远端mqtt服务器,并从远端mqtt服务器中获取智能家居设备列表,对智能家居设备列表中的智能家居设备进行操作;

第二设备控制模块,用于若移动终端与远端mqtt服务器连接失败,则移动终端连接局域网mqtt服务器,并将本机设备信息发送至局域网mqtt服务器,并从局域网mqtt服务器中获取智能家居设备列表,对智能家居设备列表中的智能家居设备进行操作。

所述的基于双mqtt服务器的智能家居设备控制系统,其中,所述系统还包括:

服务器搭建模块,用于预先将远端mqtt服务器搭建在互联网上,将局域网mqtt服务器搭建在路由器上。

所述的基于双mqtt服务器的智能家居设备控制系统,其中,所述系统还包括:

服务器重连模块,用于移动终端每隔一预定时间连接远端mqtt服务器,若移动终端与远端mqtt服务器连接成功,则断开移动终端与局域网mqtt服务器,重新连接远端mqtt服务器。

所述的基于双mqtt服务器的智能家居设备控制系统,其中,所述系统还包括:

第一数据同步模块,用于路由器每隔一预定时间连接远端mqtt服务器,若路由器与远端mqtt服务器连接成功,则局域网mqtt服务器从远端mqtt服务器获取设备通信数据。

所述的基于双mqtt服务器的智能家居设备控制系统,其中,所述系统还包括:

第二数据同步模块,用于当远端mqtt服务器发现有路由器连接时,远端mqtt服务器将设备通信数据同步至路由器上的局域网mqtt服务器。

本发明提供了一种基于双mqtt服务器的智能家居设备控制方法及系统,本发明可通过移动终端远程访问家中的设备,如果家中设备无法与外网相连,在局域网内依然可以通过手机实现设备访问,控制,为用户控制家中设备提供了方便。

附图说明

图1为本发明的一种基于双mqtt服务器的智能家居设备控制方法的较佳实施例的流程图;

图2为本发明的一种的基于双mqtt服务器的智能家居设备控制方法的具体实施例中移动终端的流程图;

图3为本发明的一种的基于双mqtt服务器的智能家居设备控制方法的具体实施例中显示终端的流程图;

图4为本发明的一种基于双mqtt服务器的智能家居设备控制系统的较佳实施例的功能原理框图。

具体实施方式

为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

目前家庭内部的设备分为两种,一种可以与互联网互通,主要是通过互联网访问网站,下载内容,例如,智能电视,手机,平板,电脑等。另外一种则是无法联网的设备,只能在本地操作,例如冰箱,洗衣机。当离开住宅这个具体环境,如果还希望能访问到各种设备并发布指令就必须让各种设备采用同一种通信方式,然后通过一种协议组成一个系统,并且要采用统一的指令格式实现各种设备间的互相识别,数据共享,行为分析等。

本发明提供了一种基于双mqtt服务器的智能家居设备控制方法的较佳实施例的流程图,如图1所示,其中,方法包括:

步骤S100、移动终端通过路由器连接远端mqtt服务器,判断移动终端与远端mqtt服务器是否连接成功,若连接成功,则执行步骤S200,若连接失败,则执行步骤S300。

具体实施时,移动终端通过与路由器通过wifi连接后,尝试连接远端mqtt服务器,并根据连接远端mqtt服务器的情况执行不同的步骤。其中移动终端包括但不限于手机、平板电脑等智能设备。

进一步的实施例中,步骤S100之前还包括:

步骤S1、预先将远端mqtt服务器搭建在互联网上,将局域网mqtt服务器搭建在路由器上。

具体实施时,搭建两台mqtt服务器,一台服务器搭建在外网,另一台搭建在本地路由器上,路由器采用openwrt操作系统,可支持软件安装。当外网不通时,本地设备以路由器为中心组建一个局域网的环境,通过连接局域网内的mqtt服务器实现设备管理功能。

步骤S200、移动终端将本机设备信息发送到远端mqtt服务器,并从远端mqtt服务器中获取智能家居设备列表,对智能家居设备列表中的智能家居设备进行操作。

具体实施时,步骤S200具体包括:移动终端在远端mqtt服务器上注册本机,并将本机设备信息发送至远端mqtt服务器;移动终端获取远端mqtt服务器中的智能家居设备列表,根据用户指令选择智能家居设备;获取智能家居设备的信息显示在移动终端上,并根据用户指令对智能家居设备进行操控。

进一步的,移动终端连接成功后注册本机,将本机的相关信息传送到mqtt服务器,然后订阅与设备列表相关的消息句柄,获取到设备列表后可以选择自己感兴趣的设备进入,向服务器订阅该设备具体信息相关的消息句柄,进而可以实时获取本设备的信息进行展示,同时也可以操控选中的设备。

进一步的,步骤S200之后还包括:

步骤S201、路由器每隔一预定时间连接远端mqtt服务器,若路由器与远端mqtt服务器连接成功,则远端mqtt服务器将设备通信数据发送至局域网mqtt服务器。

具体实施时,两台服务器间最重要的是做好数据同步,本方案中以远端mqtt服务器上的数据为准,路由器上运行mqtt服务器,数据存储在同一个目录下,会以一定频率访问远端mqtt服务器,当远端mqtt服务器连接,远端mqtt服务器在发现有路由器客户端连接时,会将需要同步的数据发送到本地路由器上。

步骤S300、移动终端连接局域网mqtt服务器,并将本机设备信息发送至局域网mqtt服务器,并从局域网mqtt服务器中获取智能家居设备列表,对智能家居设备列表中的智能家居设备进行操作。

具体实施时,移动终端在局域网mqtt服务器上注册本机,并将本机设备信息发送至局域网mqtt服务器;移动终端获取局域网mqtt服务器中的智能家居设备列表,根据用户指令选择智能家居设备;获取智能家居设备的信息显示在移动终端上,并根据用户指令对智能家居设备进行操控。

进一步的,步骤S300之后还包括:

步骤S301、路由器每隔一预定时间连接远端mqtt服务器,若路由器与与远端mqtt服务器连接成功,则局域网mqtt服务器从远端mqtt服务器获取设备通信数据。

具体实施时,路由器上运行mqtt服务器和客户端,数据存储在同一个目录下,客户端会以一定频率访问远端mqtt服务器,当远端mqtt服务器可以连接时,局域网mqtt服务器从远端mqtt服务器获取同步数据的消息。从而实现当网络联通时,可以获取到最新的设备信息。

数据同步是以远端mqtt服务器上的数据为准,当本地路由器上的局域网mqtt服务器判断可以与远端mqtt服务器连接,订阅远端mqtt服务器上的设备数据信息,进而覆盖本地路由器上的数据。

进一步的实施例中,步骤S300之后还包括:

步骤S400、当远端mqtt服务器发现有路由器连接时,远端mqtt服务器将设备通信数据同步至路由器上的局域网mqtt服务器。。

具体实施时,当远端mqtt服务器检测到路由器连接后,将远端mqtt服务器中的内容同步到局域网mqtt服务器。用户从远端远端mqtt服务器获取对应的设备列表,并执行对应的操作。

具体地,本地路由器上的局域网mqtt服务器还会订阅一个设备数据更新通知的主题,当远端mqtt服务器上保存的设备数据发生变化时也会将更新的数据同步到本地路由上,这样能保证本地路由器上的数据一直是最新的。从而实现数据的同步。

总结就是,如果外网不通的情况下,局域网mqtt服务器利用本地以保存的数据工作,一旦外网联通,则更新远端的数据,本地做过的更改被覆盖掉。整个系统内的设备也都连接到外网服务器上,不走局域网mqtt服务器了。

以智能家居设备为冰箱为例,移动终端与远端mqtt服务器、局域网mqtt服务器的消息体采用json格式,json格式占用空间小。移动终端在注册本机时,需要将本机设备信息上报,具体的上报信息定义包括:数据头、数据长度、数据类型、设备ID、设备名称、设备类型、固件版本、设备大类、保留字段。当智能终端对智能家居设备操控时,操控数据格式具体包括:数据头、数据长度、数据类型、设备ID、指令枚举、具体数据。

可将冰箱的指令可以运行在一个显示终端,显示终端用于显示其他设备发来的控制指令,并将控制指令解析后发送给智能家居设备如冰箱后执行。以显示终端为平板电脑为例进行介绍,将平板电脑与冰箱设备主控板通过串口相连,平板实现与移动终端应用同样的功能,平板电脑实时将本机数据上传远端mqtt服务器及局域网mqtt服务器,同时订阅与本机控制相关的指令。平板接收到对冰箱的具体的控制指令后解析,并通过串口传送给设备主控,具体的串口通信的指令格式如表1所示。

表1

当显示板接收到“更改显示板设定要求”位为1时并刷新设定档位和模式后将“更改显示板设定完成“置1,当再收到”更改显示板设定要求“为0时恢复为0。

当显示板温度或模式设定有变更需将”写E2要求“位置1,再收到主控发来的”写E2完成“时清0。

本发明还提供了一种的基于双mqtt服务器的智能家居设备控制方法的具体实施例中移动终端的流程图,如图2所示,方法包括:

步骤S10、设备向mqtt服务器注册;这里的mqtt服务器可能是远端mqtt服务器或是局域网mqtt服务器;

步骤S20、获取并监测已经注册的设备列表;

步骤S30、监测具体设备上的具体的数据;

步骤S40、向远端设备发送指令。

本发明还提供了一种的基于双mqtt服务器的智能家居设备控制方法的具体实施例中显示终端的流程图,如图3所示,方法包括:

步骤S11、设备向mqtt服务器注册;这里的mqtt服务器可能是远端mqtt服务器或是局域网mqtt服务器;

步骤S12、获取并监测已经注册的设备列表;

步骤S13、监测其他设备发送给本机的指令;

步骤S14、解析并执行具体的指令。

下面以手机为远端、冰箱为本地设备具体阐述如何实现上述功能。

app客户端运行在手机,冰箱和智能路由器上,同时路由器上还会运行一个mqtt的服务器进程,客户端程序启动后都会首先调用initMqtt接口,创建局域网mqtt客户端实例mqttClient,然后调用mqttClient.connect()实现设备客户端与服务器的连接。在连接服务器的过程中会首先连接远端mqtt服务器,如果连接不上再尝试连接局域网mqtt服务器,同时还需要创建一个线程负责检测远端mqtt服务器的连接情况,若可以访问,则调用mqttClient.disconnect()断开与当前局域网mqtt服务器的连接,连接成功后需要向局域网mqtt服务器发送指令和订阅消息,分别调用mqttClient.publish(topic,message),mqttClient.subscribe(topic,message),message均采用json格式。

可在冰箱上安装一个平板电脑,使整个系统内的所有设备都具有客户端能力,用手机端来进行操作,手机端订阅获取设备列表的主题信息,冰箱作为被操作设备需要订阅获取设备指令的主题信息,而路由器上的客户端因为需要跟远端mqtt服务器进行数据同步,需要订阅设备数据相关的主题信息。因手机作为操控端,冰箱作为设备端,所以实现的指令有所不同。表2为手机端指令列表。表3为冰箱的指令列表。表4为路由器相关的指令列表。

表2

表3

表4

由以上方法实施例可知,本发明还提供了一种基于双mqtt服务器的智能家居设备控制方法,通过搭建双mqtt服务器,实现了当外网有连接的时候设备间通过外网服务器互相访问,当外网无连接时设备间通过局域网内的服务器互相访问,当网络状态发生变化时,数据以外网服务器数据为准进行数据同步,可以保证设备在有无外网连接的情况下都可以实现互相访问。

本发明还提供了一种基于双mqtt服务器的智能家居设备控制系统的较佳实施例的功能原理框图,如图4所示,系统包括:

判断模块100,用于移动终端通过路由器连接远端mqtt服务器,判断移动终端与远端mqtt服务器是否连接成功;具体如方法实施例所示。

第一设备控制模块200,用于若移动终端与远端mqtt服务器连接成功,则移动终端将本机设备信息发送到远端mqtt服务器,并从远端mqtt服务器中获取智能家居设备列表300,对智能家居设备列表中的智能家居设备进行操作;具体如方法实施例所示。

第二设备控制模块,用于若移动终端与远端mqtt服务器连接失败,则移动终端连接局域网mqtt服务器,并将本机设备信息发送至局域网mqtt服务器,并从局域网mqtt服务器中获取智能家居设备列表,对智能家居设备列表中的智能家居设备进行操作;具体如方法实施例所示。

所述的基于双mqtt服务器的智能家居设备控制系统,其中,所述系统还包括:

服务器搭建模块,用于预先将远端mqtt服务器搭建在互联网上,将局域网mqtt服务器搭建在路由器上;具体如方法实施例所示。

所述的基于双mqtt服务器的智能家居设备控制系统,其中,所述系统还包括:

服务器重连模块,用于移动终端每隔一预定时间连接远端mqtt服务器,若移动终端与远端mqtt服务器连接成功,则断开移动终端与局域网mqtt服务器,重新连接远端mqtt服务器;具体如方法实施例所示。

所述的基于双mqtt服务器的智能家居设备控制系统,其中,所述系统还包括:

第一数据同步模块,用于路由器每隔一预定时间连接远端mqtt服务器,若路由器与远端mqtt服务器连接成功,则局域网mqtt服务器从远端mqtt服务器获取设备通信数据;具体如方法实施例所示。

所述的基于双mqtt服务器的智能家居设备控制系统,其中,所述系统还包括:

第二数据同步模块,用于当远端mqtt服务器发现有路由器连接时,远端mqtt服务器将设备通信数据同步至路由器上的局域网mqtt服务器;具体如方法实施例所示。

综上所述,本发明提供了一种基于双mqtt服务器的智能家居设备通信方法及系统,方法包括:移动终端通过路由器连接远端mqtt服务器,判断移动终端与远端mqtt服务器是否连接成功;若连接成功,则移动终端将本机设备信息发送到远端mqtt服务器,并从远端mqtt服务器中获取智能家居设备列表,对智能家居设备列表中的智能家居设备进行操作;若连接失败,则移动终端连接局域网mqtt服务器,并将本机设备信息发送至局域网mqtt服务器,并从局域网mqtt服务器中获取智能家居设备列表,对智能家居设备列表中的智能家居设备进行操作。本发明可通过移动终端远程访问家中的设备,如果家中设备无法与外网相连,在局域网内依然可以通过手机实现设备访问,控制,为用户控制家中设备提供了方便。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

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