的应用与生活息息相关。各种无线通信技术的持续不断的发展,使家庭智能系统的智能化和远程控制成为一种现实。对于家庭网络通信而言,传输数据量小,在传输速率上要求不高,网络容量大,家电设备多,所以要求信息实时性好、时延短、成本低。
ZigBee作为一种新兴无线网络通信技术,它的低成本、低功耗和较宽的覆盖范围,使其应用在智能家居领域具有很大的优势。针对目前市场上的智能家居产品结构较为复杂、通用性能不强及使用者真实的体验不佳等问题,本文设计并实现了一种更为完善的智能家居系统。
智能家居系统主要由家庭网关、ZigBee模块、GSM/GPRS模块、Wi-Fi模块、液晶触摸屏、各类传感器以及手机app终端等组成。家庭网关是总系统的核心控制部分,其中ZigBee协调器负责无线采集和控制网络的链接、数据的分析以及指令的下达;ZigBee各模块则是采集环境信息并根据指令对底层设备做控制。系统总体框图如图1所示。
用户可通过远程网络或者手机软件把控制命令发送给家庭网关,由ZigBee协调器对下面负责环境信息采集或控制家电的各个ZigBee模块来控制,家庭网关也能通过GPRS或Wi-Fi向手机app反馈设备运行状况和采集到的数据。当设置在家中的传感器探测到有异常情况时,不仅家中的报警器会开始报警,系统还会通过GSM/GPRS模块向用户的手机发送报警短信。
ZigBee的网络拓扑结构主要有3种:星形、树形、网形。星形网结构简单,成本低,但是通信会受到距离的限制,覆盖范围小;树形网存在路由,所以覆盖范围比星形网要大,但是一旦某个路由发生故障,与其相连的节点就会从网络中断开;网形网结构较复杂,覆盖范围大,可靠性能较高。
居住面积不大的家庭用星形网有较高的性价比,如果居住面积较大则用网形网络会有更好的效果。本智能家居系统选用星形网络建立拓扑结构。
本智能家居系统的设计中,网关主控制器的控制芯片采用了三星公司的S3C6410,它是16/32位RISC微处理器,采用ARM1176JZF-S内核,主频达到667 MHz,能够满足系统对实时性的要求。S3C6410支持最大分辨率为1 024×1 024的TFT 24 bit LCD屏,具有2路IIC、4路UART以及全功能的SPI,它还有两个PCM Audio接口、两个USB接口和SD/MMC接口,可以非常方便地进行外围扩展。S3C6410价格低、性能高且功耗低,完全符合本设计要求。在添加了电源模块、GSM/GPRS模块、触摸屏以及Wi-Fi模块等外围电路后,便组成了家庭网关主控制器。网关内核心模块关系图如图2所示。
射频收发模块采用美国德州仪器公司的CC2530芯片作为控制芯片。CC2530芯片是用于IEEE802.15.4、ZigBee和RF4CE上的一个真正片上系统解决方案,它能够用低成本的材料组建强大的网络节点,能够友好地支持低功耗无线通信。底层控制板与射频收发模块相连,上面有一个8位拨码开关输入、2路数字量输入、2路数字量输出、1路模拟量输入、1路模拟量输出以及1个IIC总线接口。其中,ZigBee协调器模块通过RS232串口与家庭网关相连接。底层控制板的通用性良好,根据8位拨码开关可选择自身的功能,用户能够根据需求对底层的节点进行扩展。
本设计中采用了晨讯科技的GSM/GPRS模块SIM300。SIM300是小体积即插即用模组中完善的GSM/GPRS解决方案,它内嵌强大的TCP/IP协议栈,能够以小尺寸和低功耗实现语音、SMS、数据和传真信息的高速传输。SIM300上电后自动附着在GPRS网络上,并与数据中心建立通信链路,随时收发远端用户设备和控制中心的数据。网关通过RS232串口与SIM300连接,并以AT指令控制其打电话、发短信。
系统软件的设计包含3个部分:网关控制部分、ZigBee网络部分以及手机应用软件。系统软件结构图如图3所示。
网关主控制器采用Linux系统作为开发平台。它的驱动程序非常丰富,支持多任务及各种主流的硬件设备,用户可以根据自己的需求对它进行修改。
网关初始化之后可以接收来自手机端和触摸屏的命令及ZigBee协调器的数据,之后根据命令和对数据分析的结果通过ZigBee协调器向底层设备发送控制指令,并将底层设备的运行状态通过Wi-Fi发送至手机软件。网关的主程序流程图如图4所示。
协调器是整个ZigBee网络的核心,负责整个ZigBee网络的建立、节点之间信息的传递以及和家庭网关交换数据。
协调器在初始化之后开始自动扫描,若有节点申请加入网络,协调器会检查该节点是否入过网,若是没有,协调器会给该节点分配一个16位的网络地址和节点编号并在节点地址表中增加该节点的信息。协调器会收集子节点发送的数据,并按设定好的周期和数据格式将其送至家庭网关;家庭网关向协调器传达命令后,协调器通过分析再将命令转发至相应的节点。协调器的程序流程图如图5所示。
子节点由环境数据采集、安防报警和家电控制3个类型组成。子节点初始化之后向协调器申请入网,申请通过后会被分配一个网络地址和一个独有的编号,接着子节点会开始与协调器进行数据信息交换。环境采集节点通过传感器周期性地采集温湿度、光照度以及空气质量等数据并将这些数据上传至协调器,若是某一数据超过了设定范围,便会发出相应的设备控制命令使之回到设定范围内。安防报警节点则包含玻璃破碎、烟雾、二氧化碳浓度、燃气、红外对射等传感设备,当某一节点触发了报警信息,则该节点会将此信息上传至协调器并启动警报。家电控制节点会将其连接的家电运行状况上传至协调器,并通过网关和协调器的控制命令对家电来控制。
本系统的应用软件便是基于Android系统设计的,开发平台为Eclipse。手机app包含界面美化、系统模式切换、报警短信接收设置、节点信息查看以及家电控制几个部分。软件界面设计尽可能简单、美观且人性化,软件截图如图6所示。
其中,系统模式分为离家/在家、白天/夜晚和正常/睡眠6种。当选择离家模式时,系统会将所有的安防报警节点全部启用,并在触发报警后将报警短信发送至设定好的手机号码;选择在家模式时,系统会部分布防并通过警报器来报警;白天/夜晚模式通过光照度来自动切换,系统也会根据光照度来对窗帘进行控制;在睡眠模式,家中的红外感应灯开始启用,并且设定为弱光避免刺激眼睛。
通过Wi-Fi与家庭网关进行连接,用户不仅可以根据设定在手机软件上分房间查看各节点设备的工作状况和采集到的数据,而且还能直接通过手机软件对接入系统的家电进行控制。
将设计好的系统搭建在一个小屋当中,硬件全部开启之后打开手机软件连接Wi-Fi并登入系统。子节点采集到的环境数据在触摸屏和手机上都能查看到,并且通过触摸屏和手机下达的指令能够很好地执行;模式切换时节点工作无异状,安防报警正常工作。经过24小时测试,该系统稳定性良好,各项性能也都符合设计的要求。实际搭建好的系统如图7所示。
本文设计了一种基于ZigBee技术的智能家居系统,详细介绍了系统的整体构架,给出了硬件设备和软件的实现方法。相对于传统的智能家居系统而言,本设计结构相对比较简单、成本较低、便于扩展且避免了复杂的布线问题;同时因智能手机软件的加入,使整个系统的操作变得更加便利,用户体验度提高。基于ZigBee底层控制板的通用性,用户能根据需求改变节点的功能,更加人性化。总体来说,本系统具有良好的实用性、稳定性和安全性,很适合在家庭、公司等场合使用。