关于无线传感器网络的智能家居安防系统
作者:RFID世界网 收编
来源:职称论文网
日期:2010-09-27 09:04:10
摘要:无线传感器网络是因特网从虚拟世界到物理世界的延伸。本文把无线传感网络技术应用于智能家居安防领域,为下一步的深入研究奠定了基础。
引言
集成了传感器技术、微机电制造系统(MEMS)技术、无线通信技术和分布式信息处理技术的无线传感器网络是因特网从虚拟世界到物理世界的延伸。本文之所以把无线传感网络这种先进的技术应用于智能家居安防领域,其一是伴随着高科技产品在现代家庭中的应用,相应地也带来了一系列不安全因素,如煤气管道、热水器以及其他许多大容量的家用电器的使用,都明显地增加了发生火灾的可能性以及煤气中毒、爆炸的危险等,且社会上还有不法分子在活动,行凶、盗窃等违法犯罪活动时有发生,给社会带来不安定因素,所以家庭安防系统的研究具有迫切意义;其二是广阔的市场前景,因为安全是每一个家庭和工业领域必需的保障,所以该系统的应用范围是相当广泛的;其三是其典型性和可移植性,如果在智能家居安防中实现了,那么该技术可以移植到其他很多系统之中,比如说智能大楼,智能医疗系统,而只需做部分应用方面的修改。
1 基于 Zigbee 技术的无线传感器网络
Zigbee 网络首先由连接无线网关的协调器(Coordinator)发动并建立,其他节点加入已经建立的网络。每个节点加入网络时,其父节点都会按约定规则给它分配一个网络层地址供通信使用。功能比较强且供电充足的节点充当路由节点(Route Node,RN)为全功能设备(FullFunction Device,FFD),它能接收其他节点作为其子节点,同时根据自身状况决定是否给其他节点查找路由和转发数据;功能比较弱的节点为简化功能节点(RFD) ,不能成为其他节点的父节点,通信时只能请父节点帮忙转发数据[2]。有路由能力的路由节点(RN+)采用AODVjr 路由算法,而没有路由能力的路由节点(RN-)和RFD 遵循Cluster-Tree 路由算法[3]。Zigbee 标准的协议栈如所示。
2 智能家居安防系统的设计方案
2.1 系统的总体设计方案
基于无线传感器网络的智能家居网络主要是由若干无线传感器节点、无线执行机构、家居无线控制中心组成[4]。其中, 节点分布于客厅、卧室、洗手间、厨房等需要监测的区域内,执行数据采集、处理和通信工作。无线执行机构负责启动声光报警、自动继电器开关等控制功能。家居无线控制中心处理、转发来自无线传感器节点中的信息, 并且为互联网的连接提供接口进行远程控制。由于不同网络结构会对网络的速度、特点和实现有较大影响,因此结合智能家庭网络系统的特点,如家庭内部无线网络连接距离较短, 家用电器位置容易改变,家庭电器等的数也容易变化,房间之间仍有一段不小的距离,分布的节点并不是太多,并且数据的传输量也不是太大, 网络中的信息传送主要发生在WSN的基站和其他室内终端上的传感器节点之间。基于家庭网络的这些特点以及树的特征和优势,本文以WSN的基站节点(也称为协调器Coordinator)为中心节点组建一个串状树形家庭网络。
本文主要实现的功能包括智能门禁系统、智能门窗防盗、煤气监测系统、火灾监测系统、居室内的人体红外检测、远程监控、数据库系统。节点布置和网络系统的总体设计方案如图2所示,图中的ZD代表的是Zigbee终端设备,可以是FFD也可以是RFD;ZR代表的是Zigbee路由器;ZC代表的是Zigbee协调器。
2.2 智能家居安防系统的各功能块的描述
(1)智能门禁系统:
当人走到家居门口时,红外热释电传感器感应到人体接近,促使门禁Zigbee设备主动发射获取人体身份命令信号。当人体携带着身份识别标签(也是一种Zigbee 设备)时,标签会发送加密身份信号给门禁Zigbee 设备,门禁系统经过分析判断后决定是否开启数字门锁,用户再也不用自己掏钥匙开门了。如果是一个未知身份的人体,则门禁系统会搜索家居内是否有人,如果有人则通知家居内的用户有客人到来,如果家居内没人则会远程通知智能家居安防用户有客人在家门口,通过门禁系统的摄像头采集客人的人脸图像并通过Internet发送到用户PC 上。当然远程用户也可以随时给家庭网关协调器发送命令来采集家居门口人脸的图像。当用户确认了来人的身份以后可以远程控制门禁系统开启数字门锁,让客人进屋,以免让客人在屋外等待。
(2)智能门窗防盗
所有的家居窗户上都安装有红外幕帘传感器,用来防止未知人员从窗户侵入家居。该系统是人性化的运行方式,分为白天和黑夜两种运行方式,这由协调器的实时时钟来进行控制。白天时,当家居内有人体走进一个房间时,该房间的红外幕帘即告失效,防止不必要的误报警,而当人体一旦离开房间则该房间的红外幕帘马上开启。而在夜晚的时候,用户需要设定一个时间点,当到达设定的时间点的时候,红外幕帘会强制开启,并保持到天亮。
(3)煤气泄漏监测
在厨房安装多个煤气检测传感器节点,可靠地报告厨房煤气的含量是否超标,如果超标则立即报警和远程报警通知,同时开启所有的排气扇,保证家居内人员的人身安全。
(4)火灾预警系统
在所有的房间都安装上了火灾光电烟雾探测器,对即将发生的火灾事件预警通知,合理布置火灾探测器节点,防止盲点的出现,遏制火灾事件的发生。
(5)居室内的人员定位
在居室内布置有红外热释电传感器节点,用以监测家居内是否有人、位于哪一个屋,如果是佩戴有身份标签的人员则还可知其身份。这些都可以在远程监控界面中观察到。这还可以用来监督小孩子有没有在学习,是不是在客厅看电视等等,也可以监测老人们是不是在家里面等等。
(6)远程监控
以上所有的安全参数都可以在远程客户端软件中观察到,并可以实现部分电器和数字门锁控制,全图形化监视和控制界面,方便观察和控制。
(7)数据库系统
所有的控制命令、图像采集数据、报警参数时间等数据都通过上位机软件存储于SQLServer2000数据库中。
3 系统的硬件设计
在刚做本系统设计的时候是在CROSSBOW公司的MICAZ节点平台上做了相关的基础框架实验。顺利地通过TinyOS操作系统和自组织方式组成网状网络,并且采集数据,通过多跳路由方式把数据转发回基站。虽然CROSSBOW的产品拥有诸多优点,但是因为该产品硬件电路复杂,并且组网方面也存在一些问题,且价格昂贵,不适合于大范围地布置节点。所以本文最后选择在TI公司的CC2430片上系统上做系统设计。CC2430是一颗真正的片上系统(SoC) CMOS解决方案。这种解决方案能够提高性能并满足以ZigBee为基础的2.4GHz ISM波段应用以及对低成本、低功耗的要求[5,6]。它结合一个高性能2.4GHz DSSS(直接序列扩频)射频收发器核心和一颗工业级小巧高效的8051控制器,资源非常丰富。
对于无线传感器节点来说最敏感的就是射频电路,很容易受其它信号的干扰,所以为了降低节点电路本身对射频RF的干扰,本文设计节点硬件的时候把射频部分和传感器信号采集处理部分分为两个模块进行设计,然后通过排针排母把两个模块进行连接。
3.1 系统的硬件框图设计
图为系统的整体硬件设计框图,本系统是以CC2430 节点为核心组建Zigbee 网络。不同节点上分布有各种传感器,采集各种安防参数以进行声光报警和执行机构的控制。在执行机构旁也分布有节点用于进行远程的电器控制,特别是在数字门锁旁安装有节点用于智能门禁系统的组成。
3.2 CC2430 射频模块的设计
CC2430模块的硬件设计方面选择了TI公司的方案,主要是射频部分的设计,包括电源滤波、匹配阻抗、非平衡变压器的设计、PCB微波传输带线,整个结构满足RF输入/输出阻抗(50Ω)的要求,天线采用的是3dB的鞭状SMA天线。
3.3 节点传感器板和通用底板的设计
节点底板用于引出模块I/O 引脚,作为传感器电路板和电源供应模块以及RS232 通讯电路,在该板上可以引出I/O 线控制外部执行机构和采集传感器数据,并且还可扩展LCD 液晶模块,方便观察和调试。
4 软件设计
软件设计分为Zigbee节点的软件设计和PC上位机的软件设计。节点的软件设计是为了组建Zigbee树形网络、采集传感器数据并转发到协调器、实现声光报警和对部分电器的控制以及与PC上位机之间的通信。PC上位机软件设计主要是实现与Zigbee传感器网络的交互和设计全图形化的监视和操作界面以及服务器和客户端的交互程序(本系统选择的远程控制模式采用的是C/S模式)。
4.1 Zigbee 节点的软件设计
本系统采用的Zigbee 协议栈是TI 公司的2006 版Zigbee 协议栈, 版本是Z-Stack-1.4.3-1.2.1。
TI 完成了对Z-Stack 的兼容,该款市场领先的ZigBee 解决方案针对CC2430 片上系统(SoC)进行了相关兼容性认证。Z-Stack 达到了参考平台(Golden Unit)水平,作为率先实施最新版ZigBee 标准并通过两家ZigBee 认证检试实验室之一独立测试的平台,该产品获得这一殊荣当之无愧[7]。参考平台的建立为未来ZigBee Compliant Platform (ZCP)的认证提供了参考点,并且最重要的就是该款协议栈现今对于研究和实验室免费的,这使得该协议栈的受欢迎度大大提高。Zigbee 节点的软件开发环境采用的是IAR EmbeddedWorkbench 7.30B,这也是Z-Stack 协议栈推荐使用的软件开发环境。
Z-Stack 已经为用户完成了对Zigbee 各层的开发包括物理层、MAC 层、网络层、应用层框架,用户需要调用Z-Stack 提供的丰富接口即可完成对工程的应用开发,大大降低了开发的周期。因为对Z-Stack 应用开发的大体思路都是相似的,所以本文着重以开发智能门禁系统为例来谈谈Z-Stack 的应用程序的设计。
前文已经提到智能门禁系统所要实现的功能,要在Z-stack 程序中实现这些功能,必然要遵循Zigbee 协议栈的规则。下面图5 以智能门禁协调器程序的流程来体现Z-Stack 的应用开发。
由此可见,在Z-Stack 开发一个系统主要是在应用层上面编写事件处理函数和按键处理函数。但必要的硬件相关程序是编写在HAL 硬件层的,比如说人体热释电传感器和音乐报警器的初始化和中断触发、报警驱动程序等,由硬件触发中断后发送事件消息到应用层,操作系统循环检测到应用层有事件需要处理则执行应用层事件处理函数App_ProcessEvent(),相当于事件驱动机制。下位机与上位机通信的接口是RS232 串口,注意串口程序开发的时候,Z-Stack 是默认允许了硬件流控制的,必须把2430 的CTS 和RTS 端拉为高电平才能互相通信,否则无数据收发,曾经浪费了很多时间在这上面研究。如果协调器无法建立网络或者路由器和终端设备无法加入网络,并且LED 灯一直闪烁,或者加入了网络无法实现设备绑定,究其原因是地址的关系,在Z-Stack 操作系统程序zmain_ext_addr()里面,如果节点的IEEE 地址全为0xFF(因为写程序的时候有可能把存IEEE 地址的内存给清除了),则需要按键来初始化节点的IEEE 地址,但是路由器和终端设备的初始化地址都一样为0x20,所以地址重复,无法加入网络或者实现绑定。可以使用SmartRF04 Flash Programmer 烧写不同的IEEE 地址到节点上。最后,很重要的一点就是应用层初始化程序中一定要在AF 层登记你的端点—afRegister(端点描述符),否则无法通过你自定义的端点实现设备之间的通信。因为节点上的异构性,即不同的节点担任着不同的任务和节点上的传感器也不尽相同,所以编写程序的时候尽量采用条件编译#ifdef 的方式。节点上拥有什么样的功能就编译什么样的程序,到时只需要在C/C++ compiler 栏的Preprocesser 项下的defined symbols 先定义你节点的功能再编译就行了。
4.2 上位机软件设计
本系统的上位机程序采用全图形化的操作界面,大部分的显示和控制都是在图像上面进行的,程序设计语言采用的是VB6.0。上位机程序分为服务端和客户端,服务端用于与协调器进行通信和为远程客户端提供查询和控制服务,客户端用于远程家居监视和控制。上位机程序实现的功能主要是图像显示报警信息并通知用户、电器和门禁远程控制、摄像头视频采集和远程图像传输、家居内人员定位图形显示以及所有的监控数据存入SQLServer2000 数据库中。图6 是服务器的主监控界面,图7 是人员定位图和摄像头图像采集界面。客户端的监控界面与服务端的监控界面基本上一致,服务器界面的变化必然也会导致客户端的变化。
上位机与下位机的交互程序使用了微软的Mscomm 控件,服务器与客户端的Internet 通信使用的是Winsock 套接字TCP 连接,摄像头视频采集使用的是VFW 视频窗口建立和图像采集函数。在设计上位机和下位机通信程序的过程中,很重要的一点就是通信的可靠性,特别是报警信息的收发,为了保证可靠性,本系统建立了一系列的应答通信机制,包括消息应答、等待超时重发、包丢失重发等。本系统的本地控制和远程控制基本都是在图像上面进行的操作,比如说要控制客厅的灯光,点击图像上面的某一个灯,图像上的灯就会熄灭,同时通过无线传感器网络也相应地关闭实际的灯。
5 结论
本文介绍了以Zigbee 作为无线传感器网络组网技术而建立的智能家居安防监控系统,采用CC2430 片上系统实现了自组织的串状网络,具有低成本、低功耗、低复杂度的特点。本文对下位机和上位机均做了设计介绍,特别是提出了全图形化的显示和操作界面,客户无须记住繁杂的控制指令。本智能家居安防系统基本实现了现代家居安防所必需的功能,集家庭安防报警、家居人员定位、智能门禁、电器远程控制、远程视频图像监控于一体,为下一步的深入研究奠定了基础。本文虽实现了智能家居安防的基本功能,但是还需进一步加深理论算法的研究,比如节点任务调度和节点部署以节省传感器网络的能耗问题,还有节点的休眠和唤醒的时间问题等。
集成了传感器技术、微机电制造系统(MEMS)技术、无线通信技术和分布式信息处理技术的无线传感器网络是因特网从虚拟世界到物理世界的延伸。本文之所以把无线传感网络这种先进的技术应用于智能家居安防领域,其一是伴随着高科技产品在现代家庭中的应用,相应地也带来了一系列不安全因素,如煤气管道、热水器以及其他许多大容量的家用电器的使用,都明显地增加了发生火灾的可能性以及煤气中毒、爆炸的危险等,且社会上还有不法分子在活动,行凶、盗窃等违法犯罪活动时有发生,给社会带来不安定因素,所以家庭安防系统的研究具有迫切意义;其二是广阔的市场前景,因为安全是每一个家庭和工业领域必需的保障,所以该系统的应用范围是相当广泛的;其三是其典型性和可移植性,如果在智能家居安防中实现了,那么该技术可以移植到其他很多系统之中,比如说智能大楼,智能医疗系统,而只需做部分应用方面的修改。
1 基于 Zigbee 技术的无线传感器网络
Zigbee 网络首先由连接无线网关的协调器(Coordinator)发动并建立,其他节点加入已经建立的网络。每个节点加入网络时,其父节点都会按约定规则给它分配一个网络层地址供通信使用。功能比较强且供电充足的节点充当路由节点(Route Node,RN)为全功能设备(FullFunction Device,FFD),它能接收其他节点作为其子节点,同时根据自身状况决定是否给其他节点查找路由和转发数据;功能比较弱的节点为简化功能节点(RFD) ,不能成为其他节点的父节点,通信时只能请父节点帮忙转发数据[2]。有路由能力的路由节点(RN+)采用AODVjr 路由算法,而没有路由能力的路由节点(RN-)和RFD 遵循Cluster-Tree 路由算法[3]。Zigbee 标准的协议栈如所示。
2 智能家居安防系统的设计方案
2.1 系统的总体设计方案
基于无线传感器网络的智能家居网络主要是由若干无线传感器节点、无线执行机构、家居无线控制中心组成[4]。其中, 节点分布于客厅、卧室、洗手间、厨房等需要监测的区域内,执行数据采集、处理和通信工作。无线执行机构负责启动声光报警、自动继电器开关等控制功能。家居无线控制中心处理、转发来自无线传感器节点中的信息, 并且为互联网的连接提供接口进行远程控制。由于不同网络结构会对网络的速度、特点和实现有较大影响,因此结合智能家庭网络系统的特点,如家庭内部无线网络连接距离较短, 家用电器位置容易改变,家庭电器等的数也容易变化,房间之间仍有一段不小的距离,分布的节点并不是太多,并且数据的传输量也不是太大, 网络中的信息传送主要发生在WSN的基站和其他室内终端上的传感器节点之间。基于家庭网络的这些特点以及树的特征和优势,本文以WSN的基站节点(也称为协调器Coordinator)为中心节点组建一个串状树形家庭网络。
本文主要实现的功能包括智能门禁系统、智能门窗防盗、煤气监测系统、火灾监测系统、居室内的人体红外检测、远程监控、数据库系统。节点布置和网络系统的总体设计方案如图2所示,图中的ZD代表的是Zigbee终端设备,可以是FFD也可以是RFD;ZR代表的是Zigbee路由器;ZC代表的是Zigbee协调器。
2.2 智能家居安防系统的各功能块的描述
(1)智能门禁系统:
当人走到家居门口时,红外热释电传感器感应到人体接近,促使门禁Zigbee设备主动发射获取人体身份命令信号。当人体携带着身份识别标签(也是一种Zigbee 设备)时,标签会发送加密身份信号给门禁Zigbee 设备,门禁系统经过分析判断后决定是否开启数字门锁,用户再也不用自己掏钥匙开门了。如果是一个未知身份的人体,则门禁系统会搜索家居内是否有人,如果有人则通知家居内的用户有客人到来,如果家居内没人则会远程通知智能家居安防用户有客人在家门口,通过门禁系统的摄像头采集客人的人脸图像并通过Internet发送到用户PC 上。当然远程用户也可以随时给家庭网关协调器发送命令来采集家居门口人脸的图像。当用户确认了来人的身份以后可以远程控制门禁系统开启数字门锁,让客人进屋,以免让客人在屋外等待。
(2)智能门窗防盗
所有的家居窗户上都安装有红外幕帘传感器,用来防止未知人员从窗户侵入家居。该系统是人性化的运行方式,分为白天和黑夜两种运行方式,这由协调器的实时时钟来进行控制。白天时,当家居内有人体走进一个房间时,该房间的红外幕帘即告失效,防止不必要的误报警,而当人体一旦离开房间则该房间的红外幕帘马上开启。而在夜晚的时候,用户需要设定一个时间点,当到达设定的时间点的时候,红外幕帘会强制开启,并保持到天亮。
(3)煤气泄漏监测
在厨房安装多个煤气检测传感器节点,可靠地报告厨房煤气的含量是否超标,如果超标则立即报警和远程报警通知,同时开启所有的排气扇,保证家居内人员的人身安全。
(4)火灾预警系统
在所有的房间都安装上了火灾光电烟雾探测器,对即将发生的火灾事件预警通知,合理布置火灾探测器节点,防止盲点的出现,遏制火灾事件的发生。
(5)居室内的人员定位
在居室内布置有红外热释电传感器节点,用以监测家居内是否有人、位于哪一个屋,如果是佩戴有身份标签的人员则还可知其身份。这些都可以在远程监控界面中观察到。这还可以用来监督小孩子有没有在学习,是不是在客厅看电视等等,也可以监测老人们是不是在家里面等等。
(6)远程监控
以上所有的安全参数都可以在远程客户端软件中观察到,并可以实现部分电器和数字门锁控制,全图形化监视和控制界面,方便观察和控制。
(7)数据库系统
所有的控制命令、图像采集数据、报警参数时间等数据都通过上位机软件存储于SQLServer2000数据库中。
3 系统的硬件设计
在刚做本系统设计的时候是在CROSSBOW公司的MICAZ节点平台上做了相关的基础框架实验。顺利地通过TinyOS操作系统和自组织方式组成网状网络,并且采集数据,通过多跳路由方式把数据转发回基站。虽然CROSSBOW的产品拥有诸多优点,但是因为该产品硬件电路复杂,并且组网方面也存在一些问题,且价格昂贵,不适合于大范围地布置节点。所以本文最后选择在TI公司的CC2430片上系统上做系统设计。CC2430是一颗真正的片上系统(SoC) CMOS解决方案。这种解决方案能够提高性能并满足以ZigBee为基础的2.4GHz ISM波段应用以及对低成本、低功耗的要求[5,6]。它结合一个高性能2.4GHz DSSS(直接序列扩频)射频收发器核心和一颗工业级小巧高效的8051控制器,资源非常丰富。
对于无线传感器节点来说最敏感的就是射频电路,很容易受其它信号的干扰,所以为了降低节点电路本身对射频RF的干扰,本文设计节点硬件的时候把射频部分和传感器信号采集处理部分分为两个模块进行设计,然后通过排针排母把两个模块进行连接。
3.1 系统的硬件框图设计
图为系统的整体硬件设计框图,本系统是以CC2430 节点为核心组建Zigbee 网络。不同节点上分布有各种传感器,采集各种安防参数以进行声光报警和执行机构的控制。在执行机构旁也分布有节点用于进行远程的电器控制,特别是在数字门锁旁安装有节点用于智能门禁系统的组成。
3.2 CC2430 射频模块的设计
CC2430模块的硬件设计方面选择了TI公司的方案,主要是射频部分的设计,包括电源滤波、匹配阻抗、非平衡变压器的设计、PCB微波传输带线,整个结构满足RF输入/输出阻抗(50Ω)的要求,天线采用的是3dB的鞭状SMA天线。
3.3 节点传感器板和通用底板的设计
节点底板用于引出模块I/O 引脚,作为传感器电路板和电源供应模块以及RS232 通讯电路,在该板上可以引出I/O 线控制外部执行机构和采集传感器数据,并且还可扩展LCD 液晶模块,方便观察和调试。
4 软件设计
软件设计分为Zigbee节点的软件设计和PC上位机的软件设计。节点的软件设计是为了组建Zigbee树形网络、采集传感器数据并转发到协调器、实现声光报警和对部分电器的控制以及与PC上位机之间的通信。PC上位机软件设计主要是实现与Zigbee传感器网络的交互和设计全图形化的监视和操作界面以及服务器和客户端的交互程序(本系统选择的远程控制模式采用的是C/S模式)。
4.1 Zigbee 节点的软件设计
本系统采用的Zigbee 协议栈是TI 公司的2006 版Zigbee 协议栈, 版本是Z-Stack-1.4.3-1.2.1。
TI 完成了对Z-Stack 的兼容,该款市场领先的ZigBee 解决方案针对CC2430 片上系统(SoC)进行了相关兼容性认证。Z-Stack 达到了参考平台(Golden Unit)水平,作为率先实施最新版ZigBee 标准并通过两家ZigBee 认证检试实验室之一独立测试的平台,该产品获得这一殊荣当之无愧[7]。参考平台的建立为未来ZigBee Compliant Platform (ZCP)的认证提供了参考点,并且最重要的就是该款协议栈现今对于研究和实验室免费的,这使得该协议栈的受欢迎度大大提高。Zigbee 节点的软件开发环境采用的是IAR EmbeddedWorkbench 7.30B,这也是Z-Stack 协议栈推荐使用的软件开发环境。
Z-Stack 已经为用户完成了对Zigbee 各层的开发包括物理层、MAC 层、网络层、应用层框架,用户需要调用Z-Stack 提供的丰富接口即可完成对工程的应用开发,大大降低了开发的周期。因为对Z-Stack 应用开发的大体思路都是相似的,所以本文着重以开发智能门禁系统为例来谈谈Z-Stack 的应用程序的设计。
前文已经提到智能门禁系统所要实现的功能,要在Z-stack 程序中实现这些功能,必然要遵循Zigbee 协议栈的规则。下面图5 以智能门禁协调器程序的流程来体现Z-Stack 的应用开发。
由此可见,在Z-Stack 开发一个系统主要是在应用层上面编写事件处理函数和按键处理函数。但必要的硬件相关程序是编写在HAL 硬件层的,比如说人体热释电传感器和音乐报警器的初始化和中断触发、报警驱动程序等,由硬件触发中断后发送事件消息到应用层,操作系统循环检测到应用层有事件需要处理则执行应用层事件处理函数App_ProcessEvent(),相当于事件驱动机制。下位机与上位机通信的接口是RS232 串口,注意串口程序开发的时候,Z-Stack 是默认允许了硬件流控制的,必须把2430 的CTS 和RTS 端拉为高电平才能互相通信,否则无数据收发,曾经浪费了很多时间在这上面研究。如果协调器无法建立网络或者路由器和终端设备无法加入网络,并且LED 灯一直闪烁,或者加入了网络无法实现设备绑定,究其原因是地址的关系,在Z-Stack 操作系统程序zmain_ext_addr()里面,如果节点的IEEE 地址全为0xFF(因为写程序的时候有可能把存IEEE 地址的内存给清除了),则需要按键来初始化节点的IEEE 地址,但是路由器和终端设备的初始化地址都一样为0x20,所以地址重复,无法加入网络或者实现绑定。可以使用SmartRF04 Flash Programmer 烧写不同的IEEE 地址到节点上。最后,很重要的一点就是应用层初始化程序中一定要在AF 层登记你的端点—afRegister(端点描述符),否则无法通过你自定义的端点实现设备之间的通信。因为节点上的异构性,即不同的节点担任着不同的任务和节点上的传感器也不尽相同,所以编写程序的时候尽量采用条件编译#ifdef 的方式。节点上拥有什么样的功能就编译什么样的程序,到时只需要在C/C++ compiler 栏的Preprocesser 项下的defined symbols 先定义你节点的功能再编译就行了。
4.2 上位机软件设计
本系统的上位机程序采用全图形化的操作界面,大部分的显示和控制都是在图像上面进行的,程序设计语言采用的是VB6.0。上位机程序分为服务端和客户端,服务端用于与协调器进行通信和为远程客户端提供查询和控制服务,客户端用于远程家居监视和控制。上位机程序实现的功能主要是图像显示报警信息并通知用户、电器和门禁远程控制、摄像头视频采集和远程图像传输、家居内人员定位图形显示以及所有的监控数据存入SQLServer2000 数据库中。图6 是服务器的主监控界面,图7 是人员定位图和摄像头图像采集界面。客户端的监控界面与服务端的监控界面基本上一致,服务器界面的变化必然也会导致客户端的变化。
上位机与下位机的交互程序使用了微软的Mscomm 控件,服务器与客户端的Internet 通信使用的是Winsock 套接字TCP 连接,摄像头视频采集使用的是VFW 视频窗口建立和图像采集函数。在设计上位机和下位机通信程序的过程中,很重要的一点就是通信的可靠性,特别是报警信息的收发,为了保证可靠性,本系统建立了一系列的应答通信机制,包括消息应答、等待超时重发、包丢失重发等。本系统的本地控制和远程控制基本都是在图像上面进行的操作,比如说要控制客厅的灯光,点击图像上面的某一个灯,图像上的灯就会熄灭,同时通过无线传感器网络也相应地关闭实际的灯。
5 结论
本文介绍了以Zigbee 作为无线传感器网络组网技术而建立的智能家居安防监控系统,采用CC2430 片上系统实现了自组织的串状网络,具有低成本、低功耗、低复杂度的特点。本文对下位机和上位机均做了设计介绍,特别是提出了全图形化的显示和操作界面,客户无须记住繁杂的控制指令。本智能家居安防系统基本实现了现代家居安防所必需的功能,集家庭安防报警、家居人员定位、智能门禁、电器远程控制、远程视频图像监控于一体,为下一步的深入研究奠定了基础。本文虽实现了智能家居安防的基本功能,但是还需进一步加深理论算法的研究,比如节点任务调度和节点部署以节省传感器网络的能耗问题,还有节点的休眠和唤醒的时间问题等。