文献标识码:A
DOI:10.16157/j.issn.0258-7998.2016.01.017
中文引用格式:李建勇,李洋,刘雪梅. 基于ZigBee的粮库环境监控系统设计[J].电子技术应用,2016,42(1):65-67,71.
英文引用格式:Li Jianyong,Li Yang,Liu Xuemei. Design of granary environmental monitoring system based on ZigBee[J].Application of Electronic Technique,2016,42(1):65-67,71.
0 引言
我国作为一个人口大国,维持一定数量和品质的粮食储备是保障国家粮食安全和社会稳定的重要措施。粮食在储藏过程中易受温度、水分等因素影响,使粮食发生霉变、虫害滋生和火灾等情况,为了确保储粮安全,需准确掌握粮食储藏过程中温湿度的实时变化、气味异常、火灾警情和能进行通风、防潮除湿等措施[1-4]。传统的粮库监控系统大都采用人工或有线监控方式,人工监控不仅费时费力、效率低,而且测量误差大,随机性大;而有线监控,当监控点较多情况下,不仅布线繁琐、成本高,且维护困难、灵活性差。针对这些缺陷,采用ZigBee无线传感器网络技术,设计了一种低功耗、低成本、精度高的粮库环境监控系统。
1 系统总体设计
粮库环境监控系统主要由ZigBee无线传感网络和上位机监控软件两部分组成,其结构框图如图1所示。ZigBee无线传感网络遵循TI公司的ZigBee2007协议栈Z-Stack,采用树状拓扑结构,由一个协调器、多个路由器和多个传感器节点(终端)等设备组成。传感器节点首先加入由协调器发起的ZigBee网络,然后把测量各节点的温度、湿度、气味浓度和火灾警情等环境参数经路由器或直接传递到协调器,接着由协调器经串口上传到PC机,最后用由VS2013制作的上位机监控软件来实时显示温湿度值、气味浓度和火灾警情,对火灾声光报警和反向控制相应节点进行通风或除湿,并记录所有的数据和操作。
2 系统硬件设计
本系统中的协调器、路由器和传感器节点三种设备都是以TI公司的ZigBee SOCCC2530F256芯片为核心来进行设计的。CC2530F256是2.4 GHz IEEE 802.15.4和ZigBee应用的片上系统解决方案,支持RemoTI、SimpliciTI、TIMAC和Z-Stack协议栈,内部主要集成一个高性能2.4G RF收发器和一颗工业级小巧高效的8051控制器,以及8 KB RAM和256 KB闪存等其他模块,以满足系统对低功耗、低成本的要求[5]。由于协调器、路由器和传感器节点功能不同,所需硬件电路不同,将分别进行设计。
2.1 传感器节点设计
传感器节点主要负责测量各节点的温度、湿度、气味浓度和火灾警情等环境参数并传递到协调器,接收上位机控制软件发回的命令来控制通风或除湿设备,由电池供电,其硬件结构图如图2所示。测量温度和湿度采用高精度的DHT22数字温湿度传感器,通过单总线直接与CC2530的P0.0引脚相连接。由于当粮食发生霉变时会产生霉、酸、腐臭等气味,通过测量这些气味的浓度能预测粮食霉变的情况,因此采用TGS2600气味传感器来测量气味浓度,与CC2530的A/D转换接口A6(P0.6)相连接。采用JNHB1004远红外火焰传感器来测量火灾警情,通过一片电压比价器LM393与CC2530的P0.7相连接,当JNHB1004传感器检测到火焰时,立即通过上位机界面符号提示和声光提示进行火灾报警。由于通风和除湿设备为大功率强电设备,采用SRD-05VDC-SL-C继电器以完成对它们的控制及与节点进行隔离,其输入端接CC2530的P0.1引脚。这些对传感器信号的采集、处理和对继电器的控制都是由CC2530内部集成的8051控制器完成的,而与ZigBee网络之间的信息交换由CC2530内部集成的RF收发器完成。
由于CC2530的有效通信距离为100 m,为增加节点与路由器和协调器的通信距离,在CC2530后面都增添了高性能功率放大及低噪声放大芯片RFX2401C,外接SMA胶棒天线或小吸盘天线[6]。
2.2 路由器和协调器设计
路由器用来扩展网络通信范围,协助传感器节点和协调器之间的通信,在树状网络拓扑可周期性工作,因此采用电池供电;而协调器负责启动和配置网络,这些完成后就相当于路由器,协助网络内的传感器节点和PC机相互通信,必须采用PC机供电。因为不需要传感器和继电器等电路,只需要RF收发电路和电源电路,所以路由器和协调器的设计几乎相同,区别在于协调器多了串口通信电路。协调器电路图如图3所示,串口电路采用USB转串口芯片CH340进行设计,直接与CC2530的UART0相关引脚相连接。
3 系统软件设计
系统软件设计主要包括ZigBee网络中各种设备软件和上位机监控软件的设计两部分。
3.1 ZigBee网络中各种设备软件
为便于用户开发ZigBee系统,TI公司在推出其CC2530的同时,向用户提供了自己的ZigBee协议栈Z-Stack,它实质就是一套ZigBee系统程序,为TI自己的开发板量身定做的,提供了符合ZigBee2007协议栈体系结构所要求每层操作相关的各种事件处理函数和一个名为操作系统抽象层OSAL 的协议栈调度程序[5],以及包含协调器、路由器和终端程序设计的例程。因此本系统ZigBee网络中各种设备程序就是在其集成开发环境IAR Embedded Workbench for 8051下修改 Z-Stack-CC2530-2.5.1的SampleApp例程来完成设计的。
协调器和路由器的程序只需在例程基础上修改协议栈规范、网络拓扑结构、PANID、信道和数据收发函数等网络参数以及和系统工程有关的应用层即可,而传感器节点程序不仅同样需要修改这些方面,还要根据系统硬件来修改Z-Stack例程各层目录中所有与硬件有关部分的程序。传感器节点程序流程图如图4所示。由于OSAL只采用了轮询任务调度队列的方法来进行任务调度管理,在系统初始化之后就进入轮转查询式操作系统,对发生的任何事件就调用协议栈相应层的事件处理函数进行处理,因此在硬件层中设置对JNHB1004火焰传感器采用中断处理的事件,对DHT22温湿度传感器、TGS2600气味传感器和继电器控制采用轮询处理的事件等修改以完成系统的开发。
3.2 上位机监控软件
上位机监控软件采用VS2013进行设计,主要由传感器节点状态区域、实时显示趋势图和通信设置区域等组成。传感器节点状态区域按照安排好的节点顺序,不仅能实时显示每个节点的温度值、湿度值、气味浓度和火灾警情等状态,当发生火灾时进行界面报警灯符号闪亮提示和通过外部声光设备发出火灾警报,同时还有每个节点对应的按钮用来控制按照一定顺序分配的通风和除湿设备。实时显示趋势图不仅按时间可以直接显示每个节点的温度值、湿度值和气味浓度,还能以文本格式存储温湿度值、烟雾异常、火灾报警和除湿按钮等所有状态变化并能随机查看。通信设置区域主要进行串行和网络通信的设置,串口设置如端口选择、打开串口、关闭串口、手动刷新和自动刷新等操作,网络通信设置如IP设置、启动和关闭网络等操作。上位机与各个传感器节点通信采用主从查询式,按照约定好的编码和通信协议,由上位机发起查询然后传感器节点进行应答,一问一答,非问莫答,避免各传感器节点同时发送数据产生冲突。
4 系统测试
本系统利用制作好的4个传感器节点、1个路由器和1个协调器,在用户方的1个大平房仓型粮库中进行测试。该粮库长100 m,跨度24 m,高7 m,其装粮高度为6 m,因此在粮库按25 m间隔和6.1 m高来放置传感器节点以及按不同距离放置路由器和协调器进行测试,节点1实时温度趋势图如图5所示。测试结果表明,其平均温度误差为0.2 ℃,湿度误差为2% RH,气味浓度分辨率为0.5,满足精度要求,同时对火焰反应比较敏感,预报火警迅速,对通风和除湿设备控制比较准确,而且上位机监控软件操作简单。此外本系统采用3 dB的2.4 GHz胶棒天线进行测试,无线模块输出功率可达22 dBm,在空旷地带两个模块有效传输距离可达1 500 m,满足通信距离的需要。
5 结束语
测试表明,该系统不仅达到了设计要求,还具有测量精度高、功耗低、成本低、组网灵活、人机界面简单直观、实用性强和稳定性高等诸多优点,同时还能用于其他需求相近的领域。
参考文献
[1] 梁绒香.基于无线传输的粮仓多参数综合监测系统设计[J].自动化技术与应用,2014,33(8):43-47.
[2] 徐艳玲.基于物联网的远程粮仓环境监控系统设计[J].软件工程师,2015,18(2):22-23.
[3] 董静薇,李会乐,郭艳雯,等.基于Zigbee的粮仓温湿度监测系统设计[J].哈尔滨理工大学学报,2014,19(2):120-124.
[4] 李家金.基于ZigBee的粮仓环境监测系统设计与实现[D].大连:大连海事学院,2012.
[5] 姜仲,刘丹.ZigBee技术与实训教程——基于CC2530的无线传感网络技术[M].北京:清华大学出版社,2014.
[6] 李建勇,刘雪梅,李洋.基于SimpliciTI的大棚温湿度无线监测系统设计[J].电子设计工程,2015,23(18):173-179.