邹恩 霍庆 黄兴 黄浩扬
【摘要】在ZigBee技术的基础上,设计了一种基于STC12C5A60S2的手持便携式简便智能家居控制终端,并作出底层控制模块的详细硬件设计方案。主ZigBee(coordinator)模块与手持终端连接,从ZigBee(rounter)模块与底层单片机通讯,控制照明系统、窗帘系统、风扇系统和空调系统等。其中着重设计窗帘系统和风扇系统的闭环控制,能够根据光照度和实时温度调节家居内的明暗和温度。该套智能家居模型已搭建并正常运行,通过测试15m之内系统能够较好地通讯,系统硬件成本低,方便使用并具有较好的实用性。
【关键词】ZigBee网络;智能家居;STC12C5A60S2单片机;自动控制
Intelligent home control system Based on zigbee technology
ZOU En1,HUO Qing1,Huang Xing2,HUANG Hao-yang1
(1.College of Engineering,South China Agricultural University,Guangzhou 510642,China;2.Guangzhou Kechuang Energy saving Technology Service Co.,Ltd.Guangzhou 510000,China)
Abstract:Based on the ZigBee technology,a hand-held portable intelligent home controlled terminal is designed on the basis of STC12C5A60S2 MCU,and make a detailed hardware design with floor control module.Main ZigBee(coordinator)module is connected with the handheld terminal and salved ZigBee(rounter)module communicate with the underlying chip so that lighting system,window treatments,fans system and air conditioning system are controlled.This paper focuses on designing closed-loop system by curtain and fan control systems.According to light intensity and real-time temperature,the system control brightness and temperature inside the home.The set of intelligent home model has been set up and run normally,passed the test system better able to communicate within 15m,and system low cost,easy to use and has good practicability.
Key words:ZigBee network;intelligent home;STC12C5A60S2 microcontroller;automatic control
智能家居是一个综合运用电力自动化技术、网络通讯技术、自动控制技术的集成型的家居系统。与传统家居相比,无论是生活舒适度,工作便利性都提升为较高档次。通过无线网络把家居中各种设备(照明系统、窗帘系统、空调系统、风扇系统、安防系统等)有机结合在一起,由终端控制器综合管理,从而实现安全舒适且环保节能的居住环境[1]。
当前市场上智能家居一般采用嵌入式linux系统搭建并将家居系统连接互联网,这种方案能够通过互联网远程监控家居各控制系统的实时状态并操作,只是开发技术较为复杂,系统的软硬件成本比较高[2]。另一种较为常见的智能家居系统采取有线网络组建控制系统,常见的网络为RS485或者电力载波网络等。虽然RS485传输距离较长,实现网络相对容易,但是会带来额外布线的成本和不能免除传统有线的线材损耗。而电力载波则会带给家居系统很多不必要的干扰信号[3]。
针对现时智能家居的组网成本高,有线通讯等缺点,本文提出一种基于ZigBee自组网技术,设计了以STC12C5A60S2为主控的手持便携式简便智能家居控制终端,可控制家居中常用的家电设备,着重设计窗帘系统和风扇系统的闭环控制,能够根据光照度和实时温度调节家居内的明暗和温度。该系统模型目前已通过了实验室调试过程,能满足家具内设备控制的要求。
1.智能家居系统总体设计
智能家居系统包括手持终端控制器、CC2530主Zigbee发送模块、CC2530从ZigBee接收模块、底层MCU、步进电机驱动模块、直流电机驱动模块、温度传感器模块、光照度传感器模块、时钟模块。系统总体上可分为两个部分:手持机的编程与主ZigBee模块的通讯和从MCU与各底层控制系统的设计。手持机的菜单系统总共有5层,主要包括单独控制各设备和一键式设置模式。单独控制设备包括照明灯系统、窗帘系统、风扇系统和空调系统。一键式设置模式包括上班模式、下班模式、休息模式和設备自动模式。ZigBee无线网络负责发送设备信息和传递控制信息到各设备,信息的发送通过手持机的按键发出控制命令与主ZigBee节点连接完成。从节点采集信号以串口形式与MCU通讯,方便地控制照明灯、窗帘、家用电气等设备。系统控制框图如图1所示。
图1 控制系统框图
Fig.1 Diagram of control system
2.系统硬件设计
硬件设计主要包括:手持机STC12C5A60S2单片机模块、CC2530主Zigbee发送模块、CC2530从ZigBee接受模块、底层mcu、步进电机驱动模块、直流电机驱动模块、温度传感器模块、光照度传感器模块、时钟模块等部分。
2.1 控制芯片选型
本系统选用STC12C5A60S2单片机,指令代码完全兼容传统8051,但速度快8-12倍,是一款单时钟、机器周期和低功耗的单片机,满足手持机菜单系统快速查詢要求和底层MCU大量数据运算和指令解析功能。全新的精简指令集系统结构,内部集成MAX810专用复位电路;具有8路10位精度的ADC,满足光照度传感器数模转换要求;具有2路PWM/PCA(可编程计数阵列)可用于实现两个定时器或2个外部中断,可以满足系统程序设计的中断需求;支持UART和IIC,为时钟芯片的数据传输提供方便;用户可利用的程序空间高达60K字节;片上集成了1280字节的RAM;支持ISP(在系统可编程)和IAP(在应用可编程),片上资源丰富,具有较高的性价比[4]。
图2 手持机控制电路图
Fig.2 Control circuit of handheld
2.2 手持机核心控制模块
手持机核心控制模块的设计主要包括MCU单片机的最小系统、与时钟DS1302、储存模块AT24C02和液晶显示器12864的电路设计。其中P0作为液晶显示的数据口;P1口和P2口的部分引脚作为DS1302和液晶的输出口,AT24C02的时钟口和数据口分别接P1.7和P1.2;4个独立按键与P3口高四位连接。ZigBeeCC2530的串口发送端接MCU的接收端,串口的接收端接MCU的发送端,保证通信正常。手持机控制电路原理图如图2所示。
2.3 ZigBeeCC2530模块
本设计使用的是TI公司的CC2530芯片ZigBee模块,该模块的外围电路较少,主要包括外部晶振时钟电路、MCU外围接口电路和射频输入/输出匹配电路。该芯片集成一个8位的微处理器,具有128KBFLASH和8KSRAM,支持最新的ZigBee协议栈ZSTACK。ZigBee工作在868MHz,915MHz和2.4GHz三种频段,2.4GHz频段是全球免费使用的频段,因此,智能家居控制采用ZigBee技术进行自组网是非常适合的[5],从通信层面看,主从节点的功能主要是实现数据的有效交换,模块的电路如图3所示。
图3 ZigBeeCC2530模块电路
Fig.3 Circuit of ZigBeeCC2530
2.4 照明系统控制模块
照明系统电路设计比较简单,能实现对家居灯具粗犷式控制。底层MCU与4路带光电隔离的继电器模块连接,控制家居模型中的吊灯,客厅灯,主卧室灯和壁灯。光耦隔离采用双光耦,具有二极管续流保护电路,工业应用广泛,性能稳定。楼梯灯则采用声控开关控制,有人上楼梯,楼梯灯开;反之,则关。
2.5 窗帘系统控制模块
窗帘系统主要是一个自闭环的控制系统。在自动控制模式下,通过实时检测家居内光照度,经模数转换芯片PCF8591转换,单片机采集信号后,根据已设定的值与采集信号AD转换后值的差控制步进电机转动的方向和步数,带动窗帘开合,保证家居处于光照度舒适的环境[6];在单独控制模式下,手持机的菜单设置窗帘的开度,由手持机发送命令,ZigBee网络传输,底层MCU控制步进电机,步进电机带动导轨,进而控制窗帘的拉合。
图4 窗帘控制模块电路
Fig.4 Circuit of curtain module
2.6 风扇空调系统模块
在本智能家居模型中,考虑空调工作原理复杂,真正控制空调温度不太实际,所以空调系统部分只控制其开关。对于风扇系统,在自动控制模式下,通过检测家居室内实时温度,单片机可控制风扇的开关,而且可通过PWM波控制直流电机的转速,系统以温度偏差E为输入量,风扇出风口为输出量,设计了增量式控制方法,随着温度差的减小,PWN波的占空比也随之减少[7]。在负载一定的情况下,风扇电机的转速和PWN波的占空比成正比,通过改变PWN波的占空比可调节直流电机两端输入的平均电压,以实现转速控制和温度调节。在单独控制模式下,原理与窗帘控制类似,实现手持机一体控制风扇窗帘。
图5 风扇系统控制电路图
Fig.5 control circuit of fan system
图6 主程序流程图
Fig.6 Flow chart of master program
3.系统软件设计
系统软件设计主要使用C51语言编写,在Keil uVision4环境下调试完成。软件程序设计主要包括三部分。手持机菜单系统设计、ZigBee节点的软件配置和底层MCU驱动程序设计。
3.1 手持机程序设计
3.1.1 主程序设计
主程序流程图如图6所示,系统启动后,首先进行STC12C5A60S2和液晶模块初始化,单片机的初始化包括串口、定时器、IO端口等初始化;液晶初始化完毕后,手持机显示一级菜单。然后进入大循环,由于用户需实时知道时间便于控制,手持机上有时钟显示;根据设置控制底层的参数,读取AT24C02的值,实现一键控制家居设备。最后调用键盘扫描,并与ZigBee实时通信。
3.1.2 键盘扫描程序设计
键盘扫描主要设置4个独立按键,分别是返键、确认键、向上和向下。定义每个显示界面为(x,y),如(1,1)代表主菜单的第一行,主菜单显示内容为“广州科创节能科技服务有限公司1控制2娱乐3设置”,向上和向下键只改变y值,表示选择第几行内容。确定键和返回键可改变x值,进入或者返回各自不同画面。X变量范围为:1~2,Y的变量范围:1~9。根据显示不同内容设置变量的取值。扫描程序开始后,调用键盘去抖函数,判断键值,如KEY5按下,判断此时(x,y)值,然后显示相应内容,并处理按键执行的信息和发送对应终端。各显示画面(x,y)有固定的逻辑联系,确定键和返回键有内部紧密联系,保证整个菜单系统5层结构能顺利运行。键盘扫描程序流程图如图7所示。