引言:环境监测是为保护环境和保障人群健康,运用化学、生物学、物理学和公共卫生学等方法间断或连续地测定环境中污染物的浓度,观察、分析其变化和对环境影响的过程[1]。随着社会进步与经济快速发展,环境保护问题越来越受到人们的关注。世界各国都致力于控制和减少环境污染,研究环境可持续发展的绿色方案,我国也提出了发展低碳经济的战略目标,并对环境自动监控提出了更高的要求。

  大气环境监测系统所获得的环境数据应能够准确、及时、全面地反映特定区域环境的质量现状及其变化趋势,要求覆盖面广,监测点布设灵活,从而为环境管理、污染源控制和环境规划等提供科学依据。基于无线传感器网络的大气环境监测系统可以实现特定区域环境信息的实时采集、无线传输和集中处理,是实现大气环境网络化监测的一种先进解决方案。
  1 系统总体方案
  基于无线传感器网络的大气环境监测网络结构。嵌入式网关和若干传感器网络节点组成星形拓扑结构的无线传感器网络。由随机部署在感兴趣区域内的传感器网络节点实时采集大气环境信息和气象参数,经过预处理之后,以ZigBee无线通信方式发送到嵌入式网关;嵌入式网关也具有环境数据采集能力,还配置了LCD触摸屏人机界面,其主要功能是将各监测点的环境数据汇总之后,通过Internet传送给大气环境监测中心(PC),即实现无线传感器网络的Internet接入。环境监测中心对特定区域的大量环境数据和气象参数进行检查分析之后,存储到Access数据库中,以便统计处理和数据查询。
  2 环境监测变量及传感器
  大气环境质量监测(air quality monitoring)是指对一个地区大气中的主要污染物进行布点观测,并由此评价大气环境质量的过程[2]。国务院环境保护领导小组发布的《环境空气质量标准》规定了环境空气质量功能区划分本文由论文联盟http://www.LWlm.com收集整理、标准分级、污染物项目、取值时间及浓度限值。选择《环境空气质量标准》中规定的二氧化硫(SO2)、二氧化氮(NO2)、一氧化碳(CO)、臭氧(O3)等可用传感器测量的几种大气污染物作为系统监测对象。由于大气污染与气象条件密切相关,因而在大气污染监测中应包括风向、风速、温度、相对湿度、气压等气象参数的测定[3]。此外,CO2是反映碳排放的重要指标,所以将其列为监测项目之一,故基于无线传感器网络的大气环境监测系统的监测变量共有10种。遵循低成本、高可靠性、适当精度、使用方便等原则,为大气环境监测系统配置了以下8种传感器模块:
  (1)SO2传感器:选择模拟输出型二氧化硫传感器模块SMC-CDX,它采用双光束非分光红外线(NDIR)检测技术,具有抗其它气体干扰、稳定性好、自带温度补偿等特点,输出符合Modbus协议的模拟信号4~20mA,经过信号变送器产生0~5VDC的模拟信号。
  (2)NO2传感器:选用深圳市富安达智能科技有限公司研发的NO2/S-500-S传感器(量程:0~500ppm,分辨率:0.5ppm,工作温度范围:-20°C-45°C,工作湿度范围:15-90%),无需偏执电压,具有良好的重复再现性和长期稳定性,经信号放大电路及信号变送器输出0~5VDC的模拟信号。
  (3)CO传感器:选用英国Alphasense公司的一氧化碳传感器CO-BF(量程:0-1000ppm,分辨率:0.5ppm,工作温度:-30~50℃,工作湿度:15~90%RH),经信号放大及变送后产生0~5VDC模拟信号。
  (4)O3传感器:选用MQ131臭氧气体检测模块(工作电压:5VDC),它具有模拟量输出及TTL电平输出的双路信号输出,TTL低电平输出有效,可直接与单片机I/O口相连。
  (5)风速风向传感器:配置的M288865包括了风速传感器和风向传感器。风速传感器(量程:0~40m/s,精度:±0.3m/s)可以产生TTL电平频率信号,风向传感器(量程:0~360o,精度:0.1%)在精密导电塑料电位器的活动端产生变化的电阻信号输出,可经过变换电路产生0~5VDC模拟输出信号。
  (6)温湿度传感器:选用含有校准数字信号输出的数字温湿度传感器SHT11(温度量程:-40~123.8℃,湿度量程:0~100%RH,温度测量精度:±0.3℃,湿度测量精度:1.8%),它采用准IIC方式传输数据。
  (7)气压传感器:选择德国BOSCH气压传感器系列的BMP085(量程:300~1100mbar,精度:0.03mbar,工作温度范围:-40℃~85℃),用8-Pin陶瓷无引线芯片承载(LCC)超薄封装,可以通过IIC总线直接与各种微处理器相连。
  (8)CO2传感器:选择采用固体电解质电池原理的MG811型CO2气体传感器。该传感器受温湿度变化的影响较小,具有良好的稳定性、再现性,经信号放大及调理后产生0~5VDC的模拟输出信号。
  3 大气环境监测网络设计
  3.1 传感器网络节点设计
  传感器网络节点是一个由传感单元、处理单元、无线收发单元和电源单元4个功能模块组成的微型嵌入式系统[4],其硬件组成如图2所示。它的控制能力、数据存储能力、分析计算能力和通信能力相对嵌入式网关较弱。传感单元分为模拟和数据两部分,SO2传感器(SMC-CDX)、NO2传感器(NO2/S-500-S)、CO传感器(CO-BF)、CO2传感器(MG811)和风向传感器(M288865/DIR)的输出信号经过放大和调理之后,输出0~5V模拟信号,可接入MCU的ADC通道;O3传感器(MQ131)、风速传感器(M288865/SPEED)输出TTL电平脉冲信号,可接入MCU的计数通道。温湿度传感器(SHT11)采用准IIC方式向MCU发送数据,DATA和SCK信号可直接与MCU的I/O引脚连接;气压传感器(BMP085) 使用标准IIC总线向MCU发送数据。处理单元主要协调、控制整个传感器节点的操作,存储和处理采集数据,并与其它节点合作完成被指派的感知、监测任务,是传感器网络节点的核心,从节约成本、提高可靠性等方面考虑,选用ATmega16单片机。无线收发单元将传感器网络节点接入传感器网络,采用TI公司的系统芯片(SoC)CC2530F256,运行ZigBee2007/PRO 协议,通过USART与MCU传输数据,满足以Zigbee为基础的2.4GHz的ISM频段应用。电源单元则为传感器节点提供维持正常运行所必须的能量。
  3.2 嵌入式网关设计
  嵌入式网关以ARM微处理器为核心,包括传感单元、基本外围电路、存储单元、ZigBee通信、Internet通信和触屏显示6部分,其硬件组成如图3所示。选择SamSung公司的基于ARM920T架构的16/32位RISC处理器S3C2440A作为控制核心,协调其它所有工作单元有序运行,实现大气环境信息和气象参数的数据采集、数据预处理、数据存储、数据转发等全部功能。嵌入式网关的传感单元组成及功能与传感器节点的传感单元相同。基本外围电路包括电源电路、时钟电路和复位电路,为S3C2440A正常运行以及嵌入式网关中所有外围电路正常工作提供基本保障。存储单元扩展了SDRAM和FLASH两种存储器,分别为程序代码和各种数据提供存储空间。ZigBee通信模块负责与WSN内的各传感器节点通信,搜集监测区域的环境信息。触屏显示单元采用Toppoly 3.5寸LCD模块,移植了Qt界面,便于用户在现场进行传感器网络运行参数配置,查询任意时刻采集的环境数据等。Internet通信模块将汇总的环境数据传输至监测中心,并与ZigBee模块联合实现ZigBee和TCP/IP两种网络协议的转换。
  4 大气环境监测系统软件
  4.1 传感器网络节点软件
  传感器网络节点实行被动式数据采集行为,即仅当接收到嵌入式网关下发的数据采集命令时才执行采集数据的任务,其它时间则进入休眠模式以降低电能消耗。
  传感器节点应用软件的设计过程相对简单,其程序流程。上电复位后首先初始化硬件,向嵌入式网关报告自己的ID信息,加入WSN之后就进入空闲模式。在此模式下,CPU停止运行,而SPI、USART、ADC、定时器/ 计数器、看门狗和中断系统继续工作。诸如定时器溢出与USART传输完成等内外部中断都可以唤醒MCU[5]。因此,当接收到嵌入式网关的数据采集命令后,USART接收中断会将MCU唤醒,即刻采集大气污染物数据,再通过ZigBee通信模块将其传输至嵌入式网关。
  4.2 嵌入式网关软件
  基于S3C2440A微处理运行Linux操作系统的嵌入式系统,其软件部分包括启动引导程序、操作系统内核、根文件系统、设备驱动程序和应用程序,前3部分是系统运行的基础部分,目前已有相对较为成熟的版本出现,只需要针对具体硬件平台进行修改、裁减即可完成移植工作,不必重新开发。
  4.2.1 驱动程序
  驱动程序是应用程序和实际设备之间的一个软件层[6]。分为字符设备驱动程序、块设备驱动程序和网络驱动程序。大气环境监测系统中的传感器都是简单的硬件设备,因此,全部被抽象为字符设备。字符设备驱动程序完成的主要工作是初始化硬件设备、添加和删除设备结构体,申请和释放设备号以及填充file_operations结构体。file_operations结构体用来建立设备编号与驱动程序操作的连接,实现该结构体中的read()、write()、ioctl()等函数是驱动程序设计的主题工作。
  传感器设备驱动程序所实现的只是最重要的设备方法,比如SHT11和CO2的file_operations结构被初始化为如下形式:
  4.2.2 应用程序
  嵌入式网关应用程序主要包括两个线程和一个中断服务程序,其执行流程。上电后,首先进入main函数(主线程)初始化并设置系统参数,调用signal函数设置SIGALRM信号的信号处理程序用以完成嵌入式网关与监测中心的TCP/IP通信任务,然后设置定时器,再调用pthread_create函数创建Data_Collection线程负责数据采集任务,之后运行基于事件驱动的Qt程序,在这段代码中将程序控制权交给用户,用户通过操作界面可以设置嵌入式网关系统参数或查看实时采集的环境数据。
  4.3 大气环境监测中心软件
  使用Access2007创建大气环境信息数据库,利用visual c++提供的ADO(ActiveX Data Object)访问数据库,实现环境数据分析处理、越限报警和数据显示查询等功能。当键入主键值(ID)时,程序访问access数据库进行查询,并显示出该ID对应的各字段数据值;还可以时间为横轴,参数值为纵轴显示某一时间段的变化曲线。
  5 结论
  系统综合测试表明,环境监测网络中的传感器网络节点可按照设计要求采集数据,并能正确接收、执行嵌入式网关下发的各种命令;嵌入式网关可实现WSN自组网功能,并支持传感器节点动态加入或离开网络,且人机界面简单易用;大气环境监测中心可显示环境信息历史数据和变化曲线,支持各种查询。传感器网络节点、嵌入式网关和监测中心的数据通信良好,可协同完成特定区域的大气环境监测网络化任务。