医药仓库分区管控中ZigBee无线监测系统的应用

2013-10-20 08:36孙天娇仇润鹤
微型电脑应用 2013年1期
关键词:串口温湿度单片机

孙天娇,仇润鹤

0 引言

实际的药品管理中,药品状态细分后如何进行有效管控尤为重要,药库分为平面仓库、隔断仓间、冷库、冷藏车,立体及高架仓库等。平面仓库面积较大,单一位置的环境因素测量值显然无法象征整个仓库的环境参数,局部温湿度的变化也无法感测到,因此经常需要对平面仓库进行分区独立监控。对于不同药品的特性,如低温保存、避光保存、通风或密封保存等,又应该选择不同的位存储位置,因此需要对各个分散的独立小区域的环境因素进行监控。基于IEEE 802.15.14无线标准[1]研制开发的ZigBee技术特别适合于小范围的无线组网控制,完全能够满足小范围监控对网络通信的要求。ZigBee主要应用于低成本、低功耗、低复杂度、低传输速率、近距离的设备联网,系统节点具有多跳路由功能,能够组成蜂窝网状网络结构, 具有通信可靠、自组织、自愈、网络容量大等优点[2]。

在Windows操作系统中,一般采用C/C++语言来编写串口通信程序及上位机显示界面,程序代码较复杂,往往开发周期也较长。而图形化编程语言LabVIEW可方便地实现串口通信程序编写。它具有编程简洁、直观性强、人机交互界面友好、数据可视化分析与设备控制能力优等特点。其自带的VISA子模块,则可更方便、快捷地实现串口编程,完成控制机与仪器之间的连接、控制、显示的功能。

本文中控制中心与数据终端是通过 ZigBee无线通信的。前端采集加入了带有8路ADC通道的单片机,使得一个ZigBee终端节点即可获取8路环境传感器的测量值,测量值(电压信号)经过单片机处理后,再通过单片机串口接入ZigBee终端节点,并又由ZigBee网络无线发送至监控中心。若发送端与接收端的距离较远,亦可加入中继路由节点,形成多跳网络,完成通信。实现了温湿度、光照强度等数据的采集、存储、监控与报警。

1 系统总体设计

ZigBee共有3种不同拓扑类型的网络:星型网、树型网、网状网[3]。此处采用了星型网,即多个ZigBee终端节点直接与ZigBee数据管理终端通信并交换数据。数据在协调器节点处汇聚并传至PC机,根据具体的环境特点安装中继路由节点,实现数据多跳传递至协调器节点处。监测系统由以下两部分构成,系统框图,如图1所示:

图1 监测系统总体框图

第一级:远程监控中心;一个ZigBee节点通过串口与PC机相连,作为协调器,主要负责网络的启动创建和给其它终端节点分配网络地址,并作为无线接受端读取传感器的测量值。

第二级:现场采集节点;根据货品分类及分区面积将仓库进行区域划分,每个区域内各放置一个zigbee节点,根据货品的种类性质以及对环境因素的要求(如温度、湿度、光照强度等),选择相应的传感器。并将各个传感器的测量输出分别接入到单片机的各路ADC通道,而单片机则通过串口与ZigBee终端节点相连,终端ZigBee节点接受数据后并通过天线发出。

根据需求,每个监控区域均放置一些终端节点进行数据的采集和传递。如冷库中节点的布置,平面单库20平米以下应不少于2个监测点,20-50平米应不少于3个监测点,50-150平米应不少于4个监测点,点位的布置应依照经验证的温度的冷点和热点。对于立体及高架仓库,应均匀分布在库房的上、中、下3层,采取延对角线交叉布置的方式,每层不少于3个,总数不少于9个。

以某一个区域的温湿度、光照强度监控为例,由单片机STC12C5A60S2和各传感器(LTC标准传感器)连接作为前端数据采集部分,传感器的测量值输出为标准电压信号,3个输出引脚OUT1(温度), OUT2(湿度), OUT3(光照)分别和单片机ADC0, ADC1, ADC2连接,模拟量通过单片机的ADC转换成为数字量后,通过串口与ZigBee模块通信,经天线发送出[4],目的地址为协调器节点。

2 系统的硬件实现

系统主要使用的硬件模块包括传感器模块、单片机处理模块、传感器模块、串行接口等,其工作原理如下所述:

2.1 LT系统传感器

本系统所使用的LT/W/S温湿度传感器、LT/G光照度传感器,均为惠邦公司生产的LT系统传感器,专门针对环境数据的测量[5]。使用的传感器均输出0-5V的模拟电压信号,该信号与温湿度、光照强度成良好的线性对应关系。

传感器启动数据采集功能时,对应的输出信号引脚就会输出与环境数据成线性关系的模拟电压信号。当传感器接入12V电源时,输出的模拟信号在0-5V之间变化,对应的温度量程是-20℃-80℃,对应的湿度量程是0%-100%,对应的光照强度的量程是0-10万lux。

