基于Android系統(tǒng)的自動氣象站設計_第1頁
基于Android系統(tǒng)的自動氣象站設計_第2頁
基于Android系統(tǒng)的自動氣象站設計_第3頁
基于Android系統(tǒng)的自動氣象站設計_第4頁
基于Android系統(tǒng)的自動氣象站設計_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

本科畢業(yè)設計說明書基于Android系統(tǒng)的自動氣象站THEAUTOMATICWEATHERSTATIONBASEDONANDROIDSYSTEM學院(部):電氣與信息工程學院專業(yè)班級:通信工程學生姓名:指導教師:教授第1章引言1.1項目背景從古至今,天氣以及氣溫的變化就與人們的日常生活息息相關,如今伴隨著人們生活水平的逐步提高、科學技術的高速發(fā)展,人們對于各種氣象信息的需求量越來越大、與之相應的要求也越來越高。同時,對重大活動日天氣、災害性的天氣的監(jiān)測及提前預報也提出了更高的要求。一線氣象觀測者為了使自己能夠減輕作業(yè)負擔,減少單調(diào)而重復的手動記錄氣象數(shù)據(jù)等勞動,同時也為了在時間、空間方面取得較高的觀測密度,獲得較高的觀測精度和觀測質(zhì)量,所以他們的當務之急就是盡快實現(xiàn)全自動化、智能化得氣象觀測,也即自動氣象站的建立。所謂自動氣象站,就是指按照工作需要而預先設定的各項技術要求,能夠自動地采集、傳輸和處理多種氣象要素值并能夠及時進行預警信息發(fā)布等的地面氣象觀測設備系統(tǒng)。并且自動氣象站能夠在電子儀器或計算機的自主控制下自動地進行氣象要素觀測、資料收集、信息傳輸和數(shù)據(jù)存儲等動作。傳統(tǒng)的氣象探測業(yè)務如果使用高效的地面觀測自動氣象站之后,就可以凸顯出以下的優(yōu)勢:1)能夠使氣象觀測的質(zhì)量大幅度提高;2)能夠使氣象觀測業(yè)務成本降低、觀測條件得到極大的改善;3)能夠在短時間和小空間的環(huán)境條件下大幅提高作業(yè)效率。1.2國內(nèi)外研究發(fā)展狀況1.2.1國外研究動態(tài)自從上世紀九十年代開始,許多發(fā)達國家開始積極投入研究和發(fā)展自動氣象站技術,并且相繼建立起了適合各自國家的綜合觀測業(yè)務和氣象監(jiān)測服務的自動觀測站網(wǎng)。大多數(shù)發(fā)達國家的大部分觀測項目實現(xiàn)了自動化。美國、意大利、德國、芬蘭等國家建立起了數(shù)量較多的自動氣象站,如美國使用的ASOS系統(tǒng);日本、韓國也逐步建立起了本國功能性較為良好的氣象自動化觀測系統(tǒng),如日本的AMEDAS系統(tǒng);法國使用的MITSRAL系統(tǒng)等。上述這些國家的自動氣象觀測系統(tǒng)的逐步建立和投入運行,為天氣預報與觀測、科學利用氣候資源和合理開發(fā)等眾多社會活動發(fā)揮了指導決策作用,并逐步完善了大量的氣象觀測資料。自動氣象站逐步起步,從剛開始起步發(fā)展至今,它的作用不可小覷。1.2.2國內(nèi)研究動態(tài)從1999年7月份開始,我國進口了由芬蘭VAISALA公司研究和批量生產(chǎn)的自動氣象觀測系統(tǒng),在此之前,我國沒有一套完整的氣象觀測設備,該套設備的引進并正式投入運行意味著我國的氣象自動觀測跨入一個嶄新的階段。之后的2000年1月1日我國自行研制生產(chǎn)的第一批自動氣象觀測設備開始正式投入到氣象觀測業(yè)務運行之中。目前經(jīng)過中國氣象局自動氣象產(chǎn)品審查合格的國內(nèi)廠家已經(jīng)有多個,他們生產(chǎn)的自動氣象設備如長春氣象儀器廠生產(chǎn)的DYYZ-II系列、北京華創(chuàng)升達高科技發(fā)展公司的CAWS-600系列、天津氣象儀器廠、廣東省氣象技術裝備中心生產(chǎn)的ZDZ-II型系列己經(jīng)在全國的氣象服務站廣泛應用。1.2.3自動氣象觀測設備的發(fā)展改革開放后,我國社會經(jīng)濟開始高速發(fā)展,各級政府部門、社會各行業(yè)在運籌決策各項活動、安排及制定一些政策時更加需要利用可靠的氣象信息因地制宜、趨利避害。我國地大物博,幅員遼闊,地形結(jié)構(gòu)復雜,地勢海拔等起伏大,地貌形式多樣,全國各地區(qū)的氣候差異非常明顯,各種氣象災害頻繁發(fā)生,并且呈現(xiàn)出突發(fā)性和多樣性的顯著特點。我國現(xiàn)有氣象站各站點之間的相距間隔比較大,氣象觀測的次數(shù)也不夠頻繁,但是重大天氣災害特別是暴雨、冰雹、大風等氣象災害主要發(fā)生在區(qū)域性中小范圍內(nèi),一般范圍為十公里到十幾公里內(nèi),但是當前技術條件下對它們的監(jiān)測還存在很大的難度。因此,加快投入建設我國地面觀測現(xiàn)代化、自動化已迫在眉睫。當今感測、電子、計算機和通信等科學技術的快速發(fā)展,為氣象站的設計和發(fā)展開辟了一條寬闊的道路。1.3本文研究的目的及意義近幾年來移動互聯(lián)網(wǎng)技術迅猛發(fā)展,與之相應的應用也越來越普及化、大眾化,從個人手機上網(wǎng)到辦公單位局域網(wǎng)再到國家廣域網(wǎng),網(wǎng)絡及各種入網(wǎng)終端逐漸成為當今社會的一種紐帶和工具。移動通信行業(yè)近年來如火如荼的發(fā)展,也推動了手機等移動終端軟件的快速發(fā)展和更新,例如Android系統(tǒng)的設備已經(jīng)占據(jù)了當今手機市場份額的一半以上。Android系統(tǒng)就是第一個專門為當今社會眾多的移動終端而量身開發(fā)的真正算是開放和完整的系統(tǒng)軟件。本文中研究的系統(tǒng)旨在建立一個自動接收、存儲、處理和發(fā)送氣象災情信息的移動手持式終端,使一線氣象信息員在他們長期開展工作中有易于攜帶的微型設備、比較可靠的技術支持和保障,同時也使當前的氣象信息收集、存儲及轉(zhuǎn)發(fā)流程自動化、高效化,也使各種氣象信息的收集、處理和保存更加標準、及時、可靠。本系統(tǒng)的總體設計目標是設計一個基于Android系統(tǒng)的自動氣象移動終端設備,能夠?qū)崿F(xiàn)戶外快捷、高效、及時的信息傳輸及災情直報工作。1.4Android系統(tǒng)基礎知識1.4.1Android系統(tǒng)介紹Android系統(tǒng)是Google公司花費巨資精心設計開發(fā)出來的,它是基于Linux操作平臺的一個開源手機或者智能終端的操作系統(tǒng)。Android系統(tǒng)幾乎包括了移動電話工作時必要的所有軟件,即用戶界面、操作系統(tǒng)和應用程序三個部分。許多手機操作系統(tǒng)都存在專有權(quán),但Android系統(tǒng)因為是開放式的所以不會出現(xiàn)這種情況。Android系統(tǒng)是由Google公司與開放手機聯(lián)盟的所有成員并肩合作共同設計開發(fā)出來的,手機聯(lián)盟主要由中國移動、德州儀器、KDDI和三星等公司在內(nèi)的總共34家技術和無線應用的大型企業(yè)組建而成。與開發(fā)商、運營商、設備制造商和其他相關各方面達成深層次的合作伙伴關系,依靠這種合作關系來建立一個標準化、開放式的移動手機軟件開發(fā)平臺,這樣就可以在豐富的移動終端產(chǎn)業(yè)內(nèi)部形成一個完全開放式的優(yōu)秀軟件生態(tài)系統(tǒng)。1.4.2Android系統(tǒng)架構(gòu)Android的應用程序是用Java語言編寫而成的,它是在一個程序虛擬機VM中運行。Android系統(tǒng)是單獨地運行在Linux系統(tǒng)的內(nèi)核之上的,在此需要我們留意的是,這里的虛擬機是指DalvikVirtualMachine,它是一種名副其實的開源技術方案。每一個Android的應用程序都是在虛擬機中的一個實例進程之中運行,實例一般停留在一個由Linux系統(tǒng)內(nèi)核管理的進程當中。系統(tǒng)的架構(gòu)圖如圖1-1所示。圖1-1Android系統(tǒng)架構(gòu)第2章自動氣象站2.1自動氣象站的組成框圖一個自動氣象站的基本模塊如圖2-1所示。圖2-1自動氣象站組成框圖2.2自動氣象站硬件組成根據(jù)世界氣象組織編寫的《氣象儀器和觀測方法指南》一文中對硬件組成部分的描述,平常一個較為典型的自動氣象觀測設備要求包括傳感器、采集器和外部設備三個主要部分。自動氣象站的主要硬件結(jié)構(gòu)如圖2-2所示。圖2-2自動氣象站硬件組成框圖為了使自動氣象儀能夠方便靈活擴充,故提前預設一定的可選傳感器接口,如機場中需要的可見度傳感器、種植戶需要的土壤溫度傳感器等,并且對設備空間、數(shù)據(jù)處理能力、供電電源容量、存儲器容量等留有一定的余量,同時提供較靈活的軟件工作環(huán)境以便于修改系統(tǒng)配置和各項參數(shù)。2.2.1傳感器傳感器是一種高級檢測裝置,它能夠靈敏地感受到被測量當前及變化的狀態(tài),并能夠?qū)⑵鋵崟r感受到的信息按一定的轉(zhuǎn)換規(guī)律變換成為電、光信號或其他所指定形式的各種信號形式輸出,目的在與達到信息的記錄、傳輸、存儲、處理、控制和顯示等各項技術要求。溫濕度傳感器、雨量、氣壓傳感器、風向風速傳感器等是當前日常氣象工作中經(jīng)常使用的傳感器,盡管內(nèi)部測量原理不同,但是總體工作流程類似。傳感器基本工作流程如圖2-3所示。圖2-3傳感器工作原理圖傳感器的主要參數(shù)有:1)分辨率傳感器的分辨率是指其能夠測量出來,并且能顯示出被測量值的最小間隔。分辨率必須能夠滿足氣象測量的要求,分辨率越高測量值越精確。2)靈敏度傳感器在相對比較穩(wěn)定的工作狀態(tài)下,參數(shù)輸出變化量值△y與參數(shù)輸入變化量值△x之比,稱為傳感器的靈敏度K。k=3)量程量程是指能夠測量和表示出來的被測量值的最大的范圍。被測量的氣象要素的值決定了量程的范圍。2.2.2采集器采集器是自動氣象站中最為核心的部分,也稱為中央處理機。它從傳感器中采集到數(shù)據(jù),然后由其系統(tǒng)內(nèi)部的微處理器CPU芯片按照預先指定的數(shù)據(jù)算法來進行各類氣象數(shù)據(jù)運算處理和控制,從而生成各種氣象要素觀測值,再接著以預先指定的數(shù)據(jù)格式將處理后的觀測值存儲在存儲器內(nèi),并能按照規(guī)定響應各類信息的傳輸要求。采集器的主要功能是完成數(shù)據(jù)的原始采集、存儲、及時處理、實時傳輸和整個系統(tǒng)的總體運行管理等多項功能,所以一個采集器一般情況下是由外部傳感器接口電路部分、數(shù)據(jù)存儲器部分、系統(tǒng)微處理器部分和通信接口等四大部分組成。2.2.3外部設備自動氣象站的外部設備通常是指除了傳感器和采集器這兩大部分以外,自動氣象站本身所配置的設備,通常情況下主要包括系統(tǒng)的供電電源設備、氣象系統(tǒng)業(yè)務終端設備、數(shù)據(jù)通信傳輸設備等,也把其附屬的實時時鐘設備和監(jiān)控檢測設備都歸類為外部設備。每個自動氣象站并不一定配備全部的外部設備,而是根據(jù)承擔任務的需要來配備所用到的外部設備,這樣就可以減少電源消耗,減輕設備體積和重量,從而降低建設和維護成本,實現(xiàn)性能利用效率最大化。2.3自動氣象站軟件組成自動氣象站在運行時必須依靠軟件的支撐,采集軟件和系統(tǒng)業(yè)務軟件是自動氣象站工作的兩個主要運行軟件。采集軟件是指,在該系統(tǒng)的采集器內(nèi)部程序中運行,常用來控制氣象觀測數(shù)據(jù)的收集、處理、控制、存儲、系統(tǒng)狀態(tài)的檢測和實時觀測數(shù)據(jù)傳送等各項流程的一個軟件。業(yè)務軟件用于接收儀器觀測時收集的數(shù)據(jù),手動輸入人工觀測所得數(shù)據(jù),它一般性的功能是進行各種氣象數(shù)據(jù)和資料的處理,梳理和歸納各類地面氣象數(shù)據(jù)的資料報表,實時傳送、存儲氣象觀測的全部資料和整個自動氣象站系統(tǒng)運行狀態(tài)的實時監(jiān)控,編排氣象觀測數(shù)據(jù)文件和及時生成地面氣象觀測資料及信息的報告等。在業(yè)務終端或者能夠在自動氣象系統(tǒng)中心網(wǎng)站上運行的軟件也即是業(yè)務軟件。業(yè)務終端的應用主要是指移動終端上安裝的氣象信息查詢、預警信息發(fā)布及環(huán)境監(jiān)測等軟件,在氣象中心網(wǎng)站上運行的軟件主要是各種信息發(fā)布及應用軟件。2.4自動氣象站運行流程自動氣象站運行流程為:1)將各傳感器通過防雷板上相應的安全通道接入到數(shù)據(jù)采集器,檢查各個傳感器工作正常后將自動氣象站通電開始工作。2)數(shù)據(jù)采集器的內(nèi)部程序加載完畢后會對各采集通道進行檢測并初始化。例如對于I/0口的狀態(tài)初始化、計數(shù)器端口參數(shù)值初始化、CPU工作寄存器狀態(tài)的初始化、時間和日期重置等。3)數(shù)據(jù)采集器再根據(jù)內(nèi)部程序預先設定好的時間間隔或者斷點進入到各項任務的并行運行狀態(tài),定時器的中斷處理程序和定時控制程序來完成各項任務的定時操作功能,并且也具有自動地計算年、月、日、時、分、秒的功能,它可以高效地完成系統(tǒng)中需要運行的各項任務所要求的定時或者延時等動作。自動氣象站測量工作流程如圖2-4。圖2-4自動氣象站運行流程2.5本章小結(jié)本章部分最開始著重介紹了一個自動氣象站的組成框圖,接著分硬件和軟件兩方面介紹。硬件部分著重介紹了傳感器及其主要指標、采集器的功能、外部設備等。軟件部分著重介紹了該自動氣象站的兩個核心軟件,即數(shù)據(jù)采集軟件和業(yè)務運行軟件,最后較詳細地梳理了自動氣象站的完整運行流程。本章主要論述了自動氣象站的基本運行流程和一些相關知識,對氣象站的工作原理和各部分模塊也有較為詳細的闡述。本章的論述,為后面構(gòu)建系統(tǒng)奠定了硬件方面的技術知識,是該系統(tǒng)完整構(gòu)建的基礎。第3章基于Android開發(fā)平臺的構(gòu)建3.1Android操作系統(tǒng)Android系統(tǒng)是以Linux平臺為基礎的嵌入式開源手機操作系統(tǒng),該系統(tǒng)的開發(fā)平臺是由操作系統(tǒng)部分、中間件部分、用戶界面部分和應用軟件四大部分構(gòu)成,它是第一個為眾多移動終端設備而編寫和開發(fā)的一個名副其實的開放且完整的系統(tǒng)軟件。3.1.1Android系統(tǒng)的特點Android不僅僅是一個面向移動設備的免費開源操作系統(tǒng),它也是一個創(chuàng)建移動設備應用程序的優(yōu)秀開源開發(fā)平臺,它擁有許多卓越的特性。1)開放性Android平臺中的開放性可以描述為:該系統(tǒng)允許也歡迎任何的移動終端廠商及運營商、設備制造商等都能夠積極加入到Android聯(lián)盟中來。開放性對于Android的發(fā)展最大的受益就是使它擁有了非常豐富的軟件資源。2)應用間無界限Android第一次打破了應用程序之間的傳統(tǒng)界限,例如Android操作系統(tǒng)內(nèi)部嵌入了基于開源引擎的系統(tǒng)內(nèi)部集成瀏覽器,程序設計開發(fā)人員完全可以把Web上的數(shù)據(jù)與本地終端上的聯(lián)系人、位置信息、通話記錄、日歷等數(shù)據(jù)有效地結(jié)合起來,為Android終端用戶創(chuàng)造出一種全新的生活體驗。3)應用開發(fā)快捷方便Android平臺為最大的優(yōu)點就是它為應用開發(fā)人員提供了一些非常有用的工具和實用庫,這些工具和實用庫能夠幫助開發(fā)人員快速高效地開發(fā)出自己滿意的應用。例如基于終端定位的應用程序的開發(fā)在其他手機平臺上開發(fā)是非常復雜的,但是因為Android系統(tǒng)內(nèi)部在設計時已經(jīng)集成了GoogleMap,所以開發(fā)人員只需調(diào)用其中的幾個API函數(shù)就能夠快速地實現(xiàn)一個地圖的應用,由此可見其開發(fā)的方便快捷程度。除此之外,Android操作系統(tǒng)還有效支持GSM電話、照相機、GPS、藍牙、WIFI、3G等諸多功能,它自身也集成了標準輕量級的數(shù)據(jù)庫,并能播放各種當前主流的音視頻和靜態(tài)影像文件,包括MP3格式,JPG格式,MPEG-4格式,PNG格式等,其功能異常強大。3.1.2Android操作系統(tǒng)的體系架構(gòu)Android開發(fā)平臺的系統(tǒng)架構(gòu)運用了總體整合的策略和思想,它的系統(tǒng)層次的體系結(jié)構(gòu)總共可以分為四個層次,自下而上的體系結(jié)構(gòu)層次按照順序依次是Linux之內(nèi)核層、普通的類庫層、應用框架整體所在層和應用程序?qū)?,其中在第三層的應用框架層中還包括Android運行環(huán)境。如圖3-1所示。圖3-1Android系統(tǒng)體系結(jié)構(gòu)3.2Android開發(fā)環(huán)境在設計和開發(fā)自動氣象站系統(tǒng)之前,我們首先需要構(gòu)建基于Linux嵌入式操作系的應用開發(fā)環(huán)境。設置好開發(fā)環(huán)境之后即可開始搭建該系統(tǒng),開發(fā)出我們需要的項目。3.2.1開發(fā)環(huán)境的搭建Android系統(tǒng)的所有應用程序常常都是運行在它的虛擬機上的,因而可以在任何支持開發(fā)人員所需的工具的平臺上來編寫這些程序。為了在這些平臺上能夠高效地進行Android應用程序的開發(fā),我們還需要搭建一個正確的系統(tǒng)開發(fā)環(huán)境,下面就簡要介紹一下在Windows平臺上搭建開發(fā)環(huán)境的基本步驟。(1)安裝JDKAndroid的所有程序都運行在Java虛擬機上,因此其開發(fā)環(huán)境需要JRE的支持,在官網(wǎng)中下載JDK,版本要求在1.5以上。安裝JDK完畢之后,還需要對它的環(huán)境變量進行一些詳細的設置。如圖3-2所示。圖3-2環(huán)境變量的設置1)在“我的電腦”菜單欄的“屬性”對話框中打開“環(huán)境變量”選項,在用戶變量欄中新建一個變量“java_path”,其值一欄就是我們電腦中JDK的安裝路徑;2)在下面“系統(tǒng)環(huán)境變量”一欄中編輯變量Path選項的值,將JDK的bin目錄路徑添加到后面,用“;”與其它已經(jīng)存在的值分隔開。(2)下載安裝AndroidSDKAndroidSDK的官方網(wǎng)站中給出了許多不同操作系統(tǒng)下的SDK開發(fā)包,以便滿足多種開發(fā)需求。在此,我們只需要下載Windows平臺上可以運行的開發(fā)包,然后將SDK開發(fā)包解壓出來,打開運行“SDKManager.exe",如圖3-3所示。圖3-3AndroidSDK的安裝Availablepackages選項菜單中包含了我們可以安裝的API版本、各種驅(qū)動和一些文檔,因考慮到要與當前社會中主流的Android系統(tǒng)設備能夠相互兼容,所以在此選擇安裝“SDKPlatformAndroid2.3.API8,revision1”來進行應用程序的開發(fā)。當安裝好AndroidSDK之后,在“AndroidSDKandAVDManager”的菜單選項欄中我們選擇“Virtualdevices”選項,然后就可以新建一個Android模擬器AVD,版本號為Android2.2。(3)安裝并配置EclipseEclipse是開發(fā)Android應用程序首選的一個非常方便實用的集成開發(fā)環(huán)境(IDE),下載名稱為“EclipseIDEforJavaDevelopers"完畢之后,解壓運行。Android平臺為Eclipse專門打造定制了一個ADT插件,運行EclipseIDE出現(xiàn)系統(tǒng)界面之后,在“help”菜單中選擇“InstallNewSoftware”來安裝“AndroidDeveloperTools”和“AndroidDDMS”這兩個插件。其余的選項可設置默為認值,也可按照個人需要更改。各選項的設置界面如圖3-4所示。圖3-4Eclipse中安裝ADT(4)設定AndroidSDKHome當安裝插件完畢之后,還需要我們額外地設置SDK所在的主目錄菜單。點擊“windows”菜單欄選項下的“Preference”選項,在系統(tǒng)彈出的界面左側(cè)部分選擇“Android”項,在右面面板中設定AndroidSDK的所在的目錄項,單擊確認鍵即可完成當前選項的設置。3.2.2應用程序開發(fā)示例完成以上開發(fā)環(huán)境的搭建后,就可以正式地在Eclipse軟件中開發(fā)出Android所有需要開發(fā)的應用程序了。在菜單欄“File”中選擇“new”選項,即可在Eclipse軟件中初步創(chuàng)建出一個名稱為“HelloWorld”的新工程。創(chuàng)建好工程后,HelloWorld.java中己經(jīng)有了默認的Activity,它用于在屏幕上顯示字符。點擊Eclipse軟件中Android模擬器按鈕即可在Android模擬器上運行該程序,“HelloWorld”被默認的Activity顯示在模擬器上。如圖3-5所示。圖3-5“HelloWorld”示例程序3.3Android應用程序的主要組件Android系統(tǒng)有一個鮮明的特點,就是在提供元素的應用程序授權(quán)允許的情況下,其中的一個應用程序能夠調(diào)用和使用另一個應用程序中的部分元素,基于此,當系統(tǒng)應用程序中的任何一個部分收到程序調(diào)用或使用的請求命令時,系統(tǒng)就能馬上啟動這個應用程序?qū)南嚓P進程,與之相對應的Java對象就被快速實例化。因而,Android應用程序與其他大多數(shù)程序不同,它的代碼沒有一個單獨的入口,而是反復調(diào)用,穿插進行。比如,Android系統(tǒng)的開發(fā)語言中沒有使用到main函數(shù),但是它包含了程序運行時所必不可少的應用組件,從而該系統(tǒng)就能夠?qū)嵗顒訉ο蟆ndroid系統(tǒng)中總共有四種重要的組件:1)活動(Activity)在Android系統(tǒng)的開發(fā)中,一個活動常常用來表示一些用戶的可視化界面,用戶可以在一個Activity上面進行一些多樣化操作。一般來說,一個Android應用平常只由一個Activity組成,當然它也可以含有多個Activity?;顒拥男问郊皟?nèi)容取決于應用程序結(jié)構(gòu)及功能的設計。2)服務(Services)一個服務在后臺中的運行時間一般是沒有限制的,但是服務的用戶界面一般是不可見的。程序可以連接或者綁定到一個正在運行的服務,當程序連接到一個服務之后,就可以通過這個服務所顯示出來的詳細接口信息來和此服務進行內(nèi)部實時通信。服務常常運行于一個程序進程過程的主線程之中,它經(jīng)常為一些消耗時間比較長的任務單獨設置一個線程,此舉的目的在于不擁堵用戶界面或者其他的組件。3)廣播接收器(Broadcastreceivers)Android組件中的廣播接收器的功能只是用來接收廣播并對廣播信息作出及時反應,廣播信息的很大一部分是由系統(tǒng)的內(nèi)部代碼發(fā)出的。在開發(fā)應用程序時,一般定義多個廣播接收器,這樣就可以對有用的廣播信息進行實時監(jiān)聽并能夠及時地作出反應。4)內(nèi)容提供者(Contentproviders)組件中內(nèi)容提供者的作用,就是使當前程序當中某些特定格式的數(shù)據(jù)能夠被其他的應用程序所使用。當然這些特定格式的數(shù)據(jù)完全可以存儲在SQLite數(shù)據(jù)庫當中,也可以存放在其他可以存儲該類數(shù)據(jù)的地方。3.4本章小結(jié)本章主要是構(gòu)建自動氣象站的Android開發(fā)平臺。首先簡略地分析了Android系統(tǒng)所特有的優(yōu)點,主要有開放性、應用間無界限性、方便快捷的應用開發(fā)等,接著分析了Android開發(fā)平臺的整個系統(tǒng)架構(gòu)。最主要的還是敘述了Android環(huán)境的搭建步驟,包括JDK、SDK的下載及安裝和Eclipse的參數(shù)配置等,簡單地介紹了創(chuàng)建一個應用的步驟。在本章的最后部分簡要地介紹了Android應用程序中的幾個主要的組件,主要有活動、服務、廣播接收器、內(nèi)容提供者四部分。第4章基于Android系統(tǒng)自動氣象站的實現(xiàn)4.1Android系統(tǒng)應用程序的設計在Android平臺下開發(fā)應用程序的基本框架如圖4-1所示。圖4-1Android應用程序框架在進行Android系統(tǒng)應用程序的具體設計過程中,應用的視圖、布局、XML文件及ID屬性是很重要的部分。4.2氣象站系統(tǒng)主界面的實現(xiàn)為了方便用戶,本系統(tǒng)從簡潔原則出發(fā),登錄即可顯示主頁面。本系統(tǒng)主頁面包3個按鈕,分別是登錄、幫助和關于我們,不同的圖標點擊之后顯示不同的功能。該系統(tǒng)的人機交互主界面如圖4-2所示。圖4-2系統(tǒng)主界面視圖4.3幫助界面該系統(tǒng)幫助界面的目的在與方便快捷地向用戶提供操作指南及軟件版本信息,其界面如圖4-3所示。圖4-3幫助界面同時為了增加對主菜單的監(jiān)聽功能,所以要在程序中提前對活動進行注冊,只有注冊成功之后該功能才有效。4.4登錄界面當用戶點擊主菜單中的登錄按鈕時,觸發(fā)了OnClick()事件所以會自動彈出相應的登錄對話框,該登錄對話框優(yōu)先級高于活動的提示窗口,所以Activity會迷失全部信息,這樣窗口便能夠接受所有的用戶信息交換。Android系統(tǒng)自動氣象站系統(tǒng)登錄時界面如圖4-4所示。圖4-4用戶登陸界面另外,上述涉及到的對話框,常常用于應用程序的小功能插件及各類信息的提示等。目前比較常用的對話框主要有:1、警告框2、進度框3、時間選擇框4、日期選擇框4.5氣象數(shù)據(jù)查詢與顯示界面查詢界面實現(xiàn)代碼見附4-5。本系統(tǒng)的主要目的在與及時有效地處理氣象信息,用戶通過登陸之后,就可以查看各種氣象數(shù)據(jù),把從各傳感器發(fā)送來的數(shù)據(jù)顯示在系統(tǒng)軟件界面。氣象要素值查詢信息反饋界面如圖4-5所示。圖4-5實時氣象參數(shù)其中上圖中溫度單位為攝氏度(℃),濕度指相對濕度,是一個百分比,無單位。風速的標準單位為m/s,風向的表示是以北方為基準,以度為單位(°),氣壓單位為Kpa,雨量單位為mm。4.6本章小結(jié)本章主要內(nèi)容是用基于Android系統(tǒng)的氣象站應用程序的開發(fā),首先介紹了應用程序框架總體設計。在此基礎上設計開發(fā)出了氣象站的完整項目,包括主界面、幫助信息界面、登錄界面和數(shù)據(jù)查詢界面等。并對系統(tǒng)實現(xiàn)過程中相關的一些技術做了簡單介紹。本章完成了該項目的人機交互界面及上位機部分,軟件部分基本實現(xiàn)。第5章氣象數(shù)據(jù)傳輸及技術氣象信息的實時性非常重要,加之我國地域廣闊,地形及氣候條件復雜,各種天氣狀況變化多端,我國經(jīng)濟社會的快速向前發(fā)展又反過來對氣象數(shù)據(jù)的實時性提出的要求更高一籌。Android客戶端用戶對于一些服務的實時性要求比較高,例如需要實時刷新當前某節(jié)點的傳感器上的數(shù)值、要求動態(tài)地顯示傳感網(wǎng)中節(jié)點的路由拓撲圖、在客戶端上操作傳感器的節(jié)點能使其啟動或休眠,這些功能的實現(xiàn)都需要依賴于可靠穩(wěn)定的客戶端‐服務器實時通信技術。本系統(tǒng)使用實時通信技術,能更好的結(jié)合當今通信技術發(fā)展的成果。通過該系統(tǒng)中傳感器網(wǎng)絡的采集,氣象信息被上傳之后保存到服務器中的數(shù)據(jù)庫中,在服務器端使用實時通信技術和Web服務技術等,使得氣象工作人員及用戶能夠在Android系統(tǒng)的智能終端上,以曲線圖、表格等各種形式實時查看監(jiān)測區(qū)域的氣象信息,同時還能查看網(wǎng)絡拓撲結(jié)構(gòu)、接收預警信息等。5.1WebSocket實時通信技術隨著HTML5的興起,出現(xiàn)了一種新的實時通信機制:WebSocket。Web‐Socket是一種通信制式為全雙工的雙向通信技術,主要作用是在Web瀏覽器中或其他客戶端和Web服務器之間給出一種類似TCPsocket的持續(xù)的、雙向的、有狀態(tài)的實時通信方式。WebSocket實時通信技術的優(yōu)勢在于,客戶端和服務器之間能夠彼此互相推送消息。在Android系統(tǒng)的原生APP客戶端中,想要實現(xiàn)與WebSocket服務器之間的實時通信,還需要借助第三方開源庫:Autobahn-Android。綜合權(quán)衡WebSocket的性能優(yōu)勢之后,基于開源項目實現(xiàn)Android客戶端與服務器之間的實時通信,服務器端能夠?qū)崟r更新的傳感器數(shù)據(jù)傳送到Android平臺客戶端,當客戶端收到數(shù)據(jù)之后立即更新信息顯示界面。同時,Android系統(tǒng)的客戶端一側(cè)能夠向其所在的服務器端所在側(cè)實時地發(fā)送各種請求命令,用戶可以實時地操控傳感器節(jié)點來使它休眠或者啟動。如圖5-1所示。圖5-1WebSocket工作模式5.2信息推送推送技術就是一種由網(wǎng)絡服務器端口一方主動地向客戶端所在方發(fā)送消息的通信技術,與拉取技術正好相反,推送并不需要用戶主動刷新系統(tǒng)以檢查是否有沒及時更新的消息,它就是主動將更新之后的信息發(fā)送給客戶端用戶。至今,推送服務已經(jīng)廣泛應用于各種類型的智能手機應用中,例如:天氣預報的應用程序會主動向用戶及時推送災害性預報信息、新聞應用會主動向用戶及時推送重大新聞等等。通過推送服務,一方面能夠大幅提高用戶的黏度,另一方面能夠及時向用戶發(fā)布一些重要信息。在本系統(tǒng)中,推送服務的主要作用是將氣象預警信息及時推送給手持式氣象設備的Android客戶端,如:雨量傳感器測得單位小時降水量超出閾值、溫度傳感器節(jié)點測得的溫度超過閾值等。通過推送服務,只要用戶的Android智能終端開機且保持網(wǎng)絡已連接狀態(tài),預警信息就能夠以通知的形式即時地顯示在屏幕上。推送主要有以下兩種技術方案。5.2.1長連接技術方案所謂長連接技術方案是指Android客戶端與服務器端之間維護一個長期的TCP連接,當服務器有數(shù)據(jù)傳送時,通過該連接實時地將數(shù)據(jù)推送到客戶端,即Push。為了保持該TCP連接長時間存在,每隔10到30分鐘發(fā)送心跳包一次。從能耗方面來看,當Android客戶端發(fā)送心跳時耗電比較多,但在不發(fā)送心跳時耗電會極少。從總體上看,通過TCP長連接方式來實現(xiàn)的推送服務耗電少而且實時性比較高。5.2.2開源技術方案目前,以可擴展通訊和表示協(xié)議XMPP為基礎的開源項目androidopn是一種最為常用的開源項目解決方案。由于XMPP協(xié)議體是基于XML的,所以相對而言比較冗余,對于流量和電量較為敏感的手持式客戶端來說,開源方案并不是最好的選擇。5.3預警信息的實時發(fā)布在本系統(tǒng)中,為了快速開發(fā)、節(jié)約成本,運用了極光推送服務來進行氣象預警信息的推送。極光推送,即Jpush技術,它對一般的普通開發(fā)者免費開放代碼,是一個第三方的信息推送服務。開發(fā)人員只需要在自己設計的客戶端中集成極光推送所需要的SDK包,就能夠簡單方便地將PUSH功能添加進自己設計出來的APP客戶端。極光推送原理如圖5-2所示。圖5-2信息推送流程圖為了運用國內(nèi)的極光推送服務,Android客戶端中需要加入滿足極光推送的一個庫文件AndroidSDK,只要借助于這個庫文件,客戶端就能夠與極光云推送服務器之間保持比較穩(wěn)定的長連接,同時其內(nèi)部通過心跳包機制來實現(xiàn)跳線重連。在本文設計系統(tǒng)的自建服務器中,通過數(shù)據(jù)收發(fā)板塊來過濾掉下層網(wǎng)絡傳來的氣象數(shù)據(jù),及時檢測到預警信息并能夠?qū)崟r轉(zhuǎn)交給推送服務模塊。當推送服務板塊收到預警信息后將消息生成易于識別的統(tǒng)一JSON數(shù)據(jù)格式,然后通過HTTP請求來調(diào)用極光推送的遠程API將預警信息推送出去,幾秒鐘之內(nèi)Android客戶端用戶就能夠接收到Notification格式的氣象預警信息。5.4本章小結(jié)本章主要介紹了氣象數(shù)據(jù)傳輸及涉及到的主要技術。首先介紹了WebSocket實時通信技術,它主要作用是在Web瀏覽器中或其他客戶端和Web服務器之間給出一種類似TCPsocket的持續(xù)的、雙向的、有狀態(tài)的實時通信方式,它是一種通信制式為全雙工的雙向通信技術。接著介紹了其工作模式。其次,介紹了信息推送技術的定義,并簡略介紹了兩種推送技術方案,即長連接技術方案和開源技術方案,分別簡要地介紹了兩種技術方案。最后介紹了預警信息實時發(fā)布技術以及流程圖。通過本章,對氣象信息收集、傳輸及預警信息發(fā)布等流程有了較為深刻的認識。結(jié)論本論文主要目標在于設計出一種基于Android系統(tǒng)的自動氣象站,目標是提高終端靈活性和方便性,即設計出一種手持終端,方便信息采集、瀏覽、存儲和處理。本論文在大量閱讀了自動氣象站和Android系統(tǒng)的相關資料的背景下,簡單的介紹了自動氣象站在國內(nèi)外的發(fā)展,提出了該系統(tǒng)的研究目標和意義。在以Android系統(tǒng)為開發(fā)基礎的自動氣象站的設計上,本文首先介紹了氣象站的組成、各部分傳感器及采集器的工作原理和流程等,在此基礎上,構(gòu)想出用Android系統(tǒng)來開發(fā)氣象站的目標。接著問問介紹了Android系統(tǒng)的特點、體系結(jié)構(gòu)、開發(fā)平臺的搭建、軟件安裝和應用程序的組件等知識。以上部分知識是開發(fā)該系統(tǒng)的基礎,接著本文介紹了應用程序的框架,重點介紹了系統(tǒng)的實現(xiàn),另外介紹了系統(tǒng)的主界面、登錄界面、幫助界面等,還給出了系統(tǒng)運行時采集來的數(shù)據(jù)樣式。最后介紹了氣象數(shù)據(jù)傳輸及發(fā)布等所涉及到的一些技術,如WebSocket這種實時通信技術,信息推送技術等,并在最后介紹了預警信息的發(fā)布等,設計中的主要步驟基本完成。在整個設計過成功

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論