引言
无线传感器网络(Wireless Sensor Network,WSN)作为物联网的一种未梢网络和感知延伸层,已经广泛应用于汽车电子、工业控制、家庭自动化和环境监测等领域。然而,现有的环境监测系统往往存在通信距离短、覆盖面小、数据准确性低、设备体积庞大等缺陷。同时,由于监测点大部在野外、机房、企业排污点等无人值守的地方,需要工作人员定期到现场检查设备的运行状态并维护,因此数据的实时性和故障排除的及时性得不到保证。鉴于此,本文设计了一种基于ZigBee技术的分布式传感器网络(DSN)平台,采用分布式采集,集中式管理策略,并以采集环境温湿度信息为例,实现了远距离的实时温湿度精准采集。
1 系统总体结构和功能
系统采用模块化设计思想,根据无线传感器网络的系统架构定义了传感器节点、汇聚节点(协调器和路由器)和管理节点等三类功能单元,系统总体结构如图1所示。传感器节点根据监测需要分布在不同地点,具有小巧、可移动和自适应等特性。无线传输网络负责对采集的数据进行实时传输、路由中继和汇聚等,包括ZigBee无线传感器网络和GSM移动通信网络。管理节点可以采用手机、PDA、嵌入式处理器或PC机等,这里采用PC机接收监测点信息,并提供人机交互操作接口,实现环境数据的实时显示和存储;采用手机终端实现异地监控和报警。
2 系统硬件电路设计
2.1 无线传输单元
无线传输单元是系统设计的核心,采用CC2530芯片作为系统的MCU,它是TI公司针对2.4GHz ISM频段推出的第二代支持ZigBee/IEEE 802.15.4协议的片上系统集成芯片。CC2530内部集成了增强型的8051内核,8路输入的12位ADC以及看门狗定时器等,故只需很少的外围电路即可构建一个简单的ZigBee节点。其中,必备的外围电路包括晶振电路、电源电路、复位电路、无线收发电路等。由于技术相对成熟,这里不再赘述,可参看参考文献。
为保证网络的传输质量,扩大网络的覆盖面积,选用TI公司的高性价比、高集成度的2.4 GHz射频前端CC2591。它适合于低功耗、低电压的无线传输系统。CC2591内部集成的功率放大器(PA)输出功率可达+22dBm,保证了信号的大功率输出;同时,还集成了接收灵敏度为6 dB的低噪声放大器(LNA)。基于以上特性,采用CC2591射频前端的ZigBee节点在无障碍情况下的传输距离可达500~800m,是原来距离的10倍以上,网络覆盖面积大大增强。CC2530芯片与CC2591射频前端的硬件连接图如图2所示。
使用CC2591的4个数字引脚PAEN、EN、HGM、RXTX控制芯片的状态。接收信号时,当HGM=1采用高增益模式,增益为11dB;HGM=0采用低增益模式,增益为1 dB;发射信号时,无论HGM为1或0或悬空,信号均放大。另外,CC2591的RF_P、RF_N引脚须与CC2530的RF_P、RF_N对应连接,保证RF_P、RF_N在发送期间能从功率放大器输出正/负向射频信号,在接收期间能输入正/负向射频信号到低噪声放大器。
2.2 数据采集单元
传统温湿度采集往往采用温度传感器DS18B20和湿度传感器HS1101相结合的方式,存在数据融合算法复杂、准确性低等缺点。采用基于CMOSens技术的新型数字式温湿度传感器SHT75不仅提高了数据采集的精度,而且保证了系统的长期稳定性。其相对测湿精度为±1.8%RH,而在25℃时的测温精度可以达到±0.3℃,因此特别适合于特殊环境下温湿度的精准采集。
SHT75采用4引脚单排直插式封装,供电范围为2.4~5.5 V,温湿度采集电路电路如图3所示。DATA引脚为双向的串行数据收发引脚,可以接CC2530的任意GPIO实现数据通信,这里连接引脚P0_3。另外,为避免信号冲突,CC2530应采用低电平驱动DATA引脚,故连接了一个10 kΩ的上拉电阻,当CC2530输出低电平时,将信号拉至高电平驱动DATA引脚。SCK为串行时钟输入引脚,连接至CC2530的P0_2引脚实现同步通信,控制读出温湿度数据。
鉴于CC2530最小系统的可拓展件,每个传感器节点可以连接1~3个传感器。同时,为了便于CC2530和GPIO的数据传输,所有ZigBee节点的应用程序必须保证多个数据链路,而两个对等ZigBee节点间则使用同一无线信道来和多个接口创建虚拟链路,以降低系统的成本。
2.3 报警单元
系统的报警单元采用声光报警和远程短信报警相结合的方式,确保报警的及时准确,无漏警。
对于声报警电路,鉴于无源蜂鸣器的频率可调,系统采用无源蜂鸣器实现温湿度的区别报警。由于CC2530的I/O引脚电流最大只有20 mA,驱动能力有限,故采用一个PNP型三极管8550放大电流来驱动蜂呜器。当温湿度超过安全阈值时,通过特定程序对外输出不同频率的驱动方波,发出不同报警信号。光报警电路采用普通发光二极管即可实现,其正极通过限流电阻接3.3 V电源,确保灌电流不超过MCU的允许值,负极可直接接到CC2530的GPIO。声光报警电路如图4所示,两者相互配合,可以更好地实现温湿度的区别报警。
另外,为实现系统的远程异地监控和报警,在协调器节点增加GSM短信报警单元。选用德国西门子公司的TC35i模块,它能够支持中文短信,工作在GSM 900MHz和GSM 1800 MHz双频段;模块主要由GSM基带处理器、GSM射频模块、供电模块、闪存、ZIF连接器、天线接口六部分组成。它的数据输入/输出接口实际上是一个串行异步收发器,其18引脚RXD、19引脚TXD均为TTL电平的串口通信引脚,分别连接到CC2530的GPIO即可实现串口数据的收发。使用时只需通过CC2530发送AT指令即可控制TC35i进行短信报警。
3 系统软件设计
3.1 数据采集程序
SHT75的内部前端集成有I2C总线,故数据采集程序需完全按照I2C总线的通信协议进行即CC2530的采集指令和接收指令均应遵照SHT75的时序编写。CC2530向SHT75发送的测温命令为00000011、测湿命令为00000101,所有数据均从MSB开始。在测量和通信结束后,SHT75自动转入休眠模式。
传感器采集的温湿度数据可以通过串口调试助手SComAssistant在PC端显示,图5为SHT75采集数据。可以看出,当前环境的相对湿度范围为49.5~50.1%RH,温度为25.4~25.7℃,数据稳定可靠,误差可控,可以完成对温湿度信息的精准采集。
3.2ZigBee-WSN软件设计
ZigBee网络的建立和运行是整个无线传感器网络系统的关键,关系到数据的可靠性和系统的稳定性。整个系统的工作流程如图6所示。
系统上电后,首先进行硬件初始化和网络初始化。CC2530采用ZigBee2007协议栈,该协议栈的初始化可由TI公司提供的Z-Stack完成,Z-Stack是一种轮转查询式操作系统,能够完成硬件初始化、网络初始化等绝大部分功能。ZigBee网络的建立实际上是通过协调器与其子节点的“绑定”实现的,首先由协调器通过网络层函数NLME_NetworkFormationRequest()建立网络,并通过zb_AllowBind()函数进入允许绑定模式。子节点发出绑定请求zb_BindDevice()后,协调器建立绑定表并响应绑定请求,绑定成功即意味着通信建立。当其他节点加入网络时执行相同步骤,并不断更新绑定表。绑定表中包含了节点的16位网络地址、64位IEEE地址和端口号。网络地址用于路由机制和数据传输,而IEEE地址才是节点的唯一标识。ZigBee网络建立过程如图7所示。
系统初始化完毕后,前置节点便开始采集数据。数据经无线网络传输和汇聚将在PC端实时显示,阈值比较后可以进行声光报警和短信报警。
3.3 管理节点软件
管理节点选择TI公司配套的Z-SensorMonitor软件,它可以形象地显示网络的拓扑结构和各节点的状态信息。另外,Z-SensorMonitor提供了数据存储和恢复功能,能将十六进制数据输出到后缀为.log的文本中,并加入时间戳,便于今后对系统状态的调阅和再现。故采用Z-SensorMonitor能实时地显示各监测点的温湿度情况以及整个网络的运行状况,图8为实验过程中采集到的实时网络状态信息。
结语
通过对该无线传感器网络系统进行功能测试发现,SHT75传感器节点能准确地采集到监测点的温湿度信息,数据符合监测点的实际情况。经过ZigBee无线传感器网络和GSM移动通信网络传输后,数据稳定可靠,达到了远距离、大范围的实时温湿度精准采集要求。