2.2 STC12C5A60S2系列单片机

采用 STC12C5A60S2系列单片机实现对传感器测量值的转换处理,并作为连入网络的接口。该单片机指令代码完全兼容传统8051,内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换,针对电机控制,强干扰场合。单片机中包含中央处理器(CPU)、程序存储器(Flash)、数据存储器(SRAM)、定时/计数器、2个 UART串口、I/O接口、PCA、看门狗及片内R/C振荡器和外部晶体振荡电路等模块[6]。

2.3 ZigBee无线通信模块

采用XBee/XBee Pro模块[7],实现现场采集与远程交互终端之间的通信功能,XBee为2.4GHz无线通信接口,具有基于Mesh网的固件,支持 ZigBee协议栈。模块功耗仅为3.1mW(+5dBm),传输距离可达120m,如下图4所示:

图4 XBee Pro模块的引脚排列图

XBee Pro模块的引脚排列图,该模块有20个引脚。其中VCC是电源引脚(2.8-3.4V);DIN是信号输入引脚,可作为UART数据输入,通常与处理器的UART接收端TX相连; DOUT为信号输出引脚,可作为UART数据输出,通常与处理器的UART接收端RX相连。

接口的内部数据控制流程,如图5所示:

图5 XBee/XBee Pro模块的UART内部数据控制流程

当串行数据通过DIN引脚进入XBee Pro模块后,数据会存储在DI缓冲器中,直到被发送器通过天线发送出去;当RF数据由天线接收后,接收数据进入DO缓冲器,并通过串口发送到主机,直到被处理。在一定条件下,模块可能无法立即处理在串位接收缓冲中的数据。如果大量的串行数据发送到模块,可能需要使用 CTS流控以避免串行接收缓冲溢出。

在XBee/XBee Pro模块的调试底板中集成了一个UART接口,使得可以通过UART 接口直接与控制器的UART接口相连,简单实用。

3 软件设计

3.1 ZigBee模块的配置

3.1.1 通过X-CTU软件下载代码

使用X-CTU软件对ZigBee模块进行配置和调试,并可以通过串口下载和调试程序。设计通过透明传输的代码来实现ZNET2.5的数据通讯。根据XBee/XBee-Pro,分别选择固件库XB24-ZB(XBee)或XBP24-ZB(XBee-Pro)。

首先,下载协调器代码[ZNET2.5 COORDINATOR AT(1047)],先配置X-CTU的必要参数,选择和设备连接的串口,然后设置波特率-数据位-校验位-停止位分别为:9600-8-n-1。再通过”write”指令将代码写入模块。系统和模块默认9600-8-n-1,使用流控制CTS,禁止流控制RTS。可以根据设备的具体需要改变波特率等,亦可通过X-CTU的配置串口参数命令来实现。

然后,使用同样的方法给另外一个或几个终端采集节点模块下载代码[ZNET 2.5 ROUTER/END DEVICE AT(1247)],一个网络只能有一个协调器,但是可以有多个路由器或者终端设备。

3.1.2 配置目标地址

透明传输是建立在1047和1247的基础上[8],在系统默认的情况下,zigbee协调器模块采用广播的方式发送数据,即将模块的目标地址设置为0x000000000000FFFF,广播模式可能导致数据的延时严重,因此此处需配置模块的目标地址。

透明传输支持空闲模式、低功耗模式、透传模式、和命令模式。配置模块参数必须在命令模式执行,通过“+++”进入命令模式,操作如下:

退出命令模式以后,设备进入透明传输模式,可以发送除了“+++”之外的任意数据。将协调器节点的源地址配置成终端节点的目标地址。路由器节点保留默认配置。

3.2 前端数据采集处理

前端数据采集处理的程序用KeilC51编写,主要用于采集现场环境数据,并实现数据的实时无线发送。软件采用模块化设计,包括串口初始化程序、定时器初始化程序等,其流程,如图6所示:

图6 数据采集模块软件流程图

首先,由STC12C5A60S2单片机完成设备的初始化,然后,进行定时器的初始化、定时、中断发生时,由单片机进行AD转换,并通过串口向通信模块发送传送数据请求,发送完毕,等待确认收到数据,收到后则送往PC显示,以实现实时更新。

本系统中对温湿度参数进行实时检测,定时将采集到的数据发送,故如图7中所示采用了终端节点连续发送的方式。实际应用中如有必要,还可以采用中心节点查询的方式。

串口的主要函数如下:

3.3 上位机LabVIEW程序设计

3.3.1 VISA简介

LabVIEW提供了功能强大的虚拟仪器软件规范(virtual instrument software architecture, VISA)库,VISA是用于仪器编程的标准I/O函数库及其相关规范的总称。VISA总线软件是一种虚拟仪器系统的综合I/O接口软件,不受平台、总线和环境的限制,可用来对USB、GPIB、串口、VXI、PXI和以太网系统进行配置、编程和调试[9]。在本系统中采用VISA来对串口进行编程,完成对温湿度的实时采集,实现对监控设备的控制。

