上海电机学院机械学院 王顺利 何 力 王景夏 李 钊 辛绍杰
智能化家居控制系统使人们可以通过手机或座机在任何时间、任意地点对家中的诸如空调、热水器、电饭煲、灯光、音响、DVD录像机等电器进行远程控制;也可以在下班途中,预先将家中的空调打开、让热水器提前烧好热水、电饭煲煮好香喷喷的米饭等等。而这一切的实现仅仅是打一个电话或发一条短信。此外,该系统还具有多途径报警、远程监控等功能。若出现某种险情,可以在第一时间获得通知使你提早采取措施。舒适、时尚的家居生活是社会进步的标志,智能家居控制系统能够在不改变家中任何家电的情况下,对家里的电器、灯光、家庭环境等进行方便地控制,使人们尽享高科技所带来的简便、时尚的现代生活。
智能家居控制系统的整体结构如图1所示,本系统包括PC端的智能家居上位机控制系统,ZigBee主控制系统和各个功能终端模块,GSM报警模块。上位机程序使用LABVIEW编写,ZigBee控制器采用ZigBee CC2530无线开发模块实现,GSM采用SIM900gsm模块。程序设计包括基于LABVIEW的上位机程序和下位机程序设计。用户通过上位机中的虚拟按键控制家里的电灯开关、窗帘电机等。老人安全如厕检测终端若检测到老人与厕时间超过设定值会通过GSM模块向其子女的手机发送警报信号。
图1 智能家居整体结构图
图2 上位机程序设计流程图
上位机软件编写采用LABVIEW编写,程序有灯控制模块、窗帘电机控制模块、老人如厕红外源安全检测模块。
程序的编写流程如图2所示。先对程序变量进行初始化,配置串口,设置波特率、数据位等参数。在主循环里面进行串口数据的接收,对接收到的数据进行数据处理函数。在另外一个循环里面检测按键事件,然后把按下按键的键值发送给ZigBee主控制器。
智能家居系统包含串口程序、按键处理程序模块和如厕信息处理模块。串口程序包含最基础的串口配置、串口读写与串口关闭程序。配置串口波特率为9600,数据位为8。如图3所示。
图3 串口读写程序
在按键处理程序中,设置按键数值改变为事件触发函数的时间,在每个相应的按键触发时间中,通过串口发送命令数据。如图4所示。
图4 按键事件处理程序
图5 老人如厕数据处理程序
在老人如厕数据处理程序中,下位机检测到老人进入厕所后,把老人进入厕所数据发送给上位机,上位机开始计时,如果在设定的时间内,还没接收到老人离开厕所信号,上位机则发出警报,同时把数据发送给下位机中的主控制器。主控制器通过连接的GSM模块通知老人儿女。上位机程序如图5和图6所示。在本程序中,上位机接收到老人进入厕所数据,在人机界面中显示老人已经进入厕所,并且把老人如厕标志位设置为TURE,在主循环里面开始计时,如果这时接收到老人离开标志位,将老人标志位设置为FLASE,清除计时。
图6 老人如厕计时程序
程序设计界面如图7所示。界面左面是电灯控制虚拟按键,中间为电动窗帘控制按键,右面为老人如厕计时,一旦时间超过设置最大限定值,系统就会发出警报短信。
图7 上位机截图
控制主机和终端采用Zigbee CC2530无线开发模块,该模块通讯距离可以从标准的75米到几百米、几公里,可扩展性强,完全可以满足系统的要求。编译环境为IAR。C编译器IAR Embedded Workbench是其最著名的产品,支持众多知名半导体公司的微处理器。
下位机程序主要包括Zigbee无线信号发送与接收程序,串口通讯函数。在Zigbee通信函数采用:basicRfSendPacket(RECEIVE3_ADDR,pTxData,APP_PAYLOAD_LENGTH);子程序,第一个参数是网内地址,第二个是发送的数据,第三个是数据的长度。在Zigbee接收端,自动匹配当前接收的地址是否向本模块发送,如果不是就不接收本数据,如果接收地址是当前模块的地址,使用:basicRfReceive(pRxData,APP_PAYLOAD_LENGTH,NULL),函数接收,数据放在pRxData数组里面。模块之间的相互通信通过这两个函数进行。然后各模块根据自己的任务,发送和接收相关的数据。
主机与上位机通讯是采用串口通信,通讯波特率为9600,数据位8BIT,无奇偶校验位。主机程序接收到上位机发过来的命令经过分析后,分别把指令发送到每个模块里面去。
按照设计方案完成了样机制作,样机实验证明:该控制系统利用上位机的人机交互界面,由控制主机分别控制每个zigbee终端,很好地实现了电灯的开关、窗帘的升降、在家老人安全如厕的检测等功能。该产品具有成本低廉、性价比高、体积小,功能强,功耗低等特点。同时,它的可扩展性好,最高可以扩展256个终端。另外,主控制器与GSM模块连接方便,较好地实现手机控制家用电器的功能。