异构网络下空气质量监测系统的设计与实现

2014-04-03 02:24,2
自动化仪表 2014年7期
关键词:服务器端网关嵌入式

,2

(华东理工大学自动化系1,上海 200237;化工过程先进控制与优化技术教育部重点实验室2,上海 200237)

0 引言

随着物联网[1]、泛在网的蓬勃发展,如何实现异构网络之间的有效融合,成为物联网、泛在网发展的关键性问题。异构网络融合就是将各种不同通信模式连接在一起、实现不同模式通信设备之间的互联互通[2]。异构网络下空气质量监测系统的设计与实现,从属于物理网及泛在网实践应用研究的一部分,具有一定的实践意义。

本文在空气质量成为社会热点的背景下,在多种无线接入技术[3]蓬勃发展的基础上,提出了基于异构网络融合构建空气质量监测系统。分别从硬件和软件方面进行研究,主要对空气中CO2浓度、CO浓度、温度及湿度进行分析,阐述了空气质量检测终端、嵌入式无线网关和上位机监测软件具体实现过程。

1 系统总体设计

1.1 现场数据采集网络

由于空气质量数据的采集和地理环境具有不确定性,而且对空气质量的检测也具有长期性,因此,现场数据采集、布线、能耗及可靠性需要首先得到满足。此外,从经济上考虑,我们尽量选择成本低且能较好完成检测任务的技术。鉴于此,选用了ZigBee技术。ZigBee技术[4]具有以下特点。

① 无线传输:可以省去布线的麻烦,节约成本。

② 网络时延短:一般从睡眠切换为工作状态只需15 ms,节点连接入网络只需30 ms。相比较,WiFi需要3 s,而蓝牙需要3~10 s。

③ 模块功耗低:配备10 Ah电池的ZigBee水表,可工作8年。

④ 可靠性好:采用碰撞避免机制,避免了发送数据时的竞争和冲突。

⑤ 成本低:ZigBee模块工作于2.4 GHz全球免费频段,只需要支付前期模块费用,不用支付以后使用的费用。

显然,ZigBee技术非常符合我们所提出的现场数据采集的要求,采用ZigBee技术构建现场无线传感网络进行现场数据的采集及发送,就可以解决布线、供能、实时性、可靠性及成本问题,以应对不同的地理环境。

1.2 远程监测网络

考虑到ZigBee网络中的节点处理能力有限,需要利用外部网络中的资源对监测数据进行更复杂的处理;同时,其他网络用户也需要对ZigBee网络进行访问,以得到监测区域的空气质量信息。考虑到WiFi技术普遍受到移动终端的支持,高速率、频带免收费、投资低,且易于与其他网络融合构建更大的异构网络,符合网络向泛在网发展的趋势。因此,采用WiFi技术构建检测系统的外部网络,完成对现场采集数据的处理与显示。

1.3 系统网络拓扑

空气质量监测系统由若干ZigBee检测终端、嵌入式无线网关及远程监控终端组成。ZigBee检测终端完成现场数据的采集及向嵌入式无线网关发送;嵌入式无线网关构成ZigBee网络与WiFi网络之间的桥梁[5];远程监控终端从无线网关接收数据,在Qt界面上以柱状图的形式直观显示现场空气质量。系统网络拓扑图如图1所示。

图1 系统网络拓扑图

2 系统硬件设计

2.1 数据采集ZigBee终端设计

数据采集ZigBee终端由CC2530EM核心板模块、传感器模块、LED指示电路、电源电路等组成,完成现场空气质量数据的采集及发送。

CC2530EM核心板模块, 采用德州仪器(TI)的ZigBee射频芯片CC2530-F256,片上集成高性能、低功耗8051内核、12 bit ADC、2个USART以及DMA功能等,支持ZigBee 2007/Pro协议栈。

CO2传感器选用的是韩国SOHA公司进口的双光束红外二氧化碳传感器模块,SH-300-N量程为0~3 000×10-6,与CC2530EM核心板模块的P0.0口连接。

CO传感器选用的是由日本NEMOTO公司生产的型号为NE-CO-BL的一氧化碳电化学传感器,与CC2530EM核心板模块的P0.1口连接。

空气质量传感器是一款对空气中的多种有毒或可燃气体都具有一定的灵敏性的半导体气体传感器,其型号为QS-01,与CC2530EM核心板模块的P0.2口连接。

湿度传感器选用的是美国Honeywell公司生产的集成湿度传感器,其型号为H- 4000-003,量程为0~100%RH,与CC2530EM核心板模块的P0.3口连接。

温度传感器选用的是美国Dallas半导体公司生产的,型号为DS18B20的数字式温度传感器。传感器测量范围为-55~+125 ℃,精度为±0.5 K,与CC2530EM核心板模块的P0.5口连接。CC2530EM核心板模块电路如图2所示。

图2 CC2530EM核心板模块电路图

2.2 嵌入式无线网关硬件设计

嵌入式无线网关硬件设计图如图3所示。

图3 嵌入式无线网关硬件设计图

嵌入式无线网关可以看成是衔接ZigBee网络与WiFi网络的桥梁。它以S3C6410嵌入式微处理器为中心,由CC2530 ZigBee收发模块、雷凌WiFi模块及触摸显示屏等共同组成。其中,S3C6410嵌入式微处理器完成数据的转发、协议转换、任务调度、设备管理及界面显示等任务。 CC2530 ZigBee收发模块主要完成ZigBee终端的数据接收。雷凌WiFi模块具备软接入点AP(access point)的功能,可以将嵌入式无线网关切换至AP模式[6],通过WiFi网络将数据发送到远处监控终端[7]。触摸显示屏可以直观显示空气质量状况,从而可以在空气质量状态不好的情况下迅速采取必要的措施。

3 系统软件设计

3.1 WiFi驱动移植

由于本文设计的系统要使用WiFi模块,但是Linux内核本身并不提供该驱动,那么要先进行WiFi驱动移植,并下载最新的WiFi驱动,在虚拟机下编译生成能够在OK6410开发板下安装的模块文件。

使用飞凌提供的Linux-3.0.1内核源码,解压放在指定的目录下面,并且修改其Makefile文件,重新指定编译器及目标平台;然后在该目录下执行make menuconfig命令,指定以模块的形式加载驱动在Device Drivers-->Network Device Support-->Wireless LAN下,将Ralink Driver Support选为M。重新编译内核,生成zImage,通过bootloader烧写到开发板的Nandflash中[8]。

3.2 Qt下 UDP Socket编程

3.2.1 Qt介绍及应用

Qt是一个跨平台的C++图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形用户界面所需的所用功能,并且很容易扩展允许组件编程。

为了给用户呈现良好的操作界面,需要移植Qt到嵌入式无线网关和远程监控终端。嵌入式无线网关下Qt程序实现从协调器中读取数据、在Qt界面中显示并且转发到远程监控终端。远程终端Qt程序实现从无线网关接收数据并且在Qt界面显示[9]。

在Qt中,提供了QUdpSocket类来进行用户数据报协议[10](user datagram protocol,UDP)数据报的发送和接收。网关向远程监控终端发送数据报可以看做客户端,而远程监控终端可以看做服务端。Qt程序运行后,客户端从协调器获得有效数据,向广播地址和指定的端口号广播要发送的数据,而服务器端监听广播地址和相应的端口号。当有数据到来时,就接收数据并且通过检验码校验数据是否正确。下面分别从服务器端Qt程序和客户端Qt分析WiFi网络上的数据收发过程。

3.2.2 主要功能函数介绍

① connect( )函数

原型:bool QObject::connect(const QObject * sender,const char * signal,constQObject * receiver,const char * member)

功能:信号发送者sender对象中的信号signal与接收者receiver中的member槽函数联系起来。当指定信号signal时,必须使用宏SIGNAL( );当指定槽函数时,必须使用宏SLOT( )。如果发送者和接收者属于一个对象,那么在connect调用中接收者可以忽略。

② bind( )函数

原型:bool QUdpSocket::bind (const QHostAddress & address, quint16 port, BindMode mode)

功能:将套接字绑定到指定的IP地址和端口号,当UDP数据包到来时触发readyRead信息。

③ writeDatagram( )函数

原型:qint64 QUdpSocket::writeDatagram (const QByteArray & datagram, const QHostAddress & host, quint16 port)

功能:向指定IP的端口号写入数据。写入成功,则返回写入的数据长度;失败,则返回-1。

3.3 UDP协议及Socket网络编程

UDP主要用来支持需要在计算机之间传输数据的网络应用。UDP协议与TCP(传输控制协议)协议一样,位于IP(网际协议)协议的顶层,都属于传输层协议。UDP是一个面向数据报和无连接的简单传输层协议。它不像TCP那样通过握手过程建立服务器与客户端的连接才可以工作,避免占用大量的系统开销,使速度受到严重的影响。

