CN105357245B - 一种基于云服务及ZigBee技术的智能家居系统及其设计方法 - Google Patents
一种基于云服务及ZigBee技术的智能家居系统及其设计方法 Download PDFInfo
- Publication number
- CN105357245B CN105357245B CN201510350721.XA CN201510350721A CN105357245B CN 105357245 B CN105357245 B CN 105357245B CN 201510350721 A CN201510350721 A CN 201510350721A CN 105357245 B CN105357245 B CN 105357245B
- Authority
- CN
- China
- Prior art keywords
- data
- zigbee
- relevant
- serial ports
- coordinator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
- G05B19/4185—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the network communication
- G05B19/41855—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the network communication by local area network [LAN], network structure
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种基于云服务及ZigBee技术的智能家居系统及其设计方法,该系统采用浏览器/服务器(B/S)架构,使用Apache作为Web服务器,Mysql作为数据库,保存相应的数据记录,并且将数据转化成Json格式,然后通过HTTP协议与Android手机进行通讯,通过TI公司的ZigBee协议栈实现相关的数据传输,ZigBee协议栈将接收到的数据通过串口传递到Android家庭网关,通过HTTP传递到给服务器,手机客户端也通过与服务器相连,同步所有数据,实时显示家庭住宅情况,本发明主要解决ZigBee定点控制问题,ZigBee协调者与家庭网关通讯问题,远程控制问题。
Description
技术领域
本发明涉及一种基于云服务及ZigBee技术的智能家居系统及其设计方法,属于计算机应用技术领域。
背景技术
目前,智能家居系统尚未走进千家万户,且现阶段真正采用的智能家居系统仍然是以总线布置的形式,对于已经装修完毕的用户来说,采用智能家居系统既浪费资源,又不方便用户的住宅使用,且大多数的无线系统均采用Wi-Fi模式,对于网络及信道具有一定的干扰性。因而,在此基础上采用ZigBee(即:紫蜂协议)这样一个轻型的无线组网机制是非常之便携的,且其价格也十分低廉,即使是已经装修过的用户也完全可以承受地起。再者,现今的芯片技术发达,云服务遍地都是,这给了智能家居系统有了更广阔的空间,智能家居家庭网关核心芯片完全可以采用支持Android系统的芯片,为用户提供更好的交互。
现今ZigBee协议栈主要解决的是自动组网问题,只要几个ZigBee中有协调者、终端节点或者是路由节点,且所使用的信道相同,那么ZigBee就可以自动组网,然而这些个ZigBee仅仅是组成了一个网络,而真正想通过一个协调者去控制某一个节点,仍然存在着很大的问题。现今的智能家居大多仍然还是以本地操作为主,用户只要出了门,便不能进行控制。且家庭网关仅仅就只能用于控制智能家居系统,缺乏可拓展性,且用户的交互也不是非常理想,本发明的系统就是为了解决ZigBee不能定向控制节点,无法实现远程控制。而本发明能够很好地解决上面的问题。
发明内容
本发明目的在于提供了一种基于云服务及ZigBee技术的智能家居系统及其设计方法,该系统主要以Apache云服务为数据中心,家庭网关控制或接收来自ZigBee协调者的命令,并通过解析命令将设备状态记录后,发送至云服务器上,手机客户端获取HTTP请求后得到家庭网关的状态,客户端也可以发送相关命令到云服务器上,家庭网关做相应解析进行ZigBee节点控制的智能家居系统,该系统解决了ZigBee定点控制,远程控制等问题。
本发明解决其技术问题所采取的技术方案是:一种基于云服务及ZigBee技术的智能家居系统,该系统包括家庭网关模块、服务器模块和手机客户端模块。数据是通过Wi-Fi无线网进行传输,而其相关的协议均是采用http协议。
家庭网关模块的功能是:采集设备的所有信息,其中包含:温度检测模块、光强检测模块、继电器控制模块,智能插座模块,而这些模块统一在ZigBee终端上,然后会将这些模块上测得的数据通过ZigBee协议栈发送给ZigBee协调者;所述的ZigBee终端有多个,然后ZigBee协调者通过串口与S5PV210处理器进行数据解析得到相应的状态,显示在家庭网关的界面上,最后通过Wi-Fi无线网将数据发送到服务器;
服务器模块的功能是:获取家庭网关模块的所有的状态信息,并将其保存;
手机客户端模块的功能是:获取上述模块的相关数据,即:包含服务器模块中所有的信息,点击登陆,输入正确密码即可进入控制界面。
本发明还提供了一种基于云服务及ZigBee技术的智能家居系统的设计方法,该方法建立ZigBee网络映射表,云服务监听及NDK监听,包括如下步骤:
步骤1:配置ZigBee的网络传输模式,ZigBee协调者中建立一个空的网络映射表即一个数组用于存放ZigBee节点所发送的网络地址信息;
步骤2:节点发送自身短地址与协调者进行绑定返回相关应答这样一个网络映射表建立完成;
步骤3:建立ZigBee的命令体系,发送相关命令即可对相关节点及硬件控制;
步骤4:为了ZigBee协调者与家庭网关进行数据通讯,需要使用NDK进行通讯与监听ZigBee协调者回传的数据与发送相关数据;
步骤5:为了建立远程连接,必须建立一个Web服务器,通过这个Web服务器与家庭网关、手机客户端进行相关的数据传递,通过HTTP请求传递数据以实现数据同步与状态同步,当然手机客户端也可以与服务器通信,远程控制家庭网关,然后通过家庭网关来控制相关的节点;
步骤6:手机客户端创建,然后其与服务器上的所有数据进行全面的同步。手机可以发送相关的命令到服务器上,家庭网关在监听串口上的ZigBee上,同时监听服务器的命令,该命令来自步骤5中的命令发送接口。至此该系统搭建完毕。
进一步的,上述本发明的步骤1包括:
步骤1-1,在TI所提供的ZigBee协议栈的SampleApp.c文件中找到结构体afAddrType_t,并申明一个点对点发送的结构体,设置其发送的目标为SAMPLEAPP_ENDPOINT,即发送给终端,同时设置发送目标地址为0xffff,即发送给所有的终端节点。
步骤1-2,建立映射表
通过在SampleApp.c文件中新建一个二维数组,该数组第一维代表房间号,第二维代表节点设备号,其具体的格式如下:
uint16Routing_Table[ROOM_COUNT][DEV_COUNT]={0};
所述的ROOM_COUNT表示房间数量,即ZigBee的个数;DEV_COUNT房间中有多少设备控制。
进一步的,上述本发明的步骤2包括:
步骤2-1,发送本地节点短地址给协调者,首先建立一个4字节大小的数组,终端节点会将’m’,房间号(ROOM_NUM),设备号(DEV_NUM),’g’这4个数据存入该数组中,设置网络发送目标地址0x0000,即只发送给协调者,将这个数组通过AF_DataRequest的函数进行传递,在AF_DataRequest函数中传入步骤1中申明的结构体名,添加网络的轮回任务号,该数组的大小4以及该数组的数组名,让AF_DataRequest函数能够准确传达相关信息。
步骤2-2,协调者回应网络应答,申明一个int型的变量,当协调者接收到来自终端节点的数据后,首先会进行解析判断,分析接收到的数据第一个是否为'm',最后一个是否为'g'以及发送的源地址是否为空,如果判断不正确,节点自带的LED1会熄灭,如果判断正确,节点自带的LED1会亮,然后将发送的源地址赋值到变量中,在步骤1中映射表中将第一维定义为步骤2-1中的房间号(ROOM_NUM),即接收数据的第二位,将第二维定义为步骤2-1中的设备号(DEV_NUM),即接收数据的第三位,然后将该变量存入在这个位置的数组,这样映射表已经建立起来了,当然为了更加准确地进行组网,协调者仍然需要告诉终端,入网成功。因此,协调者会将’r’,0,0,’a’这4个数据存入步骤2-1申明的数组中,并将设置网络发送的短地址为上面所提变量,使用步骤2-1中的方法发送给相关的终端节点。
步骤2-3,终端处理入网应答,当终端节点接收到来自协调者的数据后,首先会进行解析判断,分析接收到的数据第一个是否为'r',最后一个是否为'a'以及发送的源地址是否为0x0000(协调者地址),如果判断不正确,节点自带的LED1会熄灭,如果判断正确,节点自带的LED1会亮,这样节点也知道了自己是否入了网。
进一步的,上述本发明的步骤3包括:在ZigBee上面制定好所有命令体系,提供相关命令发送接收机制与命令的解析机制。通过这些相关的命令达到协调者与节点的查询、控制等功能。该命令的模型包含帧头、命令类型、命令控制的类型、命令值、房间号、设备类型、设备号。而进行控制和查询的操作需要对设备进行I/O初始操作、定义动作、设置状态机。
进一步的,上述本发明步骤3实现包括以下步骤:
步骤3-1,建立ZigBee的命令体系,首先建立一个命令体系框架,这个框架分别是CmdFlag,CmdType,CmdCtrlType,CmdCtrlValue,CmdRoomId,CmdDevType,CmdDevId这7个16进制的数,这些16进制数分别代表:帧头,命令类型,命令控制的类型,命令值,房间号,设备类型,设备号。这个框架是协调者针对不同控制命令出发不同功能的整体框架,而其中帧头为0x7f,如果帧头错误代表无法识别,该条命令失效,而命令类型有:断开连接0x00,查询请求0x01,查询应答0x02,控制请求0x03,控制应带0x04,当需要断开对设备的链接就在命令类型输入0x00,而当发送查询请求时,如果查询成功,节点发送的命令在命令类型中会指定为查询应当,如果查询失败,节点发送的命令在命令类型上会直接发送0x6f,代表查询失败;而命令操作类型有:打开0x00,关闭0x01,写0x02,读0x03,当需要对相关的设备进行操作的时候就需要知道设备需要做什么工作,命令操作类型就是指定设备需要执行什么动作,比如在读取温度传感器的温度的时候,就需要才用读操作,因此在命令操作类型需使用0x03;而房间号有:客厅0x00,卧室0x01,厨房0x02,注意在这里并不一定只要这三个房间,针对于不同情况可以添加和删减相关的房间号,这些房间号有助于协调者能够迅速找到设备节点;而设备类型有:灯0x00,窗帘0x01,温度0x02,光线强度0x03,烟雾0x04,输出预留0x07,输入预留0x08,这个设备类型的定义保证了一个终端节点可以控制或者读取多个外设的设备,通过设备类型能够让协调者去调动相关的设备类型;而设备号明确了设备类型中的具体哪个设备,这样可以使节点控制更多的外设
步骤3-2,对设备进行I/O初始化,在cc2530芯片需要对相关的端口进行设置,这样才能使相应的I/O口具备输出或者输入,在此列举输出与输入的配置,输出配置,如设置P0.0,P0.1,PO.4为输出时,首先需要配置P0SEL为0xec,即设置相应的寄存器位为0,然后P0DIR需要设置为0x13,即设置相应的寄存器位为1,最后设置相关I/O口为P0_0,P0_1,P0_4均为0即可,而输入设置,以P1.2为例,首先需要配置P1SEL为0xfb,即设置相应的寄存器位为0,然后P1DIR需要设置为0xfb,即设置相应的寄存器位为0,这样输入功能就配置完成了。而且在每一个I/O配置上,设置宏定义,在宏定义判断过程中,所有的功能都是可以定制。在IAR Embedded Workbench中选择EndDeviceEB模式,在菜单栏中选择Project下的Options,对话框中选择C/C++Compiler,在Defined symbols将宏定义加入即可定制设备I/O。
步骤3-3,定义相关的动作,通过命令分析,在状态机中调用相关的动作,即可完成对终端节点的控制,定义相关的动作均都通过相应的宏定义来实现,以灯为例,灯设备的1号灯的开启宏定义为DEV_LIGHT1_OPEN(),其宏定义的内容“为do{P0_0=1;}while(0);”,该内容表示将在步骤3-2中设置好的I/O口P0_0端口置为1,这样就形成了输出高电平点亮小灯的作用信号,而同样的,灯设备的1号灯的关闭宏定义为DEV_LIGHT1_CLOSE(),其宏定义的内容为“do{P0_0=0;}while(0);”,该内容表示将在步骤3-2中设置好的I/O口P0_0端口置为0,这样就形成了输出低电平熄灭小灯的作用信号,当然在此过程需要进行查询的功能,因此需要直接对P0_0进行查询,那么就需要定义灯1的I/O口,即宏定义为DEV_LIGHT1_BIT,该宏定义内容为“(P0_0)”。同理其他所有外设的动作均可采用灯1的模式,只不过是相应的I/O口操作不同即可。
步骤3-4,设置状态机,在状态机中判断帧头和数据包原地址是否来自协调者,然后进行命令解析,调用在步骤3-3种所设置的动作,进行控制或者查询,在整个状态机中,首先要将接收到的命令进行分析,第一要务便是确定帧头是否为0x7f且命令是否来自协调者,即确定其发送数据的源地址是否为0x0000,如果帧头或者源地址确定失败,则节点自带LED2会一直亮着,,如果确定成功的话,会在返回缓存数组中存入帧头0x7f,然后进行检验设备类型,是否为步骤3-1中相应的设备类型,如果对所有的设备类型都无法匹配的话,那么返回缓存数组会在设备类型这栏中存入0x6f,即代表设备类型选择错误,如果能够匹配到相应的设备的话,就会去检验命令类型,根据不同命令类型可以去执行不同的动作,当然如果发送的数据中的没有该项,那么会在该栏中存入0x6f,以提示命令的错误。当进入命令类型选择成功后,便是对命令控制的类型解析,针对终端需要什么动作,,然后再去解析设备ID号,需要针对哪个外设进行控制,当然在状态机前会根据房间号以确定哪个房间的设备。注意在查询命令的时候,终端会在命令类型一栏中返回查询应答,而在控制命令执行的时候,终端会在命令类型一栏中返回控制应答,这样以确保控制与查询的准确性。最后通过步骤2-1所提及的网络传输回调函数,将返回缓存数组的所有内容全部都返回给协调者。
进一步的,上述本发明的步骤4包括:在Andriod系统下的家庭网关,当启动智能家居系统的服务器应用后就可以进行NDK的监听,NDK监听包含串口波特率设置,串口输入流,输出流的设置,让相关Activity继承NDK的类得以监听串口发送的相关数据以及发送相关的命令模式。
进一步的,上述本发明步骤4实现包括以下步骤:
步骤4-1,建立相关的NDK编辑器:
在设置NDK的时候需要Eclipse建立一个专门用于编译C/C++的编译器,在NDK版本7以后,就已经集成了这样的编译器。在工程目录选择Properties,新建一个Builder,在Main选项卡中选择相应的NDK编译器,例如目录:D:\xxx\ndk-build.cmd,然后选择相关的工程目录。
步骤4-2,建立NDK相关的C语言文件:在Jni目录中建立自己的NDK串口通信文件,申明Linux文件描述符,串口速率和java的文件描述,通过回调函数得到所设置的波特率并判断其是否成功获取了波特率,接着打开在回调函数中所串口的地址,用Linux文件描述符打开文件,并将回调函数中地址转变UTF-8格式。在得到串口地址与波特率数值的情况下,还需要对串口进行初始化设置。串口的配置与Linux中的termios结构体配置一样,输入相应的波特率即可,原因在于该发明所使用的家庭网关搭载了安卓系统,而安卓系统源自Linux,因而其设置是相同的。
步骤4-3,在设置好串口之后,家庭网关设备端就可以通过串口与ZigBee协调者进行通信,在家庭网关的NDK文件中需要对使用的NDK应用进行申明,即引用在步骤4-1生成的libs文件,其具体申明为“static{System.loadLibrary("serialport-jni");}”。
步骤4-4,在完成了串口的库引用申明后,需要在回调函数里输入串口端口号和串口波特率,使步骤4-2能够得到相关信息来打开串口,得到串口的输入输出流,进行写入数据与读取数据。
步骤4-5,可以让Activity继承相关的串口初始化文件,在串口初始化文件中开辟线程来监听ZigBee协调者的数据,而监听是通过监听线程中断isInterrupted()函数来进行监听的,如果接到数据,就会将所得数据通过函数回调的方式暴露给应用,然后通过调用这个回调函数解析ZigBee的命令得到相关的操作信息,并通过UI线程进行UI操作。
进一步的,上述本发明的步骤5包括:在服务器上安装WampServer,该软件直接集成了Apache、PHP和MySql的服务器软件,将写好的PHP后台文件放在D:\software\wamp\www\smarthome下,注意wamp是WampServer安装目录。
进一步的,上述本发明步骤5实现包括以下步骤:
步骤5-1,首先要设置编码格式,接着选择相应的数据库表单,输入相关的数据库用户名,密码等信息,从而连接MySQL数据库。
步骤5-2,为了使后台数据与家庭网关数据能够相同,需要对不同的信息设置更改接口与状态信息接口:
1)设置状态信息更改接口,首先需要设置接口的编码方式utf-8,以防止家庭网关及手机接收的信息不出现乱码的情况,预设所有的设备相关值均为0,接着使用php的get方法来获取当前状态下的状态,然后连接数据库,使用sql语句将相关信息插入到相关的表单,在插入数据后关闭数据库,最后以json格式的返回是否插入成功。
2)设置状态信息接口,首先需要设置接口的编码方式utf-8,以防止家庭网关及手机接收的信息不出现乱码的情况,连接数据库,从相应的表单中取出与家庭网关同步的设备状态,以json格式的返回当前设备状态,然后关闭数据库。
步骤5-3设置好命令接受发送信息:
1)设置接收命令接口,首先需要设置接口的编码方式utf-8,以防止家庭网关及手机接收的信息不出现乱码的情况,将步骤3-1的命令使用php的get方法来获取命令信息,接着使用php的get方法来获取当前状态下的状态,然后连接数据库,使用sql语句将相关信息插入到相关的表单,在插入数据后关闭数据库,最后以json格式的返回是否插入成功。
2)发送命令接口:首先需要设置接口的编码方式utf-8,以防止家庭网关及手机接收的信息不出现乱码的情况,连接数据库,从相应的表单中取出接收命令接口,以json格式的返回,然后关闭数据库。
家庭网关会实时地监听该接口,该接口的数据也只有10秒钟有效,因而家庭网关每9秒请求一次,保证命令的及时性。
有益效果:
本发明设计出一种有云服务的智能家居系统,而且是采用Android操作系统作为手机客户端,Apache作为Web服务器,MySql作为数据库,Android平台作为家庭网关的具备云服务的智能家居系统。该系统在符合智能控制基本家电的基础上,还具备提及体积小,远程控制,简单容易操作,友好界面操作,易于移植的特点,最终还需要通过此平台对智能家电进行控制设计出相关的电路。该方案不仅包含了硬件测试平台的设计,而且还包含了软件设计模块,包括:
(1)根据调查现今智能家居系统正在向可拓展性高,使用简单,低功耗的发展趋势,在硬件平台上使用目前较为广泛使用的ZigBee技术,并且通过Android设备端实时展现当前的房间状态,并将该状态,通过HTTP请求传递到相应的服务器上,然后使用Android手机客户端与服务器进行通讯,实现人机交互,使用户得到友好的交互界面。
(2)为了能够实现短途房间控制及远程控制能力,本发明所采用的是当下流行的无线网传感网络技术中的ZigBee技术及云服务平台Apache,通过ZigBee技术可以在房间内进行较为短途的传输数据,且ZigBee技术与Wi-Fi不存在IP冲突现象,保证了家庭网络的可靠性与速率,云服务平台提供了非常好的远程控制能力,只要通过相关的云服务接口,就能够轻松控制各类终端家电。
(3)硬件设计已经成为一个模块化,能够通过模块化的硬件进行相关修正,确保其成为产品时能够统一只生产一个模块,而且其他不同模块功能够在同一个模板模块上得到定制。这使得本系统的可扩展性更强,维护更为简易,即在硬件上预留各类接口,用户可以根据自己的需求连接相关设备进行控制,例如当用户又在房间内添加了新的家用电器,需要该家用电器进行电源控制,用户就可以直接将该家用电器的电源设备与相关预留继电器模块相连即可。软件采用层次化设计确保了通用性,这使得整个系统的软硬件的适用性很强。
(4)Android系统确保了用户不仅仅可以在自己智能手机上对设备进行操作,家庭网关也可使用户在家对住宅内的家电进行控制,使用户能够更加简便地操作设备。
附图说明
图1为本发明系统总体框架图。主要介绍系统的总体框架,系统包含家庭网关,服务器,手机客户端,其中家庭网关包含ZigBee协调者,服务器包含了MySql数据库。
图2为本发明硬件框架图。主要介绍一个ZigBee终端上包含的模块,当然在整体系统中可以有多个ZigBee终端,它们均可与ZigBee协调者进行连接,从而达到控制的基本硬件框架,ZigBee协调者可以与家庭网关处理器进行数据通信后,通过Wi-Fi模块进行数据的发送。
图3为本发明软件框架图。主要介绍整个系统大体的软件实现流程,包含了ZigBee终端模块软件编写,ZigBee协调者收集数据模块编写,NDK软件通讯及家庭网关软件的编写,服务器Apache建立与数据库连接调用的编写以及上位机客户端应用程序的编写。
图4为本发明家庭网关串口接口原理图。
图5为本发明ZigBee组网数据传输步骤图。
图6为本发明示例ZigBee节点网络映射表。本图主要举出相应的网络映射表,特别是节点短地址是完全不定的
图7为本发明家庭网关控制监听流程图。
图8为本发明手机客户端流程图。
图9为本发明家庭网关设备初始化界面图。在启动家庭网关应用会启动此界面。
图10为本发明家庭网关设备初始化成功界面图。当该系统将所有的节点信息查询后,并且查询成功后,可进入此界面,当然在检查的过程中,如有设备不成功即可得到相关提示。
图11为本发明家庭网关客厅界面图。可显示当前客厅的所有设备状况,可以通过点击按钮进行对客厅的设备进行操作。
图12为本发明家庭网关卧室界面图。可显示当前卧室的所有设备状况,可以通过点击按钮进行对卧室的设备进行操作。
图13为本发明家庭网关厨房界面图。可显示当前厨房的所有设备状况,可以通过点击按钮进行对厨房的设备进行操作。
图14为本发明手机客户端主界面图。启动该应用时所进入的主界面,需要用户进行登录。
图15为本发明手机客户端登录界面图。需要用户输入正确的用户名和密码。
图16为本发明手机客户端使用主界面图。分别可进入客厅、卧室、厨房等控制界面。
图17为本发明手机客户端客厅控制界面图。可显示当前客厅的所有设备状况,可以通过点击按钮进行对客厅的设备进行操作。
图18为本发明手机客户端卧室控制界面图。可显示当前卧室的所有设备状况,可以通过点击按钮进行对卧室的设备进行操作。
图19为本发明手机客户端厨房控制界面图。可显示当前厨房的所有设备状况,可以通过点击按钮进行对厨房的设备进行操作。
具体实施方式
下面结合说明书附图对本发明创造作进一步的详细说明。
一种基于云服务及ZigBee技术的智能家居系统,该系统包括三大主要模块,即:家庭网关模块、服务器模块和手机客户端模块。其具体系统总体框架如图1所示,其所有的数据都通过Wi-Fi无线网进行传输,而其相关的协议均是采用http协议,服务器模块获取家庭网关模块的所有的状态信息,并将其保存,让手机客户端得以获取相关的数据,手机客户端功能界面如图16至图19所示,包含了服务器中所有的信息,点击登陆,输入正确密码即可进入控制界面。而家庭网关模块主要是为了采集设备的所有信息,其主要的框架图如图2,其中包含温度检测模块、光强检测模块、继电器控制模块,智能插座模块,而这些模块统一在ZigBee终端上,然后会将这些模块上测得的数据通过ZigBee协议栈发送给ZigBee协调者,当然ZigBee终端可以是多个。然后ZigBee协调者通过串口与S5PV210处理器进行数据解析得到相应的状态,显示在家庭网关的界面上,如图11到图15所示,最后通过Wi-Fi无线网将数据发送到服务器,而实现这过程的软件框架如图3所示。
本发明的ZigBee控制系统模块中的关键在于建立一个可寻址的网络连接,其主要方法流程图如图7所示,而其建立的网络映射表应如图8所示,而家庭网关需要对ZigBee控制系统进行监听,其监听流程图如图9,手机客户端也需要实时监听服务器上的数据,如图10所示的流程图说明了手机客户端的主要流程,整体的主要流程需要图9与图10所示的流程图结合形成基于云服务及ZigBee技术的智能家居系统,而服务器是家庭网关与手机客户端的纽带。
如图7所示,一种基于云服务及ZigBee技术的智能家居系统的设计方法,该方法建立ZigBee网络映射表,云服务监听及NDK监听,包括如下步骤:
步骤1:配置ZigBee的网络传输模式,ZigBee协调者中建立一个空的网络映射表即一个数组用于存放ZigBee节点所发送的网络地址信息;
步骤2:节点发送自身短地址与协调者进行绑定返回相关应答这样一个网络映射表建立完成;
步骤3:建立ZigBee的命令体系,发送相关命令即可对相关节点及硬件控制;
步骤4:为了ZigBee协调者与家庭网关进行数据通讯,需要使用NDK进行通讯与监听ZigBee协调者回传的数据与发送相关数据;
步骤5:为了建立远程连接,必须建立一个Web服务器,通过这个Web服务器与家庭网关、手机客户端进行相关的数据传递,通过HTTP请求传递数据以实现数据同步与状态同步,当然手机客户端也可以与服务器通信,远程控制家庭网关,然后通过家庭网关来控制相关的节点;
步骤6:手机客户端创建,然后其与服务器上的所有数据进行全面的同步。手机可以发送相关的命令到服务器上,家庭网关在监听串口上的ZigBee上,同时监听服务器的命令,该命令来自步骤5中的命令发送接口。至此该系统搭建完毕。
上述本发明的步骤1包括:
步骤1-1,在TI所提供的ZigBee协议栈的SampleApp.c文件中找到结构体afAddrType_t,并申明一个点对点发送的结构体,设置其发送的目标为SAMPLEAPP_ENDPOINT,即发送给终端,同时设置发送目标地址为0xffff,即发送给所有的终端节点。
步骤1-2,建立映射表
通过在SampleApp.c文件中新建一个二维数组,该数组第一维代表房间号,第二维代表节点设备号,其具体的格式如下:
uint16Routing_Table[ROOM_COUNT][DEV_COUNT]={0};
所述的ROOM_COUNT表示房间数量,即ZigBee的个数;DEV_COUNT房间中有多少设备控制。
上述本发明的步骤2包括:
步骤2-1,发送本地节点短地址给协调者,首先建立一个4字节大小的数组,终端节点会将’m’,房间号(即:ROOM_NUM),设备号(即:DEV_NUM),’g’这4个数据存入该数组中,设置网络发送目标地址0x0000,即只发送给协调者,将这个数组通过AF_DataRequest的函数进行传递,在AF_DataRequest函数中传入步骤1中申明的结构体名,添加网络的轮回任务号,该数组的大小4以及该数组的数组名,让AF_DataRequest函数能够准确传达相关信息。
步骤2-2,协调者回应网络应答,申明一个int型的变量,当协调者接收到来自终端节点的数据后,首先会进行解析判断,分析接收到的数据第一个是否为'm',最后一个是否为'g'以及发送的源地址是否为空,如果判断不正确,节点自带的LED1会熄灭,如果判断正确,节点自带的LED1会亮,然后将发送的源地址赋值到变量中,在步骤1中映射表中将第一维定义为步骤2-1中的房间号(即:ROOM_NUM),即接收数据的第二位,将第二维定义为步骤2-1中的设备号(即:DEV_NUM),即接收数据的第三位,然后将该变量存入在这个位置的数组,这样映射表已经建立起来了,当然为了更加准确地进行组网,协调者仍然需要告诉终端,入网成功。因此,协调者会将’r’,0,0,’a’这4个数据存入步骤2-1申明的数组中,并将设置网络发送的短地址为上面所提变量,使用步骤2-1中的方法发送给相关的终端节点。
步骤2-3,终端处理入网应答,当终端节点接收到来自协调者的数据后,首先会进行解析判断,分析接收到的数据第一个是否为'r',最后一个是否为'a'以及发送的源地址是否为0x0000(即:协调者地址),如果判断不正确,节点自带的LED1会熄灭,如果判断正确,节点自带的LED1会亮,这样节点也知道了自己是否入了网。
上述本发明的步骤3包括:在ZigBee上面制定好所有命令体系,提供相关命令发送接收机制与命令的解析机制。通过这些相关的命令达到协调者与节点的查询、控制等功能。该命令的模型包含帧头、命令类型、命令控制的类型、命令值、房间号、设备类型、设备号。而进行控制和查询的操作需要对设备进行I/O初始操作、定义动作、设置状态机。
上述本发明步骤3实现包括以下步骤:
步骤3-1,建立ZigBee的命令体系,首先建立一个命令体系框架,这个框架分别是CmdFlag,CmdType,CmdCtrlType,CmdCtrlValue,CmdRoomId,CmdDevType,CmdDevId这7个16进制的数,这些16进制数分别代表:帧头,命令类型,命令控制的类型,命令值,房间号,设备类型,设备号。这个框架是协调者针对不同控制命令出发不同功能的整体框架,而其中帧头为0x7f,如果帧头错误代表无法识别,该条命令失效,而命令类型有:断开连接0x00,查询请求0x01,查询应答0x02,控制请求0x03,控制应带0x04,当需要断开对设备的链接就在命令类型输入0x00,而当发送查询请求时,如果查询成功,节点发送的命令在命令类型中会指定为查询应当,如果查询失败,节点发送的命令在命令类型上会直接发送0x6f,代表查询失败;而命令操作类型有:打开0x00,关闭0x01,写0x02,读0x03,当需要对相关的设备进行操作的时候就需要知道设备需要做什么工作,命令操作类型就是指定设备需要执行什么动作,比如在读取温度传感器的温度的时候,就需要才用读操作,因此在命令操作类型需使用0x03;而房间号有:客厅0x00,卧室0x01,厨房0x02,注意在这里并不一定只要这三个房间,针对于不同情况可以添加和删减相关的房间号,这些房间号有助于协调者能够迅速找到设备节点;而设备类型有:灯0x00,窗帘0x01,温度0x02,光线强度0x03,烟雾0x04,输出预留0x07,输入预留0x08,这个设备类型的定义保证了一个终端节点可以控制或者读取多个外设的设备,通过设备类型能够让协调者去调动相关的设备类型;而设备号明确了设备类型中的具体哪个设备,这样可以使节点控制更多的外设。
步骤3-2,对设备进行I/O初始化,在cc2530芯片需要对相关的端口进行设置,这样才能使相应的I/O口具备输出或者输入,在此列举输出与输入的配置,输出配置,如设置P0.0,P0.1,PO.4为输出时,首先需要配置P0SEL为0xec,即设置相应的寄存器位为0,然后P0DIR需要设置为0x13,即设置相应的寄存器位为1,最后设置相关I/O口为P0_0,P0_1,P0_4均为0即可,而输入设置,以P1.2为例,首先需要配置P1SEL为0xfb,即设置相应的寄存器位为0,然后P1DIR需要设置为0xfb,即设置相应的寄存器位为0,这样输入功能就配置完成了。而且在每一个I/O配置上,设置宏定义,在宏定义判断过程中,所有的功能都是可以定制。在IAR Embedded Workbench中选择EndDeviceEB模式,在菜单栏中选择Project下的Options,对话框中选择C/C++Compi ler,在Defined symbols将宏定义加入即可定制设备I/O。
步骤3-3,定义相关的动作,通过命令分析,在状态机中调用相关的动作,即可完成对终端节点的控制,定义相关的动作均都通过相应的宏定义来实现,以灯为例,灯设备的1号灯的开启宏定义为DEV_LIGHT1_OPEN(),其宏定义的内容“为do{P0_0=1;}while(0);”,该内容表示将在步骤3-2中设置好的I/O口P0_0端口置为1,这样就形成了输出高电平点亮小灯的作用信号,而同样的,灯设备的1号灯的关闭宏定义为DEV_LIGHT1_CLOSE(),其宏定义的内容为“do{P0_0=0;}while(0);”,该内容表示将在步骤3-2中设置好的I/O口P0_0端口置为0,这样就形成了输出低电平熄灭小灯的作用信号,当然在此过程需要进行查询的功能,因此需要直接对P0_0进行查询,那么就需要定义灯1的I/O口,即宏定义为DEV_LIGHT1_BIT,该宏定义内容为“(P0_0)”。同理其他所有外设的动作均可采用灯1的模式,只不过是相应的I/O口操作不同即可。
步骤3-4,设置状态机,在状态机中判断帧头和数据包原地址是否来自协调者,然后进行命令解析,调用在步骤3-3种所设置的动作,进行控制或者查询,在整个状态机中,首先要将接收到的命令进行分析,第一要务便是确定帧头是否为0x7f且命令是否来自协调者,即确定其发送数据的源地址是否为0x0000,如果帧头或者源地址确定失败,则节点自带LED2会一直亮着,,如果确定成功的话,会在返回缓存数组中存入帧头0x7f,然后进行检验设备类型,是否为步骤3-1中相应的设备类型,如果对所有的设备类型都无法匹配的话,那么返回缓存数组会在设备类型这栏中存入0x6f,即代表设备类型选择错误,如果能够匹配到相应的设备的话,就会去检验命令类型,根据不同命令类型可以去执行不同的动作,当然如果发送的数据中的没有该项,那么会在该栏中存入0x6f,以提示命令的错误。当进入命令类型选择成功后,便是对命令控制的类型解析,针对终端需要什么动作,,然后再去解析设备ID号,需要针对哪个外设进行控制,当然在状态机前会根据房间号以确定哪个房间的设备。注意在查询命令的时候,终端会在命令类型一栏中返回查询应答,而在控制命令执行的时候,终端会在命令类型一栏中返回控制应答,这样以确保控制与查询的准确性。最后通过步骤2-1所提及的网络传输回调函数,将返回缓存数组的所有内容全部都返回给协调者。
上述本发明的步骤4包括:在Andriod系统下的家庭网关,当启动智能家居系统的服务器应用后就可以进行NDK的监听,NDK监听包含串口波特率设置,串口输入流,输出流的设置,让相关Activity继承NDK的类得以监听串口发送的相关数据以及发送相关的命令模式。
上述本发明步骤4实现包括以下步骤:
步骤4-1,建立相关的NDK编辑器:
在设置NDK的时候需要Eclipse建立一个专门用于编译C/C++的编译器,在NDK版本7以后,就已经集成了这样的编译器。在工程目录选择Properties,新建一个Builder,在Main选项卡中选择相应的NDK编译器,例如目录:D:\xxx\ndk-build.cmd,然后选择相关的工程目录。
步骤4-2,建立NDK相关的C语言文件:在Jni目录中建立自己的NDK串口通信文件,申明Linux文件描述符,串口速率和java的文件描述,通过回调函数得到所设置的波特率并判断其是否成功获取了波特率,接着打开在回调函数中所串口的地址,用Linux文件描述符打开文件,并将回调函数中地址转变UTF-8格式。在得到串口地址与波特率数值的情况下,还需要对串口进行初始化设置。串口的配置与Linux中的termios结构体配置一样,输入相应的波特率即可,原因在于该发明所使用的家庭网关搭载了安卓系统,而安卓系统源自Linux,因而其设置是相同的。
步骤4-3,在设置好串口之后,家庭网关设备端就可以通过串口与ZigBee协调者进行通信,在家庭网关的NDK文件中需要对使用的NDK应用进行申明,即引用在步骤4-1生成的libs文件,其具体申明为“static{System.loadLibrary("serialport-jni");}”。
步骤4-4,在完成了串口的库引用申明后,需要在回调函数里输入串口端口号和串口波特率,使步骤4-2能够得到相关信息来打开串口,得到串口的输入输出流,进行写入数据与读取数据。
步骤4-5,可以让Activity继承相关的串口初始化文件,在串口初始化文件中开辟线程来监听ZigBee协调者的数据,而监听是通过监听线程中断isInterrupted()函数来进行监听的,如果接到数据,就会将所得数据通过函数回调的方式暴露给应用,然后通过调用这个回调函数解析ZigBee的命令得到相关的操作信息,并通过UI线程进行UI操作。
上述本发明的步骤5包括:在服务器上安装WampServer,该软件直接集成了Apache、PHP和MySql的服务器软件,将写好的PHP后台文件放在D:\software\wamp\www\smarthome下,注意wamp是WampServer安装目录。
上述本发明步骤5实现包括以下步骤:
步骤5-1,首先要设置编码格式,接着选择相应的数据库表单,输入相关的数据库用户名,密码等信息,从而连接MySQL数据库。
步骤5-2,为了使后台数据与家庭网关数据能够相同,需要对不同的信息设置更改接口与状态信息接口:
1)设置状态信息更改接口,首先需要设置接口的编码方式utf-8,以防止家庭网关及手机接收的信息不出现乱码的情况,预设所有的设备相关值均为0,接着使用php的get方法来获取当前状态下的状态,然后连接数据库,使用sql语句将相关信息插入到相关的表单,在插入数据后关闭数据库,最后以json格式的返回是否插入成功。
2)设置状态信息接口,首先需要设置接口的编码方式utf-8,以防止家庭网关及手机接收的信息不出现乱码的情况,连接数据库,从相应的表单中取出与家庭网关同步的设备状态,以json格式的返回当前设备状态,然后关闭数据库。
步骤5-3设置好命令接受发送信息:
1)设置接收命令接口,首先需要设置接口的编码方式utf-8,以防止家庭网关及手机接收的信息不出现乱码的情况,将步骤3-1的命令使用php的get方法来获取命令信息,接着使用php的get方法来获取当前状态下的状态,然后连接数据库,使用sql语句将相关信息插入到相关的表单,在插入数据后关闭数据库,最后以json格式的返回是否插入成功。
2)发送命令接口:首先需要设置接口的编码方式utf-8,以防止家庭网关及手机接收的信息不出现乱码的情况,连接数据库,从相应的表单中取出接收命令接口,以json格式的返回,然后关闭数据库。
家庭网关会实时地监听该接口,该接口的数据也只有10秒钟有效,因而家庭网关每9秒请求一次,保证命令的及时性。
本发明设计出一种有云服务的智能家居系统,而且采用时下最流行的Android操作系统作为手机客户端,Apache作为Web服务器,MySql作为数据库,Android平台作为家庭网关的具备云服务的智能家居系统。该系统在符合智能控制基本家电的基础上,还具备提及体积小,远程控制,简单容易操作,友好界面操作,易于移植的特点,最终还需要通过此平台对智能家电进行控制设计出相关的电路。该方案不仅包含了硬件测试平台的设计,而且还包含了软件设计模块。主要特点是:
(1)根据调查现今智能家居系统正在向可拓展性高,使用简单,低功耗的发展趋势,在硬件平台上使用目前较为广泛使用的ZigBee技术,并且通过Android设备端实时展现当前的房间状态,并将该状态,通过HTTP请求传递到相应的服务器上,然后使用Android手机客户端与服务器进行通讯,实现人机交互,使用户得到友好的交互界面。
(2)为了能够实现短途房间控制及远程控制能力,本发明所采用的是当下流行的无线网传感网络技术中的ZigBee技术及云服务平台Apache,通过ZigBee技术可以在房间内进行较为短途的传输数据,且ZigBee技术与Wi-Fi不存在IP冲突现象,保证了家庭网络的可靠性与速率,云服务平台提供了非常好的远程控制能力,只要通过相关的云服务接口,就能够轻松控制各类终端家电。
(3)硬件设计已经成为一个模块化,能够通过模块化的硬件进行相关修正,确保其成为产品时能够统一只生产一个模块,而且其他不同模块功能够在同一个模板模块上得到定制。这使得本系统的可扩展性更强,维护更为简易,即在硬件上预留各类接口,用户可以根据自己的需求连接相关设备进行控制,例如当用户又在房间内添加了新的家用电器,需要该家用电器进行电源控制,用户就可以直接将该家用电器的电源设备与相关预留继电器模块相连即可。软件采用层次化设计确保了通用性,这使得整个系统的软硬件的适用性很强。
(4)Android系统确保了用户不仅仅可以在自己智能手机上对设备进行操作,家庭网关也可使用户在家对住宅内的家电进行控制,使用户能够更加简便地操作设备。
本发明所设计的系统已经在博创移动互联实验箱上进行了实现,根据上述所示步骤,搭建相关的平台,并将相关数据进行搭建组建起一个完整的家庭网关系统,其相关的显示界面如图11、图12、图13、图14、图15所示,每个页面均继承了实时控制的方法,具备监听串口和服务器的功能。手机端如图16、图17、图18、图19所示,具备查询和发送的功能,能够实时进行通讯。
Claims (4)
1.一种基于云服务及ZigBee技术的智能家居系统的设计方法,其特征在于,所述方法包括如下步骤:
步骤1:配置ZigBee的网络传输模式,ZigBee协调者中建立一个空的网络映射表即一个数组用于存放ZigBee节点所发送的网络地址信息;
步骤2:节点发送自身短地址与协调者进行绑定,返回相关应答,完成一个网络映射表建立,包括:
步骤2-1,发送本地节点短地址给协调者,首先建立一个4字节大小的数组,终端节点会将’m’,房间号,即:ROOM_NUM,设备号,即:DEV_NUM,’g’这4个数据存入该数组中,设置网络发送目标地址0x0000,即只发送给协调者,将这个数组通过AF_DataRequest的函数进行传递,在AF_DataRequest函数中传入上述步骤1中申明的网络映射表结构体名,添加网络的轮回任务号,该数组的大小4以及该数组的数组名,让AF_DataRequest函数能够准确传达相关信息;
步骤2-2,协调者回应网络应答,申明一个int型的变量,当协调者接收到来自终端节点的数据后,首先会进行解析判断,分析接收到的数据第一个是否为'm',最后一个是否为'g'以及发送的源地址是否为空,如果判断不正确,节点自带的LED1会熄灭,如果判断正确,节点自带的LED1会亮,然后将发送的源地址赋值到变量中,通过在SampleApp.c文件中新建一个二维数组,在步骤1中映射表中将第一维定义为步骤2-1中的房间号,即:ROOM_NUM,即接收数据的第二位,将第二维定义为步骤2-1中的设备号,即:DEV_NUM,即接收数据的第三位,然后将该变量存入在这个位置的数组,这样映射表已经建立起来了,当然为了更加准确地进行组网,协调者仍然需要告诉终端,入网成功;协调者会将’r’,0,0,’a’这4个数据存入步骤2-1申明的数组中,并设置网络发送的短地址为 上面所提变量,使用步骤2-1中的方法发送给相关的终端节点;
步骤2-3,终端处理入网应答,当终端节点接收到来自协调者的数据后,首先会进行解析判断,分析接收到的数据第一个是否为'r',最后一个是否为'a'以及发送的源地址是否为0x0000,即:协调者地址,如果判断不正确,节点自带的LED1会熄灭,如果判断正确,节点自带的LED1会亮,这样节点也知道了自己是否入了网;
步骤3:建立ZigBee的命令体系,发送相关命令即可对相关节点及硬件控制;
步骤4:为了ZigBee协调者与家庭网关进行数据通讯,需要使用NDK进行通讯与监听ZigBee协调者回传的数据与发送相关数据;
步骤5:为了建立远程连接,必须建立一个Web服务器,通过这个Web服务器与家庭网关、手机客户端进行相关的数据传递,通过HTTP请求传递数据以实现数据同步与状态同步;手机客户端与服务器通信,远程控制家庭网关,然后通过家庭网关来控制相关的节点;
步骤6:手机客户端创建,然后其与服务器上的所有数据进行全面的同步;手机发送相关的命令到服务器上,家庭网关在监听串口上的ZigBee上,同时监听上述步骤5服务器发送接口的命令。
2.根据权利要求1所述的一种基于云服务及ZigBee技术的智能家居系统的设计方法,其特征在于,所述步骤1包括:
步骤1-1,在TI所提供的ZigBee协议栈的SampleApp.c文件中找到结构体afAddrType_t,并申明一个点对点发送的结构体,设置其发送的目标为SAMPLEAPP_ENDPOINT,即发送给终端,同时设置发送目标地址为0xffff,即发送给所有的终端节点;
步骤1-2,建立映射表;
通过在SampleApp.c文件中新建一个二维数组,该数组第一维代表房间号,第二维代表节点设备号,其具体的格式包括:
uint16Routing_Table[ROOM_COUNT][DEV_COUNT]={0};
所述的ROOM_COUNT表示房间数量,即ZigBee的个数;DEV_COUNT房间中有多少设备控制。
3.根据权利要求1所述的一种基于云服务及ZigBee技术的智能家居系统的设计方法,其特征在于,所述步骤4包括:在Andriod系统下的家庭网关,当启动智能家居系统的服务器应用后,进行NDK的监听,NDK监听包含串口波特率设置,串口输入流,输出流的设置,让相关Activity继承NDK的类得以监听串口发送的相关数据以及发送相关的命令模式;
步骤4-1,建立相关的NDK编辑器:
在设置NDK的时候需要Eclipse建立一个专门用于编译C/C++的编译器,在NDK版本7以后,就已经集成了这样的编译器;在工程目录选择Properties,新建一个Builder,在Main选项卡中选择相应的NDK编译器,目录:D:\xxx\ndk-build.cmd,然后选择相关的工程目录;
步骤4-2,建立NDK相关的C语言文件:在Jni目录中建立自己的NDK串口通信文件,申明Linux文件描述符,串口速率和java的文件描述,通过回调函数得到所设置的波特率并判断其是否成功获取了波特率,接着打开在回调函数中所串口的地址,用Linux文件描述符打开文件,并将回调函数中地址转变UTF-8格式;在得到串口地址与波特率数值的情况下,还需要对串口进行初始化设置;串口的配置与Linux中的termios结构体配置一样,输入相应的波特率即可,原因在于所使用的家庭网关搭载了安卓系统,而安卓系统源自Linux,因而其设置是相同的;
步骤4-3,在设置好串口之后,家庭网关设备端通过串口与ZigBee协调者进行通信,在家庭网关的NDK文件中需要对使用的NDK应用进行申明,即引用在步骤4-1生成的libs文件,其具体申明为“static{System.loadLibrary("serialport-jni");}”;
步骤4-4,在完成了串口的库引用申明后,需要在回调函数里输入串口端口号和串口波特率,使步骤4-2能够得到相关信息来打开串口,得到串口的输入输出流,进行写入数据与读取数据;
步骤4-5,让Activity继承相关的串口初始化文件,在串口初始化文件中开辟线程来监听ZigBee协调者的数据,而监听是通过监听线程中断isInterrupted()函数来进行监听的,如果接到数据,就会将所得数据通过函数回调的方式暴露给应用,然后通过调用这个回调函数解析ZigBee的命令得到相关的操作信息,并通过UI线程进行UI操作。
4.根据权利要求1所述的一种基于云服务及ZigBee技术的智能家居系统的设计方法,其特征在于,所述步骤5包括:在服务器上安装WampServer,所述WampServer软件直接集成了Apache、PHP和MySql的服务器软件,将写好的PHP后台文件放在D:\software\wamp\www\smarthome下,注意wamp是WampServer安装目录;
步骤5-1,首先要设置编码格式,接着选择相应的数据库表单,输入相关的数据库用户名,密码信息,从而连接MySQL数据库;
步骤5-2,为了使后台数据与家庭网关数据能够相同,需要对不同的信息设置更改接口与状态信息接口,包括:
1)设置状态信息更改接口,首先需要设置接口的编码方式utf-8,以防止家庭网关及手机接收的信息不出现乱码的情况,预设所有的设备相关值均为0,接着使用php的get方法来获取当前状态下的状态,然后连接数据库,使用sql语句将相关信息插入到相关的表单,在插入数据后关闭数据库,最后以json格式的返回是否插入成功;
2)设置状态信息接口,首先需要设置接口的编码方式utf-8,以防止家庭网关及手机接收的信息不出现乱码的情况,连接数据库,从相应的表单中取出与家庭网关同步的设备状态,以json格式的返回当前设备状态,然后关闭数据库;
步骤5-3设置好命令接受发送信息,包括:
1)设置接收命令接口,首先需要设置接口的编码方式utf-8,以防止家庭网关及手机接收的信息不出现乱码的情况,将步骤3-1的命令使用php的get方法来获取命令信息,接着使用php的get方法来获取当前状态下的状态,然后连接数据库,使用sql语句将相关信息插入到相关的表单,在插入数据后关闭数据库,最后以json格式的返回是否插入成功;
2)发送命令接口:首先需要设置接口的编码方式utf-8,以防止家庭网关及手机接收的信息不出现乱码的情况,连接数据库,从相应的表单中取出接收命令接口,以json格式的返回,然后关闭数据库;
所述的家庭网关会实时地监听该接口,该接口的数据也只有10秒钟有效;家庭网关每9秒请求一次。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510350721.XA CN105357245B (zh) | 2015-06-23 | 2015-06-23 | 一种基于云服务及ZigBee技术的智能家居系统及其设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510350721.XA CN105357245B (zh) | 2015-06-23 | 2015-06-23 | 一种基于云服务及ZigBee技术的智能家居系统及其设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105357245A CN105357245A (zh) | 2016-02-24 |
CN105357245B true CN105357245B (zh) | 2019-04-02 |
Family
ID=55333104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510350721.XA Expired - Fee Related CN105357245B (zh) | 2015-06-23 | 2015-06-23 | 一种基于云服务及ZigBee技术的智能家居系统及其设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105357245B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871666A (zh) * | 2016-03-23 | 2016-08-17 | 浙江风向标科技有限公司 | ZigBee设备的添加方法及装置 |
CN105704234B (zh) * | 2016-03-23 | 2019-08-13 | 浙江风向标科技有限公司 | 智能设备的控制方法及装置 |
CN105915415A (zh) * | 2016-04-01 | 2016-08-31 | 上海交通大学 | 基于ZigBee和Java平台的智能家居家庭网关及其建立方法 |
JP6603609B2 (ja) * | 2016-04-20 | 2019-11-06 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ | 操作者推定方法、操作者推定装置及び操作者推定プログラム |
CN106027305A (zh) * | 2016-05-26 | 2016-10-12 | 浪潮(苏州)金融技术服务有限公司 | 一种基于arm的相同ip的双机热备的方法 |
CN105891700A (zh) * | 2016-06-07 | 2016-08-24 | 哈尔滨工业大学(威海) | 模拟太空特殊环境的集成电路辐射故障检测系统 |
CN106131164B (zh) * | 2016-07-01 | 2018-07-03 | 北京百度网讯科技有限公司 | 在云端进行协议解析的数据处理方法和装置 |
CN106789482A (zh) * | 2017-01-19 | 2017-05-31 | 上海雍敏信息科技有限公司 | 一种家庭自动化系统 |
CN107046490A (zh) * | 2017-03-30 | 2017-08-15 | 上海斐讯数据通信技术有限公司 | 使用有限状态机控制智能网关的方法及系统、智能设备控制系统 |
CN107046538B (zh) * | 2017-04-06 | 2021-02-09 | 王博 | 一种智能密室系统及其控制方法 |
CN107272437B (zh) * | 2017-08-01 | 2021-06-04 | 中国联合网络通信集团有限公司 | 智能设备及其控制方法、控制平台、智能设备系统 |
CN107708102B (zh) * | 2017-09-22 | 2021-08-31 | 烽火通信科技股份有限公司 | 一种用于ZigBee网关查询节点设备信息的系统及方法 |
CN109041088B (zh) * | 2018-08-10 | 2021-06-04 | 烽火通信科技股份有限公司 | 映射ZigBee设备信息的能力域模型、方法及系统 |
CN111049708B (zh) * | 2018-10-12 | 2021-08-17 | 上海良信智能电工有限公司 | 一种智能家居设备自动组网的方法 |
CN110071958B (zh) * | 2019-02-01 | 2020-07-28 | 西安电子科技大学 | 基于嵌入式web的传感器节点控制方法 |
CN110941193B (zh) * | 2019-11-18 | 2020-12-25 | 北京蓦然认知科技有限公司 | 一种智能家居设备的控制方法及装置 |
CN112350990B (zh) * | 2020-09-21 | 2023-09-12 | 上海伊邦医药信息科技股份有限公司 | 一种第三方互联网零售收银系统离线数据同步的方法 |
CN113391559A (zh) * | 2021-06-30 | 2021-09-14 | 青岛海信智慧生活科技股份有限公司 | 智慧家居设备控制方法和终端设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102238236A (zh) * | 2011-07-12 | 2011-11-09 | 华南理工大学 | 基于ZigBee和页面生成的智能家电系统及其实现方法 |
CN103207594A (zh) * | 2012-11-12 | 2013-07-17 | 上海大学 | 基于Internet和ZigBee的智能家居控制系统 |
CN103901867A (zh) * | 2014-04-17 | 2014-07-02 | 王洪波 | 一种基于云服务的智能家居控制系统 |
-
2015
- 2015-06-23 CN CN201510350721.XA patent/CN105357245B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102238236A (zh) * | 2011-07-12 | 2011-11-09 | 华南理工大学 | 基于ZigBee和页面生成的智能家电系统及其实现方法 |
CN103207594A (zh) * | 2012-11-12 | 2013-07-17 | 上海大学 | 基于Internet和ZigBee的智能家居控制系统 |
CN103901867A (zh) * | 2014-04-17 | 2014-07-02 | 王洪波 | 一种基于云服务的智能家居控制系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105357245A (zh) | 2016-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105357245B (zh) | 一种基于云服务及ZigBee技术的智能家居系统及其设计方法 | |
Asensio et al. | Protocol and architecture to bring things into internet of things | |
US10756963B2 (en) | System and method for developing run time self-modifying interaction solution through configuration | |
EP3557339A1 (en) | Linked control method for internet-of-things gateway and internet-of-things gateway | |
US10397876B2 (en) | Multi-factor provisioning of wireless devices | |
CN109587018A (zh) | 设备配置的方法、装置、网络系统以及移动终端 | |
CN109413515A (zh) | 设备控制方法、装置、移动终端及服务器 | |
CN108141393A (zh) | 包括设备签名配对的家庭自动化系统和相关方法 | |
CN106094534A (zh) | 一种可穿戴设备智能手表控制的智能家居系统 | |
CN104331041A (zh) | 一种智能家居系统构架及控制方法 | |
CN104865835A (zh) | 一种基于ZigBee的智能家居系统 | |
CN102111796A (zh) | 一种面向大规模无线传感器网络的分布式交互方法 | |
CN105794152A (zh) | 与楼宇自动化的基于web的交互 | |
CN104181913A (zh) | 用于智能家居系统的测试系统 | |
KR101834066B1 (ko) | 공유기를 이용한 머신 소셜라이제이션 기반 기기간 협업 관리 시스템 및 방법 | |
CN110045705A (zh) | 采用异构无线网络的智能家居控制方法、装置及系统 | |
Li et al. | An IoT service framework for smart home: Case study on HEM | |
Rovsing et al. | A reality check on home automation technologies | |
CN106792678A (zh) | 一种无线节点自动配对搜索的方法及系统 | |
US20160352577A1 (en) | Multiple gateway virtualization | |
Keyson et al. | Designing a portable and low cost home energy management toolkit | |
KR20180129260A (ko) | 시리얼-로라 통신 변환 장치 | |
Lago | Exploring complex event management in smart-spaces through a conversation-based approach | |
US11329841B2 (en) | Method of communication between a remote action manager and a communication box | |
Pawaskar et al. | IoT Based Home Automation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190402 Termination date: 20210623 |