一種氣象數(shù)據(jù)采集傳輸系統(tǒng)的設(shè)計(jì)
近年來,我國氣象災(zāi)害頻發(fā),嚴(yán)重影響人民群眾的生活,尤其在交通方面有著較大的影響。依靠人工觀測來采集氣象數(shù)據(jù)不僅時(shí)效性差,而且無法適應(yīng)偏僻、惡劣的環(huán)境條件,不能將采集到的各區(qū)域數(shù)據(jù)實(shí)時(shí)上傳給決策控制中心,因而有必要研制一種便攜、低功耗、數(shù)據(jù)通信穩(wěn)定的氣象數(shù)據(jù)采集系統(tǒng)。
隨著傳感器向著智能化、網(wǎng)絡(luò)化方向的發(fā)展,無線網(wǎng)絡(luò)技術(shù)在自動(dòng)氣象數(shù)據(jù)采集中得到了應(yīng)用。利用ZigBee技術(shù)近距離、組網(wǎng)能力強(qiáng)、成本低及可靠性高的特點(diǎn),使得氣象站中傳感器網(wǎng)絡(luò)部署的有效時(shí)間得到延長,增強(qiáng)了網(wǎng)絡(luò)的實(shí)用性,測量節(jié)點(diǎn)具有更長的生命周期。ZigBee技術(shù)自有的無線電標(biāo)準(zhǔn),以接力的方式在多個(gè)測量節(jié)點(diǎn)之間相互協(xié)調(diào)實(shí)現(xiàn)通信,通信效率非常高,滿足了交通氣象參數(shù)采集傳輸?shù)男枰猍1]。同時(shí)隨著移動(dòng)通信發(fā)展的寬帶化、數(shù)據(jù)化、多應(yīng)用化,手機(jī)作用的領(lǐng)域已經(jīng)擴(kuò)展到人們生活的很多方面。因此,將手機(jī)移動(dòng)監(jiān)測和ZigBee無線傳輸網(wǎng)絡(luò)結(jié)合起來,并利用手機(jī)所具有的GPRS通信能力研制氣象數(shù)據(jù)采集傳輸系統(tǒng)具有一定的意義。
1 系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)原理
本設(shè)計(jì)利用手機(jī)、ZigBee無線傳輸網(wǎng)絡(luò)、氣象數(shù)據(jù)采集檢測等設(shè)備開發(fā)出一個(gè)能實(shí)現(xiàn)氣象數(shù)據(jù)采集、存儲(chǔ)并實(shí)時(shí)上傳數(shù)據(jù)到上位服務(wù)器端的數(shù)據(jù)采集系統(tǒng)。其中手機(jī)負(fù)責(zé)接收來自ZigBee網(wǎng)絡(luò)的數(shù)據(jù),并對(duì)數(shù)據(jù)做出相應(yīng)的判斷和處理;ZigBee無線傳輸網(wǎng)絡(luò)負(fù)責(zé)手機(jī)和數(shù)據(jù)采集檢測部分的通信;氣象數(shù)據(jù)采集檢測部分負(fù)責(zé)所在區(qū)域內(nèi)氣象參數(shù)的檢測、分析及處理。整個(gè)系統(tǒng)工作原理如圖1所示。
系統(tǒng)的手機(jī)開發(fā)平臺(tái)采用MTK架構(gòu)套件,它集成了32位嵌入式ARM7處理器,支持GPRS、GSM消息傳輸,并具有128個(gè)引腳外部擴(kuò)展接口,可以連接各種功能外設(shè),還支持用J2ME Java來控制硬件。通過在此手機(jī)平臺(tái)嵌入無線ZigBee射頻模塊,實(shí)現(xiàn)系統(tǒng)主控制器和各網(wǎng)絡(luò)子節(jié)點(diǎn)的數(shù)據(jù)采集傳輸。
數(shù)據(jù)采集系統(tǒng)的硬件結(jié)構(gòu)圖如圖2所示。
無線網(wǎng)絡(luò)化傳感器RFD(精簡功能器件)模塊采集數(shù)據(jù)信息,并通過ZigBee通信協(xié)議傳輸?shù)紽FD(全功能器件)模塊;FFD模塊將數(shù)據(jù)信息做簡單處理、編碼打包后通過串口將數(shù)據(jù)上傳到手機(jī)平臺(tái);手機(jī)數(shù)據(jù)處理功能程序?qū)庀髷?shù)據(jù)進(jìn)行進(jìn)一步的補(bǔ)充描述,在手機(jī)上實(shí)現(xiàn)氣象參數(shù)的顯示、存儲(chǔ),并可通過手機(jī)的GPRS功能模塊以文本形式將數(shù)據(jù)實(shí)時(shí)上傳到服務(wù)器端。服務(wù)器端接收到現(xiàn)場數(shù)據(jù)進(jìn)行進(jìn)一步的處理后,提供決策支持,采取預(yù)防措施。
所采集的氣象數(shù)據(jù)包括溫度、濕度、風(fēng)速、降水、能見度、大氣壓力等。
2 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)的硬件主要由基于CC2430的數(shù)據(jù)采集模塊和手機(jī)平臺(tái)兩部分組成。手機(jī)平臺(tái)要實(shí)現(xiàn)的硬件設(shè)計(jì)主要有:手機(jī)與CC2430的串口通信電路及GPIO電源控制設(shè)計(jì);數(shù)據(jù)采集檢測部分主要由CC2430芯片、傳感器及外圍部件構(gòu)成。
2.1 數(shù)據(jù)采集模塊設(shè)計(jì)
數(shù)據(jù)采集模塊使用CC2430配合氣象傳感器實(shí)現(xiàn)數(shù)據(jù)的采集、傳輸,硬件連接圖如圖3所示。
CC2430節(jié)點(diǎn)模塊主要由CC2430芯片和傳感器構(gòu)成。ZigBee是一種基于LR-WPAN的雙向無線通信技術(shù)標(biāo)準(zhǔn)??梢怨ぷ髟?.4 GHz的ISM頻段,數(shù)據(jù)速率可達(dá)到250 kb/s。CC2430系統(tǒng)芯片就是以ZigBee技術(shù)為基礎(chǔ)的2.4 GHz射頻系統(tǒng)單芯片。以51單片機(jī)為核心,集成了收發(fā)通道,具有模數(shù)轉(zhuǎn)換器、21個(gè)可用數(shù)字IO接口,可以與多種參數(shù)傳感器進(jìn)行直接連接。CC2430工作電流損耗為27 mA,適合本系統(tǒng)的工作低功耗要求。CC2430將氣象傳感器采集的數(shù)據(jù)經(jīng)模數(shù)轉(zhuǎn)換及數(shù)據(jù)處理后,將結(jié)果通過ZigBee無線傳感器網(wǎng)絡(luò)發(fā)送出去,以供手機(jī)接收使用。
CC2430氣象數(shù)據(jù)采集傳輸模塊如圖4所示。
2.2 串口通信接口設(shè)計(jì)
需要實(shí)現(xiàn)手機(jī)與CC2430模塊的數(shù)據(jù)通信。將CC2430制作為符合標(biāo)準(zhǔn)的擴(kuò)展板,手機(jī)通過串口2與CC2430擴(kuò)展板連接。應(yīng)用的基本框架如圖5所示。在開發(fā)手機(jī)的UART的發(fā)送(UTXD)和接收腳(URXD),分別與CC2430的RXD、TXD引腳連接,構(gòu)成兩者之間的數(shù)據(jù)傳輸。
3 平臺(tái)界面軟件設(shè)計(jì)與實(shí)現(xiàn)
MTK手機(jī)平臺(tái)可使用C語言、JAVA語言進(jìn)行開發(fā),其中使用JAVA語言開發(fā)的軟件具有通用性強(qiáng)、方便移植、開發(fā)周期短等優(yōu)點(diǎn)。本文平臺(tái)界面設(shè)計(jì)采用Sun J2ME Wireless Toolkit(WTK)開發(fā)工具配合EclipseME開發(fā)組件來設(shè)計(jì)。將實(shí)現(xiàn)一個(gè)基于J2ME/MIDP的客戶前端,利用GPRS建立數(shù)據(jù)傳輸網(wǎng)絡(luò)的氣象數(shù)據(jù)采集系統(tǒng)。
3.1 界面程序設(shè)計(jì)分析
本設(shè)計(jì)的客戶端程序整體上參照MVC模式設(shè)計(jì),將界面、數(shù)據(jù)、控制分為不同的模塊,實(shí)現(xiàn)的主要功能有參數(shù)設(shè)置、串口監(jiān)視、GPRS數(shù)據(jù)上傳和參數(shù)監(jiān)測界面四大部分,它們分別基于J2ME不同包類庫和支持JNI操作的包派生而成。
(1)參數(shù)設(shè)置功能部分: 用來實(shí)現(xiàn)手機(jī)平臺(tái)功能的設(shè)置管理,如設(shè)置GPRS參數(shù)、設(shè)置系統(tǒng)時(shí)間、背光顯示、ZigBee芯片可用信道等,可將用戶設(shè)置的信息使用MIDP中的RMS系統(tǒng)來保存在本地?cái)?shù)據(jù)庫中。這一功能部分基于LIST部件類擴(kuò)展設(shè)計(jì),其中的參數(shù)類型為EXCLUSIVE,即每次只能選擇列表中的單個(gè)項(xiàng)目。
(2)串口監(jiān)視部分: 當(dāng)界面切換到氣象數(shù)據(jù)采集界面時(shí),通過任務(wù)接口定時(shí)讀寫串口,查看CC2430是否有數(shù)據(jù)上傳,并將數(shù)據(jù)存入數(shù)據(jù)隊(duì)列中,供顯示界面調(diào)用。實(shí)現(xiàn)這部分功能需要實(shí)現(xiàn)程序線程Thread,Thread有兩種方法來創(chuàng)建線程,一個(gè)是定義繼承Thread類的子類,另一個(gè)是實(shí)現(xiàn)Runnable接口。本部分中主要使用實(shí)現(xiàn)Runnable接口這種方法。
(3) GPRS數(shù)據(jù)上傳部分: 將CC2430上傳來的數(shù)據(jù)以文本格式或其他形式發(fā)送到上一層的決策控制中心。SUNW公司對(duì)MMS和SMS提供了JSR205和JSR102支持。其中定義的框架包含無線消息的可用API,實(shí)現(xiàn)了無線通信的高級(jí)抽象,將傳輸層完全隱藏,方便了設(shè)計(jì)。
(4)參數(shù)監(jiān)測界面: 用來顯示傳感器采集到的氣象參數(shù)數(shù)據(jù),顯示可以配以文本、圖片等信息,需要顯示的氣象參數(shù)有溫度、濕度、風(fēng)速、能見度、降水量、雪深、大氣壓等。界面采用Canvas類編程設(shè)計(jì)。此界面還可根據(jù)要求添加報(bào)警等預(yù)警功能,如降水量達(dá)到某一預(yù)定值,則給予聲音、文字等預(yù)警顯示。
3.2 設(shè)計(jì)與實(shí)現(xiàn)
J2ME的MIDP(Mobile Information Device Profile)包含的系統(tǒng)架構(gòu)和Java類為小型、資源受限的移動(dòng)信息設(shè)備(MID)創(chuàng)建了一個(gè)開放的應(yīng)用程序環(huán)境。MIDP應(yīng)用程序中的基本執(zhí)行單元叫做 “MIDlet”,它必須繼承自javax.microedition.midlet.MIDlet類并實(shí)現(xiàn)類中包含的三個(gè)抽象方法:startApp(),pauseApp(),destroyApp()。在J2ME手機(jī)軟件開發(fā)中,程序必須至少包含一個(gè)MIDlet類,通常初始化用戶界面的程序應(yīng)該放在startApp()中執(zhí)行 [2]。
3.2.1 網(wǎng)絡(luò)連接部分設(shè)計(jì)
J2ME的連接及網(wǎng)絡(luò)API位于包javax.microedition.io中,這些API接口包含HttpConnection, SocketConection, InputConnection,OutputConnection,ServerSocketConnection等,它們是在通用連接框架上的擴(kuò)展實(shí)現(xiàn)。Connection類是最基本的通用連接類型,只定義了close()一個(gè)方法用于關(guān)閉連接,而創(chuàng)建連接的操作使用Connector類的open()方法實(shí)現(xiàn)。
本設(shè)計(jì)示例中使用的HTTP協(xié)議進(jìn)行網(wǎng)絡(luò)通信,HttpConn線程要完成如下工作。
首先,在界面程序的初始化時(shí),將HttpConn線程實(shí)例化,并設(shè)置線程處于休眠等待狀態(tài)??紤]到連接上層需要花費(fèi)一定的等待時(shí)間,可用窗體Form和標(biāo)尺Guage設(shè)置一個(gè)等待連接界面,之后使用notify()喚醒線程,同時(shí)讀取預(yù)先設(shè)置好的URL地址,連接上層服務(wù)器。如果連接超時(shí)或沒有收到上層返回的HttpConnection.HTTP_OK響應(yīng),則向用戶報(bào)告“連接超時(shí)”錯(cuò)誤。若連接成功,則啟動(dòng)定時(shí)器讀取數(shù)據(jù),裝載之后準(zhǔn)備將數(shù)據(jù)上傳。上傳工作完畢后,線程再次進(jìn)入休眠狀態(tài),直到下一次再用notify()喚醒HttpConn線程[3]。GPRS網(wǎng)絡(luò)連接的流程如圖6所示。
3.2.2 參數(shù)監(jiān)測顯示部分設(shè)計(jì)
這部分實(shí)現(xiàn)將采集的氣象信息數(shù)據(jù)顯示,處于此界面時(shí),程序定時(shí)從數(shù)據(jù)隊(duì)列中讀取需要顯示的部分,可使用Timer與TimerTask類來設(shè)計(jì)完成這部分功能。Timer類是一個(gè)定時(shí)器,可以設(shè)定成按指定的時(shí)間周期或時(shí)間來產(chǎn)生信號(hào),TimerTask類代表一個(gè)可以被定時(shí)器進(jìn)行時(shí)間控制的任務(wù)[4]。這樣將這兩個(gè)類產(chǎn)生關(guān)聯(lián),在產(chǎn)生信號(hào)的同時(shí),連帶執(zhí)行TimerTask所定義的工作。本文設(shè)計(jì)示例中編寫的MeterDispTask類同時(shí)繼承了Canvas、TimerTask類,并在run()方法中實(shí)現(xiàn)從數(shù)據(jù)隊(duì)列讀取數(shù)據(jù)并調(diào)用數(shù)據(jù)顯示功能。通過Timer的schedule()方法設(shè)定數(shù)據(jù)刷新的時(shí)間周期,并將它與MeterDispTask關(guān)聯(lián),一旦設(shè)定的時(shí)間到,則MeterDispTask中的run()方法就被執(zhí)行,界面可以刷新顯示氣象數(shù)據(jù)信息。Canvas類為低級(jí)用戶界面,需要實(shí)現(xiàn)paint()方法。
數(shù)據(jù)采集系統(tǒng)的一些參數(shù)預(yù)設(shè)信息需要保留,因此可采用J2ME中提供的記錄管理系統(tǒng)RMS(Record Management System)來處理數(shù)據(jù)參數(shù)的持久化問題。RMS為一個(gè)小型的數(shù)據(jù)庫管理系統(tǒng),使用類似表格的簡單形式組織信息,并存儲(chǔ)起來形成持久化存儲(chǔ),以供應(yīng)用程序在以后重新啟動(dòng)后繼續(xù)調(diào)用[5]。記錄存儲(chǔ)系統(tǒng)類在javax.microedition.rms包中,RecordStore類中包含相關(guān)應(yīng)用的方法。界面應(yīng)用程序在WTK下的仿真器中運(yùn)行。經(jīng)啟動(dòng)畫面后進(jìn)入主界面,可以選擇相應(yīng)功能菜單進(jìn)入。
本系統(tǒng)采用J2ME手機(jī)平臺(tái)和CC2430無線通信模塊,針對(duì)氣象要素?cái)?shù)據(jù)采集的需求,實(shí)現(xiàn)了數(shù)據(jù)采集通信系統(tǒng)的軟硬件的設(shè)計(jì)。通過手機(jī)和ZigBee技術(shù),可以靈活方便地實(shí)現(xiàn)對(duì)區(qū)域內(nèi)氣象參數(shù)的采集和傳輸。在數(shù)據(jù)采集過程中采用了無線傳感器網(wǎng)絡(luò)技術(shù)以及GPRS遠(yuǎn)程無線移動(dòng)傳輸技術(shù),避免了傳統(tǒng)氣象數(shù)據(jù)采集布線復(fù)雜問題。同時(shí)設(shè)計(jì)中選用的CC2430芯片具有性能高、功耗低的特點(diǎn),簡化了外圍接口電路的設(shè)計(jì)。在測試中,數(shù)據(jù)可以穩(wěn)定可靠的傳輸,能滿足應(yīng)用場合的使用要求。本系統(tǒng)不僅可以應(yīng)用于氣象數(shù)據(jù)觀測中,通過增加使用不同的傳感器,也能應(yīng)用于環(huán)境、智能家居等領(lǐng)域。
參考文獻(xiàn)
[1] 于宏毅,李鷗.無線傳感器網(wǎng)絡(luò)理論、技術(shù)與實(shí)現(xiàn)[M].北京:國防工業(yè)出版社,2008:2-3.
[2] 盧軍,岳希,周輝. J2ME程序設(shè)計(jì)[M].北京:中國水利水電出版社, 2009:75-90.
[3] 吳考琴.JAVA手機(jī)在污染源數(shù)據(jù)采集中的應(yīng)用研究.微計(jì)算機(jī)信息[J].2009,26(5):93-95.
[4] 牟伶俐,劉鋼.基于JAVA手機(jī)的野外農(nóng)田數(shù)據(jù)采集與傳 輸系統(tǒng)設(shè)計(jì)[J].農(nóng)業(yè)工程學(xué)報(bào),2006,22(11):165-169.
[5] 劉鵬輝.基于GSM和J2ME的無線多點(diǎn)溫濕度監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].激光與紅外,2009,39(12):1333-1336.
評(píng)論