一种气象数据采集传输系统的设计

发布者:温馨阳光最新更新时间:2011-07-07 手机看文章 扫描二维码
随时随地手机看文章

近年来,我国气象灾害频发,严重影响人民群众的生活,尤其在交通方面有着较大的影响。依靠人工观测来采集气象数据不仅时效性差,而且无法适应偏僻、恶劣的环境条件,不能将采集到的各区域数据实时上传给决策控制中心,因而有必要研制一种便携、低功耗、数据通信稳定的气象数据采集系统。
    随着传感器向着智能化、网络化方向的发展,无线网络技术在自动气象数据采集中得到了应用。利用ZigBee技术近距离、组网能力强、成本低及可靠性高的特点,使得气象站中传感器网络部署的有效时间得到延长,增强了网络的实用性,测量节点具有更长的生命周期。ZigBee技术自有的无线电标准,以接力的方式在多个测量节点之间相互协调实现通信,通信效率非常高,满足了交通气象参数采集传输的需要[1]。同时随着移动通信发展的宽带化、数据化、多应用化,手机作用的领域已经扩展到人们生活的很多方面。因此,将手机移动监测和ZigBee无线传输网络结合起来,并利用手机所具有的GPRS通信能力研制气象数据采集传输系统具有一定的意义。
1 系统设计与实现原理
    本设计利用手机、ZigBee无线传输网络、气象数据采集检测等设备开发出一个能实现气象数据采集、存储并实时上传数据到上位服务器端的数据采集系统。其中手机负责接收来自ZigBee网络的数据,并对数据做出相应的判断和处理;ZigBee无线传输网络负责手机和数据采集检测部分的通信;气象数据采集检测部分负责所在区域内气象参数的检测、分析及处理。整个系统工作原理如图1所示。

    系统的手机开发平台采用MTK架构套件,它集成了32位嵌入式ARM7处理器,支持GPRS、GSM消息传输,并具有128个引脚外部扩展接口,可以连接各种功能外设,还支持用J2ME Java来控制硬件。通过在此手机平台嵌入无线ZigBee射频模块,实现系统主控制器和各网络子节点的数据采集传输。
    数据采集系统的硬件结构图如图2所示。

    无线网络化传感器RFD(精简功能器件)模块采集数据信息,并通过ZigBee通信协议传输到FFD(全功能器件)模块;FFD模块将数据信息做简单处理、编码打包后通过串口将数据上传到手机平台;手机数据处理功能程序对气象数据进行进一步的补充描述,在手机上实现气象参数的显示、存储,并可通过手机的GPRS功能模块以文本形式将数据实时上传到服务器端。服务器端接收到现场数据进行进一步的处理后,提供决策支持,采取预防措施。
    所采集的气象数据包括温度、湿度、风速、降水、能见度、大气压力等。
2 系统硬件设计
    系统的硬件主要由基于CC2430的数据采集模块和手机平台两部分组成。手机平台要实现的硬件设计主要有:手机与CC2430的串口通信电路及GPIO电源控制设计;数据采集检测部分主要由CC2430芯片、传感器及外围部件构成。
2.1 数据采集模块设计
    数据采集模块使用CC2430配合气象传感器实现数据的采集、传输,硬件连接图如图3所示。

    CC2430节点模块主要由CC2430芯片和传感器构成。ZigBee是一种基于LR-WPAN的双向无线通信技术标准。可以工作在2.4 GHz的ISM频段,数据速率可达到250  kb/s。CC2430系统芯片就是以ZigBee技术为基础的2.4 GHz射频系统单芯片。以51单片机为核心,集成了收发通道,具有模数转换器、21个可用数字IO接口,可以与多种参数传感器进行直接连接。CC2430工作电流损耗为27 mA,适合本系统的工作低功耗要求。CC2430将气象传感器采集的数据经模数转换及数据处理后,将结果通过ZigBee无线传感器网络发送出去,以供手机接收使用。
    CC2430气象数据采集传输模块如图4所示。

2.2 串口通信接口设计
    需要实现手机与CC2430模块的数据通信。将CC2430制作为符合标准的扩展板,手机通过串口2与CC2430扩展板连接。应用的基本框架如图5所示。在开发手机的UART的发送(UTXD)和接收脚(URXD),分别与CC2430的RXD、TXD引脚连接,构成两者之间的数据传输。

3 平台界面软件设计与实现
    MTK手机平台可使用C语言、JAVA语言进行开发,其中使用JAVA语言开发的软件具有通用性强、方便移植、开发周期短等优点。本文平台界面设计采用Sun J2ME Wireless Toolkit(WTK)开发工具配合EclipseME开发组件来设计。将实现一个基于J2ME/MIDP的客户前端,利用GPRS建立数据传输网络的气象数据采集系统。
3.1 界面程序设计分析
    本设计的客户端程序整体上参照MVC模式设计,将界面、数据、控制分为不同的模块,实现的主要功能有参数设置、串口监视、GPRS数据上传和参数监测界面四大部分,它们分别基于J2ME不同包类库和支持JNI操作的包派生而成。
    (1)参数设置功能部分: 用来实现手机平台功能的设置管理,如设置GPRS参数、设置系统时间、背光显示、ZigBee芯片可用信道等,可将用户设置的信息使用MIDP中的RMS系统来保存在本地数据库中。这一功能部分基于LIST部件类扩展设计,其中的参数类型为EXCLUSIVE,即每次只能选择列表中的单个项目。
  (2)串口监视部分: 当界面切换到气象数据采集界面时,通过任务接口定时读写串口,查看CC2430是否有数据上传,并将数据存入数据队列中,供显示界面调用。实现这部分功能需要实现程序线程Thread,Thread有两种方法来创建线程,一个是定义继承Thread类的子类,另一个是实现Runnable接口。本部分中主要使用实现Runnable接口这种方法。
  (3) GPRS数据上传部分: 将CC2430上传来的数据以文本格式或其他形式发送到上一层的决策控制中心。SUNW公司对MMS和SMS提供了JSR205和JSR102支持。其中定义的框架包含无线消息的可用API,实现了无线通信的高级抽象,将传输层完全隐藏,方便了设计。
    (4)参数监测界面: 用来显示传感器采集到的气象参数数据,显示可以配以文本、图片等信息,需要显示的气象参数有温度、湿度、风速、能见度、降水量、雪深、大气压等。界面采用Canvas类编程设计。此界面还可根据要求添加报警等预警功能,如降水量达到某一预定值,则给予声音、文字等预警显示。