3.3.2 设计实现

首先,在MAX中设置VISA资源,设置串口的波特率9600 bps,、数据位8位、无奇偶校验、停止位1、流控无等,这样就可以在LabVIEW中与串口仪器进行通信。

再使用VISA Read函数,读取端口1(COM1)上连接的串口设备,可根据需求设置每次读取的字节数。由于LabVIEW中接收到的数据都是以字符串的形式显示的,故使用函数“字符串至字节数组”将接收的字符串转换成数组的格式。这里测量的3个通道(ADC0, ADC1, ADC2)采集的数据分别为温度,湿度和光照强度,且数据连续传送,显示为3种数据顺序循环传送的形式。为了同时显示三者的变化曲线,从单片机连续发送的数据中提取出对应相应参数的数据流。可将每次采集的若干字节数据取前3个,形成一个3元素的数组。再采用Array Subset函数,分别取index=0, length=1的数据(湿度),index=1, length=1的数据(温度)和index=2, length=1的数据(光照强度),即从VISA每次读取的数据中抽取出对应温度,湿度和光照强度的两个长度为1的子数组,分别绘制历史曲线并显示子数组元素的值。各参数变化走势图直观明了。同时在while循环中加入定时函数来控制循环定时,设置每半秒采集一次测试数据,即可实现数据的定时采集。

此处以设定区域1温度上限为30,湿度为80,光照强度为500;区域2温度上限为10,湿度为80,光照强度为100为例。前面板界面,如图7所示:

图7 前面板界面图

区域1实时温度为32.3,超过上限,报警灯亮。区域2光照强度为106.6,超过上限,报警灯亮。此程序具备两个功能:1)可实现温度、湿度、光照强度数据的实时、准确的采集与显示。2)可设置温湿度、光照强度上限,若超过设定值,则预警灯亮。

4 结论

该无线监控系统通过对STC12C5A60S2单片机,XBee无线通信模块,传感器等模块实现了一种可靠、高效的数据采集系统。且所设计的电路硬件模块功能完整、结构简单,实现了低成本、低功耗、高可靠性和高效益的目的,并利用LabVIEW中的VISA对单片机串口进行了编程,实现了串口与LabVIEW之间的通信,进而实现了温湿度及光照强度数据的实时采集、显示和预警,完成了对环境参数的监控。通过实验验证,在此基础上,若增加多个终端节点及路由节点,构造星型结构网络,亦可实现由监控中心监测并识别仓库不同区域的同时工作的多个终端节点。ZigBee终端节点的输入端口具有多样性,RS232、RS485、USB接口、以及自带的ADC通道,使得多种传感器、控制器可与之直接相连接,构造简单,传输稳定。由此可见,由ZigBee与单片机构成的无线数据采集系统所实现的多位置多环境因素的监控是可行的,可在众多领域得到良好的运用。

[1]Yang Li, Ji Maorong, Gao zhenru, et al.Design of Home Automation System based on ZigBee Wireless Sensor Network[D].Nanjing: Nanjing university of science and technology.2009

[2]方水良,王加兴.基于XBee的无线数据采集系统开发和应用[J].机电工程,2010(3):53-56

[3]邓中华.基于 ZigBee的无线温度采集系统设计[J].计算机工程与科学,2011(6):164-167

[4]Zhang Yi, Qi Yuchao, Luo Yuan.An Information Collection System of Network Intelligence Wheelchair Based On ZigBee Wireless Sensor Networks[C].20102nd International Conference on Industrial and Information Systems.IIS 2010.IEEE .2010:140-143

[5]赵媛,杜坚.基于ZigBee的温室花房环境监测系统设计[J].现代电子技术,2011(6):37-39

[6][Li Xinchun , Wang Na.The Design of Granary Environmental Monitoring System Based on ARM9 and Zig-Bee[D].Liaoning: Liaoning Technology university.2010

[7]Minghui Liang, Xiaodong Wang, Jianlei Xue.Design of Temperature Intelligent Control System Based on AT89S52[C].ICMET 2011.2011:349-357

[8]杜娟, 邱晓晖等.基于LabVIEW的数据采集与信号处理系统的设计[J].南京师范大学学报,2010(9):7-10

[9]霍峰,王长松等.基于ZigBee和LabVIEW的多功能数据采集系统[J].传感器与微系统,2008(7):82-85

猜你喜欢
串口温湿度单片机
浅谈AB PLC串口跟RFID传感器的通讯应用
基于AT89C51的数字型蚕用温湿度计的设计
基于单片机的SPWM控制逆变器的设计与实现
基于DSP的多路温湿度监测系统
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
基于温湿度控制的天气预测装置
蒸发冷却温湿度独立控制空调系统的应用
数字电源内部数据传输的串口通信方法实现