一种智能家居的远程控制方法及系统与流程

文档序号:12309471阅读:574来源:国知局
一种智能家居的远程控制方法及系统与流程

本发明涉及智能家居控制技术领域,尤其涉及一种智能家居的远程控制方法及系统。



背景技术:

随着物联网技术的发展,物联网设备呈爆炸性增长,各种设备直接联网是一种趋势,但是由于互联网协议的第四版(internetprotocol,简称ipv4)技术的限制和网络环境的复杂性,使得各种设备的通信必须适应比较差的网络环境,包括数据的实时传输以及设备的实时控制。

而目前市面上智能家居控制系统所采用的通信方式多种多样,如有线控制方式,或采用蓝牙、zigbee或者wifi组成局域网对设备进行无线控制的方式,但是,众所周知,有线控制方式容易受到一定的局限性,而上述无线控制方式其控制范围也受到一定的局限,从而不能进行远程控制。



技术实现要素:

本发明的目的在于提供一种智能家居的远程控制方法及系统,用以解决现有技术中智能家居控制系统不能进行远程控制的问题。

本发明的第一个方面是提供一种智能家居的远程控制系统,包括各智能家居硬件设备、远程控制设备、wifi模块和mqtt服务器,其中,各智能家居硬件设备和远程控制设备通过wifi模块接入互联网,各智能家居硬件设备和远程控制设备分别与mqtt服务器连接,以使各智能家居硬件设备和远程控制设备之间通过mqtt方式进行通信。

进一步的,还包括mysql模块和restapi模块,其中,mysql模块与mqtt服务器连接,restapi模块分别与mysql模块和远程控制设备连接,mysql模块用于存储用户基本信息和用户所拥有的设备信息,restapi模块用于与远程控制设备进行通信。

进一步的,mqtt服务器包括依次连接的mqtt主模块和mqtt用户认证模块。

进一步的,wifi模块采用esp8266。

进一步的,远程控制设备包括手机、平板电脑或电脑。

本发明的另一个方面是提供一种智能家居的远程控制方法,包括:

将各智能家居硬件设备和远程控制设备通过wifi模块接入互联网;

各智能家居硬件设备和远程控制设备之间通过mqtt方式进行通信。

采用上述本发明技术方案的有益效果是:通过wifi模块将各设备接入互联网,从而使得各设备可以进行远程控制,并将各设备连接到mqtt服务器,使得各设备之间传输的数据包小,通信时间更短。

附图说明

图1为本发明智能家居的远程控制系统的结构示意图;

图2为本发明智能家居的远程控制方法流程图;

图3为本发明控制方法的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

本发明公开了一种智能家居的远程控制系统,如图1所示,包括各智 能家居硬件设备(包括硬件设备10a、10b、……、10n)、远程控制设备(包括远程控制设备11a、11b、……、11n)、wifi模块12和消息队列遥测传输(messagequeuingtelemetrytransport,简称mqtt)服务器13,其中,各智能家居硬件设备(包括硬件设备10a、10b、……、10n)和远程控制设备(包括远程控制设备11a、11b、……、11n)通过wifi模块12接入互联网,各智能家居硬件设备和远程控制设备分别与mqtt服务器13连接,以使各智能家居硬件设备和远程控制设备之间可以通过mqtt方式进行通信。

在本发明实施例中,mqtt服务器13包括依次连接的mqtt主模块131和mqtt用户认证模块132。另外,该智能家居的远程控制系统还可以包括关系型数据库管理系统mysql模块14和restapi模块15,其中,mysql模块14与mqtt服务器13连接,restapi模块15分别与mysql模块14和远程控制设备连接。在本实施例中,mysql模块14具体用于存储用户基本信息和用户所拥有的设备信息,restapi模块15则用于与远程控制设备进行通信。

具体的,本发明采用wifi直接将各硬件设备接入互联网,各硬件设备连接到数据中转服务器,各硬件设备和远程控制设备分别与mqtt服务器连接,使得所有的硬件设备就可以直接通过远程控制设备进行远程控制。在本实施例中,各硬件设备和远程控制设备之间的通信使用mqtt来解决各种网络环境的问题,由于mqtt通信数据包比较小,传输一个指令消耗时间比较短,专门为了各种复杂的网络环境设计,其支持网络地址转换(networkaddresstranslation,简称nat)网络,从而使得数据包能够更快更准确的到达目的地,实现实时控制的功能。

在本实施例中,远程控制设备可以是手机、平板电脑或电脑,在本实施例中以手机为例进行说明。当各硬件设备和远程控制设备与mqtt服务 器连接后,可以根据设备中预定义的用户名和密码进行身份认证,其中,用户名和密码是出厂预置在设备中的;身份认证通过之后再根据预定义的参数进行话题订阅,订阅的话题参数是通过将设备芯片序列号加入一些随机数经过md5加密之后生成的,此序列号可以生成为二维码以方便使用;然后通过手机端发送控制指令,服务器端转发该指令到订阅话题的硬件设备,进而实现远程实时控制。

在上述实施例中,wifi模块具体可以采用esp8266作为核心部件,并使用smartconfig技术连接路由器,手机端自动获取手机此时连接wifi的ssid,用户输入wifi密码之后点击连接按钮,手机就会向每一个信道发送包含有路由器ssid和密码的广播包,wifi模块接收到广播包之后解码出路由器ssid和密码就可以连接到路由器。例如,可以通过手机app输入路由器密码,并将此密码通过smartconfig协议传递给设备,设备将路由器信息写入flash,进而实现简单地将没有人机界面的硬件设备接入互联网。

采用mqtt协议对各硬件设备进行控制,数据包更小,拥有服务质量(qualityofservice,简称qos)分级控制,从而可以灵活控制通信质量,当qos为0的时候服务器推送一次信息,当qos为1的时候客户端至少收到一次消息,当qos为2的时候客户端刚好收到一次消息,从而保证信息到达率,mqtt通信是订阅/发布机制,向服务器某一个话题发布信息,所有订阅这个话题的设备(包括手机app和各硬件设备)都可以接受到信息。在本实施例中,采用mysql模块存储用户基本信息和用户所拥有的设备信息,服务器端采用超文本预处理器(hypertextpreprocessor,简称php)读写mysql模块来管理用户基本信息和其所拥有的设备信息,并通过restapi与手机客户端通信。手机端则通过服务器身份验证并读取服务器端restapi设备信息来生成对应的设备列表,并发送控制指令与服务器 通信,以实现对硬件设备的控制。

在本实施例中,首先服务器通过mqtt协议接受控制指令并推送这些指令到设备中实现实时控制,服务器端推送控制指令到手机app实现设备状态同步显示。然后,服务器端通过php+mysql数据库进行用户认证,用户认证通过之后才能发送和接收指令。而手机端,则需要支持smartconfig协议,从而可以很简单的配置路由器信息到设备,使设备接入互联网。使得手机可以通过会员机制与服务器端进行通信,解析服务器端返回的设备列表数据等,从而可以通过mqtt协议向服务器发送控制信息。

本发明通过wifi模块将各设备接入互联网,从而使得各设备可以进行远程控制,并将各设备连接到mqtt服务器,使得各设备之间传输的数据包小,通信时间更短。

本发明还公开了一种智能家居的远程控制方法,如图2所示,该方法可以包括如下步骤:

步骤s201,将各智能家居硬件设备和远程控制设备通过wifi模块接入互联网;

步骤s202,各智能家居硬件设备和远程控制设备之间通过mqtt方式进行通信。

本实施例中的具体接入互联网方法和通信方式的建立与上述实施例所描述的相类似,此处不再赘述。

以下通过具体的实施例进一步说本发明的控制方法,如图3所示,包括如下步骤:

步骤s301,对各设备进行上电;

步骤s302,判断是否读取到wifi信息;若可以,则执行步骤s303,否则执行步骤s304;

在本实施例中,当一个设备启动的时候会首先向自身flash中读取存储的路由器wifi信息,包括ssid和路由器密码以进行联网,当读取到自身flash中存储有wifi信息的时候,则执行步骤s303;当读取到自身flash中没有存储任何wifi信息的时候,则执行步骤s304。

步骤s303,连接wifi;

可以根据提示输入连接wifi的密码,输入wifi密码之后,点击确定按钮,手机会向所有信道广播路由器wifi信息,设备接收到数据包之后解码出相应数据,并存储到自身flash,以便下次开机的时候使用,并连接到路由器。

步骤s304,开启smartconfig模式;

在本步骤中,可以开启smartconfig模式,并等待手机为其配置路由器信息。

步骤s305,判断wifi是否连接成功;若连接成功,则执行步骤s306,否则执行步骤s307;

步骤s306,等间隔时间发送心跳包以判断wifi是否断开;若wifi没有断开则执行步骤s308,否则执行步骤s309;

步骤s307,判断是否超过连接次数;若没有超过则返回执行步骤s303,否则执行步骤s304;

步骤s308,连接mqtt服务器;

步骤s309,判断mqtt连接是否断开,若是则返回执行步骤s308,否则执行步骤s312;

步骤s310,进入订阅话题;

步骤s311,进行身份认证;

步骤s312,确认是否收到指令;若是则执行步骤s313,否则返回执行步骤s306。

步骤s313,采取动作。

在本实施例中,设备获取到wifi信息的时候,连接到相应wifi,一旦wifi断开就会开启重新连接,保证设备不断网。设备连接到wifi之后通过mqtt协议与服务器握手连接到服务器,每隔一段时间发送一次心跳包保证mqtt连接不断开,即是保证mqtt信息推送的通畅,设备连接服务器成功之后就等待手机客户端发送控制指令。mqtt断开的时候,也会立即连接,如果一段时间之内没有重新连接,服务器会向所有订阅这个话题的设备或者app发布此设备掉线的信息,而在wifi断开的时候mqtt也会随之断开。

当联网完成后,手机首先会向mysql查询已登录用户名下所有设备列表并显示出来,当使用手机app控制的时候,即是通过mqtt协议发送指令到服务器;服务器接收到mqtt信息之后就会通过信息中所携带的话题推送到所有订阅此话题的设备中去;设备接收到服务器推送信息之后就会采取指令所对应的相关动作,比如rgb灯光的调色和开闭等,其他订阅此话题的手机app接收到信息之后会同步此次控制的状态,做到状态的实时显示。

本发明采用定时发送心跳包与服务器连接,而不是采用长连接与服务器连接,从而减轻服务器压力,使服务器并发连接数量大大增加,降低成本。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对 其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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