3.2 设计与实现
    J2ME的MIDP(Mobile Information Device Profile)包含的系统架构和Java类为小型、资源受限的移动信息设备(MID)创建了一个开放的应用程序环境。MIDP应用程序中的基本执行单元叫做 “MIDlet”,它必须继承自javax.microedition.midlet.MIDlet类并实现类中包含的三个抽象方法:startApp(),pauseApp(),destroyApp()。在J2ME手机软件开发中,程序必须至少包含一个MIDlet类,通常初始化用户界面的程序应该放在startApp()中执行 [2]。
3.2.1 网络连接部分设计
    J2ME的连接及网络API位于包javax.microedition.io中,这些API接口包含HttpConnection, SocketConection, InputConnection,OutputConnection,ServerSocketConnection等,它们是在通用连接框架上的扩展实现。Connection类是最基本的通用连接类型,只定义了close()一个方法用于关闭连接,而创建连接的操作使用Connector类的open()方法实现。
    本设计示例中使用的HTTP协议进行网络通信,HttpConn线程要完成如下工作。
    首先,在界面程序的初始化时,将HttpConn线程实例化,并设置线程处于休眠等待状态。考虑到连接上层需要花费一定的等待时间,可用窗体Form和标尺Guage设置一个等待连接界面,之后使用notify()唤醒线程,同时读取预先设置好的URL地址,连接上层服务器。如果连接超时或没有收到上层返回的HttpConnection.HTTP_OK响应,则向用户报告“连接超时”错误。若连接成功,则启动定时器读取数据,装载之后准备将数据上传。上传工作完毕后,线程再次进入休眠状态,直到下一次再用notify()唤醒HttpConn线程[3]。GPRS网络连接的流程如图6所示。

3.2.2 参数监测显示部分设计
    这部分实现将采集的气象信息数据显示,处于此界面时,程序定时从数据队列中读取需要显示的部分,可使用Timer与TimerTask类来设计完成这部分功能。Timer类是一个定时器,可以设定成按指定的时间周期或时间来产生信号,TimerTask类代表一个可以被定时器进行时间控制的任务[4]。这样将这两个类产生关联,在产生信号的同时,连带执行TimerTask所定义的工作。本文设计示例中编写的MeterDispTask类同时继承了Canvas、TimerTask类,并在run()方法中实现从数据队列读取数据并调用数据显示功能。通过Timer的schedule()方法设定数据刷新的时间周期,并将它与MeterDispTask关联,一旦设定的时间到,则MeterDispTask中的run()方法就被执行,界面可以刷新显示气象数据信息。Canvas类为低级用户界面,需要实现paint()方法。
    数据采集系统的一些参数预设信息需要保留,因此可采用J2ME中提供的记录管理系统RMS(Record Management System)来处理数据参数的持久化问题。RMS为一个小型的数据库管理系统,使用类似表格的简单形式组织信息,并存储起来形成持久化存储,以供应用程序在以后重新启动后继续调用[5]。记录存储系统类在javax.microedition.rms包中,RecordStore类中包含相关应用的方法。界面应用程序在WTK下的仿真器中运行。经启动画面后进入主界面,可以选择相应功能菜单进入。
    本系统采用J2ME手机平台和CC2430无线通信模块,针对气象要素数据采集的需求,实现了数据采集通信系统的软硬件的设计。通过手机和ZigBee技术,可以灵活方便地实现对区域内气象参数的采集和传输。在数据采集过程中采用了无线传感器网络技术以及GPRS远程无线移动传输技术,避免了传统气象数据采集布线复杂问题。同时设计中选用的CC2430芯片具有性能高、功耗低的特点,简化了外围接口电路的设计。在测试中,数据可以稳定可靠的传输,能满足应用场合的使用要求。本系统不仅可以应用于气象数据观测中,通过增加使用不同的传感器,也能应用于环境、智能家居等领域。
参考文献
[1] 于宏毅,李鸥.无线传感器网络理论、技术与实现[M].北京:国防工业出版社,2008:2-3.
[2] 卢军,岳希,周辉. J2ME程序设计[M].北京:中国水利水电出版社, 2009:75-90.
[3] 吴考琴.JAVA手机在污染源数据采集中的应用研究.微计算机信息[J].2009,26(5):93-95.
[4] 牟伶俐,刘钢.基于JAVA手机的野外农田数据采集与传 输系统设计[J].农业工程学报,2006,22(11):165-169.
[5] 刘鹏辉.基于GSM和J2ME的无线多点温湿度监控系统的设计与实现[J].激光与红外,2009,39(12):1333-1336.

引用地址:一种气象数据采集传输系统的设计

上一篇:具有学习功能的遥控机器人编码芯片的ASIC设计
下一篇:一款自动太阳能热水器温控设计

热门资源推荐
热门放大器推荐
    Error

    An error occurred.

    Sorry, the page you are looking for is currently unavailable.
    Please try again later.

    If you are the system administrator of this resource then you should check the error log for details.

    Faithfully yours, OpenResty.

小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved