王 盟
(延安大学 物理学与电子信息学院,陕西 延安 716000)
随着无线通信技术和传感器技术的飞速发展,智能家居系统取得长足进步。智能家居有效改善了人们的居住环境,使得人们不再仅局限于对居住位置和住宅面积的要求,还延伸至对居住环境中的智能化和自动化方面的需求[1]。智能家居的应用可以实现对家中插排、开关及家用电器等终端设备的简单控制,还可以通过摄像头、智能传感器等设备对家居环境中的环境数据进行监控,不断满足人们日益提高的居住需求。目前,国内外智能家居设备终端功能均较为单一且类似,更多偏向于对家用电器的控制方面,而监测家居中环境实时变化并作出调整的智能家居终端普遍缺失[2]。国内的智能家居终端还存在操作性能不稳定、网络连接不稳定等功能性问题。这种问题的存在严重阻碍智能家居行业的发展。
基于ZigBee通信技术的智能家居系统是一项复杂的、系统性的工程,着力于构建一套能实现室内家居环境实时检测,并通过无线通信技术完成智能网络控制的家居管理方案。其功能需求要求系统可以实时采集到室内各房间内的图像信息和环境参数,用户可以通过移动设备终端实时了解到家里的状况,系统可以根据环境中参数变化自主做出控制。在系统的环境监测部分,要求设备可以实时监测家中温度、湿度等环境信息的变化,并能将环境状态信息及时反馈给用户,同时,该系统还具备安防功能,需要将火灾、燃气泄漏及水管泄漏等信息及时反馈给用户,设备可以感知室外雨雪或晴天等天气状态,并在自动模式下实现对窗户的控制[3]。
本文设计的基于ZigBee通信技术的智能家居系统,既要实现家居中不同用电终端之间的控制,还要实现设备与用户之间的远程互动。因此,无线通信技术在智能家居系统中就起到举足轻重的作用。考虑到以上功能的实现,本设计中将以ZigBee、WiFi及GSM无线通信技术为基础构件完成智能控制、安全防护以及远程监控的智能家居系统,如图1所示。其中,ZigBee技术完成家居内无线通信网络构件,GSM提供安防报警功能。各用电终端设备的信息交流中心环节由ZigBee协调器担任,其还需要完成室内ZigBee内网逐渐以串口的形式实现协调器与PC端的通信,完成对内网中各监控节点数据和指令的传输。由ZigBee通讯模块、传感器模块以及控制单元共同组成ZigBee现场采集/执行器部分,ZigBee通讯模块保证了在系统内网中可以自由传输控制质量和数据参数,传感器模块负责采集室内温度、湿度、CO浓度、烟雾浓度及火灾情况等信息,控制单位作为核心单元负责存在用户预先设定的相关家居参数。系统中的PC机为智能家居系统的网关,实现内网与外网之间的通信与协作,网关、ZigBee协调器以及GSM通讯模块之间采用DART通信方式,网关与视频监控模块之间采取WIFI通信方式。此外,PC机还可以将家中各环境数据实时显示及存储起来,并将部分家庭环境信息与警报信息发送到用户手机终端,以及根据控制要求通过ZigBee协调器作为媒介将控制命令传送到各个节点。
图1 智能家居系统硬件结构框图
本文设计的智能家居系统的无线收发器选择CC253x系列设备,其满足ZigBee的无线通信协议,具备SER、DATA及SRAM的存储访问总线,并在内部集成了扩展中断单元以及调试接口。此外,CC253x系列设备通过增设电源管理功能来实现在不同的供电模式下都可以保证电池具有长效的电池寿命。天线作为无线收发模块中的核心部分,本文选择在无线通信距离、射频通路及模块功耗等方面都具有良好表现的SMA接口的杆状天线。电源的输入电压为5V,而控制器要求的工作电压为3.3V,因此,在ZigBee协调器硬件电路设计过程时,需要设计稳压及降压电路。MCU工作过程中需要以晶振为工作基准,CC253x系列设备自带一组32MHz晶振和16MHz的RC振荡器,在对两个晶振进行选择时,考虑到32MHz晶振需要更长的时间启动,选择16MHz的RC振荡器。在ZigBee通信技术的智能家居系统设计过程中,为了防止由于输入电压出现异常而发生死机问题,设计手动复位方式来保证系统的正常工作,在CC2530的RESET端接按键完成复位功能,在一端上接10uF电解电容至3.3V电压,在另一端接10uF电解电容至数字地。ZigBee协调器通过异步串行的通信方式与PC机实现通信,但由于CC2530采用TTL电平协议,而PC机的串行端口为RS232电平协议,在硬件电路中采取CH340芯片进行电平转换[4]。
2.2.1 智能家居系统的温/湿度采集模块
本设计采用DHT11数字传感器作为温/湿度采集模块,以8位的单片机进行数据处理,通过NTV测温元件与电阻式感湿器相连来实现对室内温/湿度的测取,其内部集成自校准模块来提高系统工作的准确性,并将温/湿度信息以数字信号行驶输出。DHT11测温/湿度数字传感器的数据线与CC2530的P0.6口相连,其ZigBee通信部分与ZigBee协调器的通信部分硬件电路设计相同。
2.2.2 智能家居系统的灯光控制模块
本系统需要根据用户指令或室内明暗程度来实现对灯光的智能控制,对于该部分功能的实现是基于CC2530和51单片机平台进行联合开发设计,由80C51单片机实现对灯光用电终端的控制,CC2530实现在ZigBee网络中串行通信,为了更好地加强对室内灯光的控制效果,可以采用LED等代替普通的白炽灯,更加智能的控制灯光明暗,室内的各灯光设备接于单片机P0.1-P0.2口。由于灯光控制单元的输入电压为5V,因此,不需额外设计电压转换单元,CC2530硬件电路与ZigBee协调器的通信部分硬件电路设计相同。
2.2.3 智能家居系统的温/湿度控制模块
本系统需要根据室内温/湿度变化来操控空调系统实现对环境的控制,智能家居系统的温/湿度控制模块主要由温度传感器部分、ZigBee无线收发模块及主控单元组成,温度传感器模块采用DS18B20芯片,具有体积小、精度高及抗干扰能力强的特点,通过以DS18B20芯片设计参考问题模块从而判断何时开启/关闭空调机构。由于DS18B20芯片在通信过程中采用一线制的通信模式,因此,在通信时需要注意DS18B20芯片的时序要求。单片机P1.3口与空调控制单元相连,单片机P1.3口作为控制开断的检测端,单片机P3.7口为DS18B20的数据传输口。主控单元、网络转换单元、供电模块的硬件电路设计与灯光控制模块的硬件电路一致。
2.2.4 智能家居系统的窗户控制模块
本系统需要能检测室外的天气状态并能控制窗户的开关。智能家居系统的窗户控制模块由雨水状态信息采集模块、主控单元、ZigBee无线收发单元、窗户开关执行单元,其中雨水状态信息采集模块由8位A/D转换芯片PCF8591T完成工作,PCF8591T由单片机P2.1进行数据连接并通过I2C通信协议与主控单元进行数据传输,单片机P0.4口进行窗户状态的检测,单片机P1.0口作为窗户开关执行单元的端口。雨水状态信息采集模块、主控单元、ZigBee无线收发单元、窗户开关执行单元与灯光控制模块的硬件电路一致。
2.2.5 智能家居系统的安防控制模块
本系统需要能自主检测室内的火灾信号,并能在发生火灾时完成显示、传递火灾信息以及火灾报警的功能。本文在设计中采用具有独立火灾检测和报警功能的智能控制器,控制器的设计基于TMS320F28335芯片,其可以检测到室内的温度、湿度、CO浓度、烟雾浓度及火灾强度等信息,智能家居系统的安防控制模块的ZigBee无线网络数据收发部分的硬件电路与ZigBee协调器的一致。
本系统在软件设计部分需要完成网关软件设计、ZigBee内网节点软件设计以及视频监视模块软件设计三部分的工作,如图2所示。其中,网关软件设计需要实现的功能包括人机交互界面搭建、信息收发功能实现以及视频显示窗口。ZigBee内网节点软件设计需要完成ZigBee协调器软件设计、现场采集/执行器内各传感器模块的软件设计。
图2 智能家居系统软件结构框图
智能家居系统中的各个通信方需要按照既定的通信标准实现在数据信息网络内部的发送和接收,在网络内部将特定的通信标准定义为协议。协议栈的设计是为了在硬件设备平台上实现无线数据收发的利用特定的、统一的接口设定。ZigBee协议栈主要包括物理层(PHY)、介质访问控制子层(MAC)、网络层(NWK)、应用层(APL)及安全服务提供层(SSP)5部分。另外,这5个层面接口之间通过原语进行连接,并且由下层向上层提供数据和管理服务,由上层向下层提供数据服务,而管理服务接口需要提供访问内部参数、配置以及数据管理机制的功能。ZigBee协调器作为ZigBee内网中核心关键和控制起点,担任着管理ZigBee节点设备和PC网关内部数据信息和控制指令的传输。ZigBee协调器采取点播的数据传输形式实现获取温/湿度采集终端的信息数据,而采取广播的形式与其它的采集/控制节点进行数据交换,以串口通信协议的形式与PC机进行数据交换。ZigBee协调器工作流程为:给ZigBee协调器上电后,进行系统初始化,再对各信息通道进行扫描,创建信息通道,组建ZigBee内部网络。当ZigBee内部网络组建成功之后就对各层进行事件扫描,当ZigBee内部网络组建失败时,则继续组建网络。当ZigBee协调器检测到应用层有事件时,则立刻对事件进行处理,若没有事件需要处理就反复对各层事件进行扫描。
3.2.1 智能家居系统的温/湿度采集节点的工作流程
智能家居系统的温/湿度采集节点负责采集室内的温度和湿度信息,在对其模块进行供电之后,搜索ZigBee内部网络并提出入网请求,当该模块入网成功之后,开始查询应用层中是否存在事件,若存在事件则按照既定的规则执行相关操作,需要将传感器的驱动部分写入到ZigBee的协议栈应用层中,以方便及时获取环境中的温度、湿度等数据信息。温/湿度采集节点会将数据经过转换之后,通过ASCII码的形式以点播的数据传输方式传递给ZigBee协调器,并可以在网关监测界面中显示出来。
3.2.2 智能家居系统的灯光控制节点的工作流程
智能家居系统的灯光控制节点功能是要实现远程控制灯光的开关,在给CC2530模块上电之后,搜索ZigBee内部网络并提出入网请求,成功入网检查应用层中是否存在事件,若存在事件则将指令发送给单片机。单片机接收到上级无线网络发送的指令之后,先检查数据包是否完整,若不完整则删除该数据包,等待接收下一时刻新数据包;若数据包接收完整,则先检查数据包是否为该节点的数据;若数据为真,则进行相应的操作,若数据为假则抛弃该数据。
3.2.3 智能家居系统的温/湿度控制节点的工作流程
智能家居系统的温/湿度控制节点主要是根据室内的环境信息来实现对空调系统的远程控制,在对该模块上电之后,搜索ZigBee内部网络并提出入网请求,成功入网检查应用层中是否存在事件,若存在事件则将指令传送给单片机。当单片机接收到上级无线网络发送的指令之后,先检查数据包是否完整,若不完整则删除该数据包,等待接收下一时刻新数据包,若数据包接收完整。若该数据包为完整、正确的数据帧,则对该数据帧进行分解。判断若当前模块处于手动控制模式时,则用户可以直接控制控制温/湿度执行器的开关,若判断当前模块处于手动模式时,则根据当前环境中的温/湿度状态与用户设定的温/湿度阈值进行比对,从而自动的控制执行器进行温控制。
3.2.4 智能家居系统的窗户控制节点的工作流程
智能家居系统的窗户控制节点需要检测室外天气状态并能根据要求调整窗户进行开关。在给窗户控制模块上电之后,其搜索ZigBee内部网络并提出入网请求,成功入网检查应用层中是否存在事件,若有操作需求则将指令数据传输给单片机。当该模块处于手动模式时,则用户可以根据需求之间打开/关闭窗户,当该模块处于自动模式时,当检查到室外天气为下雨且窗户处于开启状态时就会控制执行器自动关闭窗户,同时实时获取雨水的状态,并将雨水状态和窗户状态传送到网关监控界面。智能家居系统的窗户控制节点软件流程图与温/湿度控制节点软件流程图相同。
本系统采用QT Creator来进行网关软件的IDE设计,并利用QT独特的跨平台C++图形用户界面应用程序开发框架进行设计。根据系统对室内参数的监控要求不同,可以将监控软件设计分为两级窗口,其中,一级窗口用于观测室内主要环境参数并对各模块执行器进行控制,二级窗口是对用户所关心的特定环境参数进行观测并对执行器进行控制。当需要运行监控视屏模块时,首先启动程序画面,并对各对象及各变量进行初始化,建立各坚实控制子界面,分别创建线程1和线程2,跳接至账号和密码登录界面,若用户输入正确的账号密码,则显示一级监视窗口。若账号和密码输入错误,则提示用户重新输入。在监控视屏模块设计线程1和线程2,其中线程1负责监视ZigBee内网中的数据信息和指令信息,当其串口处收到数据并触发了相关事件后,就在数据缓冲区内读取一组数据包,并且若该数据包是正确完整的就对其进行解析和执行,从而改变界面中各个控件的状态。若该数据包不正确或不完整,则放弃该数据。线程1负责监视GSM网络中的数据信息和指令信息,当其串口处收到数据并触发了相关事件后,就在数据缓冲区内读取一组数据包,并检查该数据包是否符合完整的数据包格式,若符合条件者发送至下一步配置指令或读取相关的控制质量,若数据不满足执行要求,则丢弃该数据包并定时的重新读取新的数据包。
无线通信技术和传感器技术的不断成熟,为智能家居设备的发展和完善提供契机。本文设计的基于ZigBee通信技术的智能家居系统是考虑到ZigBee技术的强穿透能力和高抗干扰能力,其不用另配置通信电缆,只是通过构建Mesh-network网状网络使得各家居设备都得到信号的覆盖,保证了对温/湿度控制、灯光控制以及门窗开关控制。本文设计的基于ZigBee通信技术的智能家居系统突破了传统家居设备控制的单一化操作模式,实现全系统的一体化操作,有效提升了用户的居住体验。