樊星男
(太原学院,山西 太原030032)
智能家居是以住宅为平台,利用综合布线技术、网络通信技术、安全防范技术、自动控制技术、音视频技术将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务的管理系统,提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。智能家居的概念起源于物联网技术,其实质就是利用互联网技术将住宅内各个设备相连,达到综合控制的目的。
智能家居系统一般由设备终端、设备控制器、数据服务器和控制终端四部分组成,其组成框图如图1。
图1 智能家居系统框图
在智能家居系统中,广义的设备终端包括房屋中的所有设备,如门窗、电源、插座、家用电器等,但是就目前智能家居的发展来看,受到设计和建筑成本的限制,还很难将房屋中的所有设备都纳入智能家居的终端行列;所以目前我们所指的设备终端一般指一些家用电器设备,如净水机、空调等。设备终端通过ZigBee协议 (无线局域网通信协议)与智能网关进行通信。
智能网关是智能家居系统的核心,设备终端的运行状态通过Zigbee网络将信息上报给智能网关,智能网关将这些信息整理后,通过TCP/IP网络发送到远端的数据服务器;同时智能网关还要接受数据服务器发送来的控制指令,然后通过Zigbee网络将指令下发到设备终端[1-3]。
数据服务器是智能家居系统的数据处理中心,其核心是一个数据库管理系统。首先数据服务器接收智能网关发送来的设备状态,并保存在数据库系统中,供用户程序读取;同时数据服务器还要接收用户程序的控制指令,并下发到智能网关。
用户程序是智能家居系统的人机交互终端,一般具有良好的人机交互界面,包括移动用户程序和固定用户程序两种,移动用户程序指运行于手机、平板电脑等移动设备上的应用程序,而固定用户程序指运行于电脑设备上的应用程序。用户可以通过用户程序查看设备状态,并根据自身需要向设备终端发出控制指令。
智能家居系统是一个广范围的系统,因此本文以家居智能火灾报警系统的设计为例讲述智能家居系统的设计和开发。
对于普通的火灾报警器,只需要根据传感器的检测结果通过发出光和声音的方式发出报警信息;而智能火灾报警器除了发出报警信息,同时还需要将报警信息上传到智能网关,提醒远端的用户。
目前在智能家居领域使用最为广泛的通信方式是使用ZigBee协议进行通信。ZigBee是一种无线通讯协议,它具有低功耗、高容错的特点,更重要的是ZigBee协议网络支持多节点通信,最大可达65000个节点。ZigBee协议是一套复杂的协议栈,为了方便对ZigBee协议的使用,许多芯片生产厂商推出了自己的ZigBee芯片,这里我们使用的是德州仪器生产的CC2530芯片。CC2530结合了领先的RF收发器的优良性能,并集成有业界标准的增强型8051CPU。
CC2530芯片和传感器就构成了智能火灾报警。我们选择集成温度传感器AD590和气体传感器TGS202两传感器[4-7]。智能火灾报警器设备终端设计框图如图2。
图2 火灾报警系统设备终端组成框图
当温度大于100摄氏度且烟雾浓度大于0.06%时才发出火灾报警。如果两个条件只有一个达到则只报异常,如果两个条件都没有达到则正常,不上报任何信息。为了保证设备的正常工作,报警器还需要定时的向智能网关上报心跳信息。智能火灾报警器的程序流程如图3。
图3 火灾报警器程序流程图
智能网关在整个智能系统中主要完成信息的收发。智能网关需要能够接收设备终端发来的Zigbee数据,然后将数据发送到远端数据服务器;同时还要能接收数据服务器发送来的指令,然后下发到各个设备终端。智能网关与设备终端采用Zigbee无线通讯,与数据服务器之间一般采用IP网络进行通信。IP网络是基于TCP/IP协议的数据传输网络,由于CC2530芯片没有集成TCP/IP协议栈,所以这就为智能网关与数据服务器的通信造成了困难。为此我们使用了芯片W5200,W5200芯片是一种采用全硬件TCP/IP协议栈的嵌入式以太网控制器,它能使嵌入式系统通过SPI接口轻松地连接到网络,特别适合那些使用单片机来实现互联网功能的客户。智能网关的设计框图如图4,智能网关程序流程如图5。
图4 智能网关设计框图
图5 智能网关程序流程图
在智能网关的软件程序中,我们设计了以太网任务队列和Zigbee任务队列,将智能网关信息的接收和发送分别处理,这样可以实现软件的模块化设计,为软件的维护提供方便。
数据服务器是智能家居的数据处理中心,它既要完成与智能网关的通信,同时还要完成数据的保存。数据的保存可以通过在服务器上建立数据库来实现,但是由于智能网关无法直接与数据库进行通信,所以必须通过一个中介程序来实现。为此我们将数据服务器按照功能分为数据服务程序和数据库两部分。整个数据服务器的组成如图6。
图6 数据服务器组成图
数据服务程序要能够及时的将智能网关的数据保存到数据库中,同时还必须及时地将用户对远端智能设备的操作下发到智能网关。数据服务程序可以使用Visual Basic设计开发。Visual Basic中的Socket控件可以方便地实现TCP/IP通信,其程序流程如图7。
图7 数据服务程序流程图
数据库使用SQL Server 2000进行设计。对于智能火灾报警器,我们设计了两个表,分别为报警信息表和指令信息表,具体内容见表1和表2。
表1:报警信息表
表2:指令信息表
在表1中,报警编码与报警内容所要传达的内容是一致的,所不同的是报警编码主要用于信息在网络上传输,这样可以减少数据量;而报警内容主要用于数据库查询时的文字显示。表2中的指令编码与指令信息也是这个原因。
用户程序是最终呈现在用户面前的系统,需要能够实现用户对整个智能家居系统的操控,用户对整个系统的查询和操作都需要通过用户程序完成。
用户程序包括移动端用户程序和固定端用户程序。移动端用户程序指运行在手机、平板电脑上的软件程序。一般来说,开发这样的软件程序需要设计者掌握Android操作系统或IOS操作系统软件的开发技能[8-9];而固定端用户程序指运行在普通电脑上的软件程序,设计者只要掌握一般的Windows软件设计技能即可。本文使用Visual Basic设计了火灾报警系统的用户程序,Visual Basic中的Socket控件可以方便地实现以太网通信,ADODB控件可以方便实现数据库通信。用户程序查询和操作界面分别见图8和图9。
图8 智能火灾报警器用户查询界面
图9 智能火灾报警器用户指令界面
本文以智能火灾报警器的设计与开发为例,讲述了完整智能家居系统的组成和设计开发,为智能家居系统提供了一种实用可行的解决方案。通过实际测试表明,该方案具有良好的实用价值。