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