Linux系统是通过套接字结构来进行网络编程的,应用程序通过对套接字的几个函数调用,会返回一个用于通信的套接字描述符。Linux应用程序在进行任何形式的I/O操作时,程序实际上是在读写一个文件描述符。因此,Linux下的套接字编程,可以看成是对普通文件描述符的操作,这些操作与被使用的硬件平台无关,这是Linux设备无关性的优点。

3.4 客户端程序

客户端程序分析如下。

① 使用第三方写的qextserialport类,完成串口参数设置以及打开,主要使用下面4个文件。

qextserialbase.cpp和qextserialbase.h以及posix_qextserialport.cpp和posix_qextserial.h。

串口设置程序如下。

myCom = new Posix_QextSerialPort("/dev/ttySAC3",

QextSerialBase::Polling);

myCom ->open(QIODevice::ReadWrite);

//以读写方式打开串口

myCom->setBaudRate(BAUD9600);

//波特率设置为9 600 bit/s

myCom->setDataBits(DATA_8);

//数据位设置为8位

myCom->setParity(PAR_NONE);

//奇偶校验设置为无校验

myCom->setStopBits(STOP_1);

//停止位设置为1位

myCom->setFlowControl(FLOW_OFF);

//数据流控制设置为无数据流

myCom->setTimeout(200);

② UDP Socket定义使用QUdpSocket类

udpSocket=new QUdpSocket(this);

③ 定时读取串口使用connect 函数,在程序中,定时器每次定时时间到就触发timeout信号,然后去执行关联的读取串口的槽函数。

④ 客户端使用writeDatagram函数向服务器端发送数据。

客户端流程图如图4所示。

图4 客户端程序流程图

3.5 服务器端程序

服务器端流程图如图5所示。

图5 服务器端流程图

服务器端程序分析如下。

① 使用bind函数将套接字绑定到客户端指定的IP地址和端口,当UDP报文到达就会触发readyRead信号。然后使用信号与槽函数connect,当readyRead信号触发,便执行读取数据的槽函数。

② 按照数据格式,经过处理,提取出CO浓度、CO2浓度、空气质量、温度、湿度数据,在Qt界面显示。

4 结束语

本文设计的空气质量监控系统,采用ZigBee技术组成现场数据采集,WiFi技术完成数据向监控终端发送。在硬件方面设计了嵌入式网关,构建了异构网络间的桥梁。在软件方面,实现了ZigBee协议数据包与TCP/IP协议包数据转换,并且完成数据处理与在Qt用户界面显示。系统完成了ZigBee网络与WiFi网络融合,实现了异构网络互连互通,在一定程度上为构建泛在传感网提供了参考。整个系统具有功耗低、移动性强、人机界面美观、复杂度低等优点,且空气质量与人体健康息息相关,因此该系统应用前景广阔。

[1] 孙其博,刘杰,黎羴,等.物联网概念、架构与关键技术研究综述[J].北京邮电大学学报:自然科学版,2010,33(3):2-7.

[2] 黄川,郑宝玉.多无线电协作技术与异构网络融合[J].中兴通迅技术,2008,14(3):27-31.

[3] 张方奎,张春业.短距离无线通信技术及其融合发展研究[J].电测与仪表,2007,44(10):48-52.

[4] Lee J S,Su Y W,Shen C C.A comparative study of wireless protocols:bluetooth,UWB,ZigBee,and Wi-Fi[C]∥The 33rd Annual Conference of the IEEE Industrial Electronics Society,2007:46-51.

[5] 李佳,谢琦,王庆华.基于网关的ZigBee网络与Internet互联框架[J].计算机工程与设计,2012,33(9):2-4.

[6] 刘懿.室内无线接入点设计与实现[D].成都:西南交通大学,2008.

[7] 王春,张良栋,孙国祥,等.基于ZigBee的焊接环境有毒气体监测系统[J].化工自动化及仪表,2011,38(12):1479-1480.

[8] 范艳开.基于ARM的嵌入式Linux操作系统移植[D].西安:西北工业大学,2005.

[9] 殷松迁,郭培源,王建华.基于嵌入式及ZigBee技术的居室环境监测系统[J].电子技术应用,2012,38(8):24-25.

[10]刘畅,彭楚武.Linux下的UDP协议编程[J].仪表技术,2006(1):62-63.

猜你喜欢
服务器端网关嵌入式
Focal&Naim同框发布1000系列嵌入式扬声器及全新Uniti Atmos流媒体一体机
Linux环境下基于Socket的数据传输软件设计
TS系列红外传感器在嵌入式控制系统中的应用
信号系统网关设备的优化
天地一体化网络地面软网关技术及其应用
搭建基于Qt的嵌入式开发平台
基于ETC在线支付网关的停车场收费系统设计
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用