基于Zigbee的智能家居电子开关控制系统
2015-03-25张威
张 威
青岛职业技术学院,山东青岛 266555
基于Zigbee的智能家居电子开关控制系统
张 威
青岛职业技术学院,山东青岛 266555
介绍了一种基于Zigbee的可通过手机进行远距离控制的智能家居智能开关控制系统,其以STC89C52单片机为核心,采用Zigbee、GSM无线通讯技术实现家居电子开关系统的本地和远程监控。
Zigbee;单片机;智能开关
随着人们物质生活水平的不断提高和无线通讯技术的高速发展,人们对家电智能化和远程控制的需求强烈,希望能随时随地远程控制家用电器。基于此,本文开发了一种基于Zigbee技术的远程智能家居控制系统。
1 总体设计方案
智能家居电子开关控制系统是当前业界技术发展现状和智能家居系统的应用场景,选择了基于IEEE802.15.4标准的低功耗个域网协议Zigbee。Zigbee是一种短距离、低功耗的无线通信技术,其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本,主要适合用于自动控制和远程控制领域,可以嵌入各种设备,其作为一种近距离无线组网通讯技术具有成本低和功耗低的优点。并通过GSM模块实现远程控制。同时充分考虑经济性和可靠性而设计开发的,系统总体方案如图1所示。
图1 总体设计方案
系统组成:
AC/DC电源电路:将220V交流电变换成5V直流电。
电平转换模块:主要由MAX232芯片及辅助电路构成,将5V电平转成3.3V,ZIGBEE模块的TTL电平是3.3v,CPU的TTL电平是5v,为了方便两端通过两个232芯片对接。
ZIGBEE模块:顺舟SZ05-STD,和GSM通信模块网关实现无线通信。
CPU模块: STC89C52单片机。
继电器电路:CPU模块控制继电器开关状态,继电器进而控制开关类家电的工作状态。
电源指示:指示电源。
工作原理:用户通过手机等移动设备向家庭GSM智能网关发送控制指令,智能网关解析控制指令,与相关Zigbee模块通信。Zigbee模块接收到指令后返回数据给GSM智能网关,并通过Zigbee模块的I/O口将指令送给CPU控制模块,CPU控制模块通过继电器电路控制开关类家电如洗衣机、微波炉、冰箱等的工作状态,且可以通过软件来随时控制家电的工作状态,达到节能的目的。
2 模块设计方案
整体系统按功能模块可分为信息接收模块、信息解析模块和家电控制模块。
1)信息接收模块。
此模块将短信接收、网络信息接收、本地Zigbee信息接收整合,通过信息解析,将这三种来源的信息转换成系统中使用的统一格式的信息,方便之后的操作。
此程序在系统初始化模块运行完毕后开启,此程序单独开启GSM线程和socket线程用来监听短信命令和网络命令。
短信命令接收处理使用通用的GSM短信协议,包括GSM短信发送方法、短信接收方法。只负责短信内容的接收和发送,不对短信中的内容进行解析,解析工作交由信息解析模块完成。
网络命令使用socket通信,为保证系统的安全性,首先要通过信息解析模块进行基于用户名和密码的登录验证过程,然后通过socket通道交互控制信令。
本地Zigbee消息接收基于专用的Zigbee通信模块。Zigbee模块分为中心节点模式和终端节点模式。中心节点只有一个,连接在GSM智能网关上,其他家电上嵌入的zigbee模块均为终端节点模式。网络ID是zigbee模块所属网段,zigbee必须设为同一网段才能相互通信。默认网段为FF,为了防止与系统的信号相互干扰,智能家居相关设备的网段要设为其他值。中心节点的源地址输出选择为:输出,这样中心节点接收的zigbee数据中能看到发送源的mac地址;终端节点设置此项为不输出,因为每个终端节点只和中心节点保持一对一通信,不需要对mac地址进行判断。
2)信息解析模块。
此模块通过短信解析验证、网络信息解析验证、本地Zigbee信息解析验证,验证短信用户是否为授权用户;验证网络指令密码是否正确;验证家电信息。
短信解析验证过程:
(1)从短信号码域获得手机号码字段。
(2)验证手机号码字段是否和预存的手机号码一致。
(3)一致则进入家电控制模块。
(4)不一致则抛弃数据。
网络信息解析验证过程:
(1)从网络信息中解析出用户名和密码字段
(2)验证用户名和密码字段是否和预存的用户名和密码字段一致
(3)一致则进入家电控制模块
(4)不一致则抛弃数据
本地Zigbee信息解析验证过程:
(1)从Zigbee信息中解析出家电名
(2)查找设备列表,获取对应的mac地址
(3)判断是否找到mac地址,成功返回1,失败返回0。
3)家电控制模块。
此模块接收用户指令,进入不同家电控制程序。
GSM智能网关发送命令信号字符串,写入zigbee设备所在串口,目标为zigbee模块的mac地址。命令字符串包括实际操作命令,查看状态命令;命令参数,命令内容和数据头之间用分隔符区分。
此命令发送到终端节点后,因为终端节点设置源地址不输出,所以终端节点收到的通用信号格式。
接下来单片机对此信号进行解析,进行家电控制。
以控制空调为例,mac地址为ABCDEF00的家电收到命令,此家电为空调。判断00为查看状态命令,则不进行任何控制操作,直接返回家电状态即可。
传回家电信息信号,格式如:
&A1&1&+27&23&01&FF&0&0
上述信号中:每个状态值之间用&分隔,A1代表家电类型,嵌入在不同家电中的单片机返回的值,参考家电类型定义表;1代表家电开关状态,+27代表当前温度,23代表用户设定温度、01代表当前模式、FF为未获取到的数据,用F来补齐,后面的两个0代表风速和风向。
以上数据格式是终端节点发送的格式,终端节点源地址设置为不输出,默认发送目标即为中心节点,只填写后面的消息内容即可,帧头、长度、mac地址等数据zigbee模块会自动添加。此时,智能网关会收到如下信号:
0136ABCDEF00&A1&1&+27&23&01&FF&0&0
如上文信号字符串,PC端接收到后回补全帧头、mac地址等信息。即完成了对家电设备的控制和结果获取。
3 结论
本系统利用了先进的计算机技术、无线网络通讯技术、Zigbee物联网通信技术,将各种家电子系统有机地结合成智能家居系统,通过统筹管理,让家居生活更加舒适、安全、高效。
图3 系统主程序历程图
2.1 语音模块程序设计
在语音模块程序设计时,需要操控者自己添加关键词,将操控者需要的功能词语添加到寄存器中形成语音库。工作时,要先对内部进行初始化,完成之后,需要对操控者所使用的命令字符串进行编号,并分别将字符串和字符串长度写入相应寄存器中,每次识别,可以添加一次字符串,从而可以实现语音模块对命令的识别。
2.2 驱动模块程序设计
单片机控制驱动模块去驱动电机正反转时,首先把麦克风识别到的语音与语音库中的识别码进行比对,达到最优的效果时,单片机会给驱动模块发出控制信号,驱动模块控制电机执行相应的操作。
3 结论
本系统结合手动摇动护理床升降的工作原理,利用语音控制实现了声控起降护理床的功能。设计了一个基于STM32单片机控制,由LD3320语音识别芯片和L298n驱动电机所组成的语音控制护理床升降的系统。该系统通过操作人的语音命令可以控制L298n电机驱动,从而可以实现电机的正转、反转用来控制护理床的升降。
[1]盛青.语音自动识别技术(ASR)及其软件实时实现[D].西安:西北工业大学,2001.
[2]田犇,阙大顺.基于LD3320的语音控制系统设计实现[J].电脑与信息技术,2011(6):6-9.
[3]孙兵.基于单片机的机械手声控系统设计[J].机械工程与自动化,2007(6):113-117.
TP3
A
1674-6708(2015)148-0154-02
张威,讲师,硕士,青岛职业技术学院机电一体化技术专业教师,研究方向:自动控制、嵌入式系统