2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(論文)</b></p><p>  基于Android的物聯(lián)網(wǎng)監(jiān)控手機(jī)軟件設(shè)計</p><p><b>  學(xué) 生: </b></p><p><b>  學(xué) 號: </b></p><p><b>  指導(dǎo)教師:

2、</b></p><p>  專 業(yè):電子信息工程</p><p><b>  二O一二年六月</b></p><p>  Design of Android-Based Internet of things monitoring phone software </p><p><b>  摘

3、 要</b></p><p>  2007年美國Google公司向外界展示Android操作系統(tǒng),將Android手機(jī)的興起推向高潮。Andriod系統(tǒng)的各大優(yōu)點(diǎn)運(yùn)用到了諸多領(lǐng)域,同時Android軟件運(yùn)用具有面向?qū)ο笏枷氲腏ava語言編寫,極大的促進(jìn)了軟件的靈活性。另一方面,物聯(lián)網(wǎng)也是新一代的高端技術(shù),運(yùn)用Android的高性能優(yōu)點(diǎn),將其運(yùn)用到物聯(lián)網(wǎng)監(jiān)控中定會是一項非常前沿的技術(shù)。本文將介紹如

4、何用Android軟件實(shí)現(xiàn)對物聯(lián)網(wǎng)監(jiān)控端進(jìn)行實(shí)時監(jiān)控。</p><p>  該系統(tǒng)分為硬件端(監(jiān)控端)和軟件端(手機(jī)端),其硬件端主要通過STM32單片機(jī)實(shí)現(xiàn),通過溫度傳感器,加速度傳感器以及脈搏心跳傳感器,對人體的體溫、姿態(tài)、心跳速率及脈搏速率進(jìn)行測量,并通過GPRS模塊或串口采用三種法式(包括短信,WIFI和J2EE服務(wù)器)傳送監(jiān)控數(shù)據(jù)到手機(jī)端。軟件端主要采用Java語言編寫,實(shí)現(xiàn)對數(shù)據(jù)的處理、顯示以及備份等

5、功能。三種通信方式各有所長。</p><p>  對于整個系統(tǒng),已基本實(shí)現(xiàn)預(yù)期功能,同時也能對其進(jìn)行拓展,例如手機(jī)與監(jiān)控端的相互交互等。對于后續(xù)的研究工作希望能和讀者一起探討。 </p><p>  關(guān)鍵詞:Android,物聯(lián)網(wǎng),熱點(diǎn),監(jiān)控</p><p><b>  ABSTRACT</b></p><p>  In

6、 2007, Google's Android operating system to show the rise of the Android phone to a climax. The major advantage of the Andriod system applied to many fields, while the use of the Android software written in Java lang

7、uage, object-oriented thinking, to promote the flexibility of the software. Internet of Things, on the other hand, is a new generation of high-end technology, the use of high-performance advantages of Android will be app

8、lied to the monitoring of Internet of Things will be a very cu</p><p>  The system is divided into the hardware side (control side) and the software side (mobile terminal), the hardware side by STM32 microco

9、ntroller, temperature sensor, accelerometer, and the pulse of the heartbeat sensor, body temperature, posture, heart rate, and pulse rate measurement, and three French (including SMS, WIFI, and a J2EE server) to send con

10、trol data to the mobile terminal through the GPRS module or serial. Software side using the Java language to write the data processing, display a</p><p>  For the entire system has been basically achieve the

11、 desired functionality, but also to expand, such as mobile phones and monitor the client interact with each other. And readers to discuss follow-up research.</p><p>  Key words: Android, Internet of things,

12、Wifi, monitor</p><p><b>  目 錄</b></p><p><b>  中文摘要Ⅰ</b></p><p>  ABSTRACTⅡ</p><p><b>  1緒論1</b></p><p>  1.1 設(shè)計背景

13、1</p><p>  1.2 國內(nèi)外研究現(xiàn)狀綜述1</p><p>  1.3 設(shè)計特點(diǎn)2</p><p>  1.4 設(shè)計功能概述2</p><p>  1.4.1 物聯(lián)網(wǎng)監(jiān)控端的硬件2</p><p>  1.4.2 Android應(yīng)用程序3</p><p>  2 相關(guān)技術(shù)及開

14、發(fā)工具簡介4</p><p>  2.1 Java語言簡介4</p><p>  2.1.1 Java技術(shù)的特點(diǎn)4</p><p>  2.1.2 Java ME簡介5</p><p>  2.1.3 Java EE簡介5</p><p>  2.2 Android系統(tǒng)簡介6</p><

15、p>  2.3 Java及Android開發(fā)工具簡介7</p><p>  2.3.1 MyEclipse集成開發(fā)環(huán)境7</p><p>  2.3.2 Android SDK7</p><p>  2.3.3 Android ADT8</p><p>  3 基于Nios II的物聯(lián)網(wǎng)監(jiān)控端設(shè)計9</p>&l

16、t;p>  3.1 系統(tǒng)結(jié)構(gòu)9</p><p>  3.1.1 硬件結(jié)構(gòu)10</p><p>  3.1.2 軟件結(jié)構(gòu)10</p><p>  3.2 監(jiān)控端硬件設(shè)計11</p><p>  3.2.1 信息采集端硬件設(shè)計11</p><p>  3.2.2 信息接收與傳輸硬件設(shè)計12</p&g

17、t;<p>  3.2.3 監(jiān)護(hù)端硬件設(shè)計12</p><p>  3.3 監(jiān)控端軟件設(shè)計13</p><p>  3.3.1 體征信息采集端的軟件設(shè)計13</p><p>  3.3.2 體征信息接收與傳輸端軟件設(shè)計15</p><p>  4 基于Android的手機(jī)軟件設(shè)計16</p><p&

18、gt;  4.1 設(shè)計概述16</p><p>  4.1.1 研究目標(biāo)16</p><p>  4.1.2 需求分析16</p><p>  4.2 基于UDP協(xié)議的Wifi通信設(shè)計17</p><p>  4.2.1 UDP協(xié)議簡介17</p><p>  4.2.1 PC端串口程序設(shè)計18</p

19、><p>  4.2.3 數(shù)據(jù)包的解析法則20</p><p>  4.2.4 UDP發(fā)送及接收程序設(shè)計22</p><p>  4.2.5 熱點(diǎn)的配置23</p><p>  4.3 短信接收及解析設(shè)計25</p><p>  4.3.1 短信接收程序設(shè)計25</p><p>  4.3

20、.1 文件的存儲與讀取26</p><p>  4.4 基于J2EE的網(wǎng)頁監(jiān)控設(shè)計27</p><p>  4.4.1 Tomcat服務(wù)器簡介27</p><p>  4.4.2 基于Serverlet的網(wǎng)頁設(shè)計27</p><p>  4.4.3 基于JDBC技術(shù)的MySQL數(shù)據(jù)庫操作28</p><p>

21、  4.4.4 手機(jī)端嵌入網(wǎng)頁的設(shè)計29</p><p>  4.5 系統(tǒng)架構(gòu)及界面設(shè)計29</p><p>  4.5.1 系統(tǒng)程序文件結(jié)構(gòu)及功能29</p><p>  4.5.2 系統(tǒng)界面設(shè)計29</p><p><b>  5 總結(jié)31</b></p><p><b>

22、  參考文獻(xiàn)32</b></p><p>  附錄A:手機(jī)端程序主要源代碼33</p><p><b>  1 緒論</b></p><p><b>  1.1設(shè)計背景</b></p><p>  近年來,Android手機(jī)興起的趨勢無法阻擋,而至今年Android手機(jī)已占據(jù)全球智

23、能機(jī)市場48%的份額,并在亞太地區(qū)市場占據(jù)統(tǒng)治地位,在我國更是高達(dá)58%,終結(jié)了Symbian的霸主地位,躍居全球第一,在今后一段時間內(nèi)Android將更廣泛的普及和發(fā)展。對于Android手機(jī)應(yīng)用軟件,中低端目前的主流應(yīng)用很多,而現(xiàn)在Android最高版本為4.0.3,相比于蘋果系統(tǒng)有過之而無不及,今后的發(fā)展一定相當(dāng)樂觀。而Android系統(tǒng)的手機(jī)軟件大多采用Java語言編寫,其跨平臺和面向?qū)ο蟮奶攸c(diǎn),無論是從界面還是性能來講,都能更

24、方便更強(qiáng)大地滿足用戶的高要求。根據(jù)其良好的發(fā)展趨勢,對本課題也值得去研究。另一方面,物聯(lián)網(wǎng)是新一代信息技術(shù)的重要組成部分,其概念一經(jīng)提出就一直是一大熱門,它在各種感知技術(shù)上的廣泛應(yīng)用以及對智能信息處理的能力并且對物體實(shí)施智能的控制已然成為下一個推動世界高速發(fā)展的重要生產(chǎn)力,具有節(jié)約成本提高經(jīng)濟(jì)效益等優(yōu)勢更可以為全球經(jīng)濟(jì)復(fù)蘇提供技術(shù)動力。如此高端熱門且發(fā)展趨勢十分樂觀的兩種產(chǎn)品——Android手機(jī)和物聯(lián)網(wǎng)相結(jié)合而產(chǎn)生的該課題《基于And

25、roid的物聯(lián)網(wǎng)監(jiān)控手機(jī)軟件的設(shè)計》</p><p>  1.2 國內(nèi)外研究現(xiàn)狀綜述</p><p>  對于物聯(lián)網(wǎng)的研究,國外要比國內(nèi)研究較早,技術(shù)也相對成熟,在很早的時候美國施樂公司將其應(yīng)用用到售貨機(jī)上,而現(xiàn)今美國有很多大學(xué)在做了大量工作在物聯(lián)網(wǎng)的研究生上。同時國外很多知名企業(yè)都做了網(wǎng)聯(lián)網(wǎng)技術(shù)方面的研究,例如美國的克爾斯博公司,它是國際上率先在該領(lǐng)域取得研究成果的先驅(qū)之一。相比之下,國

26、內(nèi)在物聯(lián)網(wǎng)技術(shù)上的研究相對落后,不過也在硬件和軟件房間取得了相應(yīng)的突破,在基于國外的技術(shù)之上開發(fā)了自己的中間軟件。</p><p>  另一方面,Android智能手機(jī)在國內(nèi)也是越來越高端,像去年上市的小米手機(jī)轟動全國,與之匹敵的華為榮耀接而上市,把中國Android手機(jī)應(yīng)用推向高潮。當(dāng)然,伴隨著手機(jī)的興起,無論是游戲還是應(yīng)用軟件,小到個體程序員大到世界五百強(qiáng)的軟件公司,Android手機(jī)軟件都必然將風(fēng)靡全球。&

27、lt;/p><p>  與此同時,新興的物聯(lián)網(wǎng)監(jiān)控技術(shù)與如今正如火如荼的第三代移動通信想結(jié)合,將改變現(xiàn)有的物聯(lián)網(wǎng)監(jiān)控模式,使監(jiān)控人員無論身在何處無論何時都可以對需要進(jìn)行監(jiān)控的設(shè)備信息進(jìn)行監(jiān)控,這樣也不用每天坐在辦公室或監(jiān)控室守著一臺監(jiān)控器,使這樣實(shí)時的監(jiān)控工作更加方便。</p><p><b>  1.3 設(shè)計特點(diǎn) </b></p><p>  本

28、系統(tǒng)主要針對人體如體溫,姿態(tài),心跳及脈搏等數(shù)據(jù)進(jìn)行測量監(jiān)控,對于這些數(shù)據(jù)監(jiān)控,我們的監(jiān)控端應(yīng)該具備實(shí)時、可靠、無線連接、體積小等特點(diǎn),同時應(yīng)該盡量使監(jiān)護(hù)行為不對用戶的日?;顒赢a(chǎn)生影響,即佩戴在人體身上讓人不會有生理或心理負(fù)載同時也能準(zhǔn)確的測量各種數(shù)據(jù)信息。由此我們設(shè)計了面向家庭的便攜式可穿戴的遠(yuǎn)程智能監(jiān)護(hù)儀。本作品分為信息采集端、信息接收與傳輸端和監(jiān)護(hù)端。在被監(jiān)護(hù)人一端,只需佩帶信息采集端,就能在滿足低生理、心理負(fù)荷條件下,實(shí)現(xiàn)人體日常

29、姿態(tài)、體溫、脈搏、心跳等生命體征信息的獲取,并且通過多種無線傳輸方式如短信,Wifi以及搭建J2EE服務(wù)器技術(shù)等最終將數(shù)據(jù)傳輸至便攜式監(jiān)護(hù)端、手機(jī)監(jiān)護(hù)端、遠(yuǎn)程監(jiān)護(hù)端進(jìn)行分析和處理,監(jiān)護(hù)人可遠(yuǎn)程查詢被監(jiān)護(hù)人的生理情況,在被監(jiān)護(hù)人生理情況出現(xiàn)異常時,系統(tǒng)自動采取多種報警即應(yīng)急措施。</p><p>  本監(jiān)護(hù)儀區(qū)別于傳統(tǒng)的大型檢測儀器,利用SOPC的思想將監(jiān)測人體姿態(tài)、體溫、脈搏、心跳等基本生命體征的傳感器集中在一起

30、,小巧方便可穿戴,減小了生理負(fù)擔(dān),便攜易用。醫(yī)護(hù)人員可實(shí)時查看被檢測人的姿態(tài)、體溫、脈搏、心電等生命體征信息,并可以將實(shí)時信息存儲到手機(jī)端SD卡等非易失存儲設(shè)備中。結(jié)合日益成熟的J2EE技術(shù)以及目前異軍突起的Android技術(shù),通過自行設(shè)計的Android手機(jī)軟件,讓Android智能手機(jī)也能成為本系統(tǒng)的監(jiān)護(hù)端的一部分,可根據(jù)不同情況選擇更適合的遠(yuǎn)程監(jiān)護(hù)模式,隨時隨地被監(jiān)護(hù)人的生理狀況盡在掌握。Android技術(shù)的運(yùn)用使得本系統(tǒng)緊跟信息

31、時代的步伐,給使用者提供了更為熟悉和便捷的用戶體驗。</p><p>  1.4 設(shè)計功能概述</p><p>  本課題完成了基于Andriod的手機(jī)軟件設(shè)計,以及STM32單片機(jī)對GPRS模塊(M20)進(jìn)行控制的硬件設(shè)計和軟件設(shè)計。用java語言完成的一款能夠在Andriod手機(jī)運(yùn)行的手機(jī)軟件,通過可行的三種方式--短信、Wifi和網(wǎng)頁,接收實(shí)驗板發(fā)送的通過溫度、加速度等傳感器測量的數(shù)

32、據(jù),并在手機(jī)屏幕上實(shí)時顯示同時將實(shí)時記錄保存子手機(jī)SD卡的txt文件中。</p><p>  1.4.1物聯(lián)網(wǎng)監(jiān)控端的硬件</p><p>  物聯(lián)網(wǎng)監(jiān)控端可分為信息采集端、信息接收和 傳輸端。所用到的硬件開發(fā)平臺包括DE2-70開發(fā)板、LB3開發(fā)板、物聯(lián)網(wǎng)調(diào)試板。在被監(jiān)控的場所如汽車、寢室安裝好該系統(tǒng),通過溫度、加速度傳感器采集當(dāng)前信息,并通過無線傳輸?shù)姆绞桨l(fā)送給接收和傳輸端。</

33、p><p>  信息接收與傳輸端主要是通過串口將數(shù)據(jù)發(fā)送到PC端,讓PC端進(jìn)行數(shù)據(jù)處理和編碼,最終發(fā)送到Android 手機(jī)上。同時該模塊也要通過GPRS模塊與Android手機(jī)取得通信,能接受Android手機(jī)反饋回來的信息。</p><p>  1.4.2 Android應(yīng)用程序</p><p>  該模塊主要是在具有Android系統(tǒng)的手機(jī)上運(yùn)行,以接收監(jiān)控端發(fā)送

34、過來的短信并進(jìn)行解碼,把實(shí)用的溫度、加速度等信息直觀明了簡單的顯示在該軟件上。其軟件的編寫將使用Java語言在MyEclipse集成開發(fā)軟件上進(jìn)行開發(fā)并搭建SDK和ADT10.0.0的Android模擬器,并且能達(dá)到界面美觀信息顯示方式大方明了且能對歷史信息進(jìn)行保存和查看的功能。同時也可以根據(jù)該軟件與監(jiān)控開發(fā)板進(jìn)行反饋。</p><p>  2 相關(guān)技術(shù)及開發(fā)工具簡介</p><p> 

35、 2.1 Java語言簡介</p><p>  Java是一種面向?qū)ο蟮目梢宰珜懣缙脚_應(yīng)用軟件的程序設(shè)計語言, Sun Microsystems公司在1995年5月推出了Java平臺(即JavaSE, JavaEE, JavaME的總稱)和Java程序設(shè)計語言。本設(shè)計用到了JavaEE, JavaME兩大技術(shù)。Java 技術(shù)具有卓越的通用性、高效性、平臺移植性和安全性,廣泛應(yīng)用于個人PC、數(shù)據(jù)中心、游戲控制臺、科

36、學(xué)超級計算機(jī)、移動電話和互聯(lián)網(wǎng),本論文中實(shí)現(xiàn)的物聯(lián)網(wǎng)監(jiān)控系統(tǒng)就是基于Java技術(shù)編寫的,因此,在本章將對Java技術(shù)作一個簡要的介紹。</p><p>  2.1.1 Java技術(shù)的特點(diǎn)</p><p>  JAVA是非常新的一種語言(1995年正式發(fā)布),具有面向?qū)ο?、分布式、解釋?zhí)行、健壯性和安全性、體系結(jié)構(gòu)中立、可移植、多線程、以及動態(tài)性等特點(diǎn)。和其他編程語言相比,它有很多優(yōu)點(diǎn)。使用

37、JAVA的優(yōu)點(diǎn)具體體現(xiàn)在以下幾個方面:</p><p><b>  (1)封裝</b></p><p>  Java是一種面向?qū)ο蟮恼Z言,它的封裝特性是將具有一定特征的事物封裝成一個類,在類中用Private將所有成員變量定義成私有的,要想通過另一個類得到或改變該成員變量必須調(diào)用該類的Get和Set方法。這樣就可以將一個類封裝成一個獨(dú)立的事物,有助于程序代碼的維護(hù)。&

38、lt;/p><p><b>  (2)繼承</b></p><p>  顧名思義,Java繼承就是是使用已存在的類的定義作為基礎(chǔ)建立新類,新類可以用父類的功能,也可以增加新的數(shù)據(jù)或新的功能,但不能選擇性地繼承父類。這種技術(shù)使得復(fù)用以前的代碼非常容易,能夠大大縮短開發(fā)周期,降低開發(fā)費(fèi)用。</p><p><b>  (3)多態(tài)</b&

39、gt;</p><p>  多態(tài)具體表現(xiàn)在重寫和重載,多態(tài)就是類的多種表現(xiàn)方式,比如在同一個類中可以有名字相同但參數(shù)不同的方法,同時子類也可以重寫父類的方法。這樣便可以改善代碼的組織結(jié)構(gòu),增強(qiáng)代碼的可讀性。</p><p>  2.1.2 Java ME簡介</p><p>  Java ME 以往稱作J2ME(Java Platform,Micro Edition

40、),是為機(jī)頂盒、移動電話和PDA之類嵌入式消費(fèi)電子設(shè)備提供的Java語言平臺,包括虛擬機(jī)和一系列標(biāo)準(zhǔn)化的Java API。它和Java SE、Java EE一起構(gòu)成Java技術(shù)的三大版本,并且同樣是通過JCP(Java Community Process)制訂的。根據(jù)Sun的定義:Java ME是一種高度優(yōu)化的Java運(yùn)行環(huán)境,主要針對消費(fèi)類電子設(shè)備的,本課題中的Android手機(jī)應(yīng)用就是Java ME最廣泛的應(yīng)用。</p>

41、<p>  2.1.3 Java EE簡介</p><p>  JavaEE 是 J2EE的一個新的名稱,其主要是企業(yè)級的運(yùn)用。其三大框架(Spring、Struts、Hibernet)將該技術(shù)構(gòu)建的淋漓盡致。JavaEE技術(shù)很多時候運(yùn)用于網(wǎng)站的搭建上,采用MVC模式建立自己的網(wǎng)站會是一個很完整的過程。如圖所示JavaEE的架構(gòu)圖:</p><p>  圖2.1 JavaEE

42、架構(gòu)圖</p><p>  2.2 Android系統(tǒng)簡介</p><p>  Android是Andy Rubin公司開發(fā)的一種以Linux為基礎(chǔ)的開放源代碼操作系統(tǒng),主要使用于便攜設(shè)備例如手機(jī)MP4等。2005年由Google收購注資,2007年正式向外界推出Android系統(tǒng),逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上。Android系統(tǒng)在手機(jī)上的應(yīng)用已經(jīng)占據(jù)了主要市場。2011年第一季度,An

43、droid在全球的市場份額首次超過之前獨(dú)步天下的塞班系統(tǒng),躍居全球第一。 2012年2月數(shù)據(jù),Android系統(tǒng)占據(jù)全球智能手機(jī)操作系統(tǒng)市場52.5%的份額,中國市場占有率更高,為68.4%。</p><p>  Android的系統(tǒng)采用了分層的架構(gòu),這也是與其它操作系統(tǒng)的不同之處。Android分為四個層,從低層到高層分別是linux核心層、系統(tǒng)運(yùn)行庫層、應(yīng)用程序框架層、應(yīng)用程序?qū)印?</p>&

44、lt;p>  Android手機(jī)軟件主要采用Java語言編寫,打包為.apk格式供用戶下載安裝到Android系統(tǒng)上。所以結(jié)合Java面向?qū)ο蟮恼Z言特點(diǎn),Android軟件在游戲、界面等方面居于顯著的優(yōu)點(diǎn)。圖2.2為Android系統(tǒng)架構(gòu)圖。</p><p>  圖2.2 Android系統(tǒng)架構(gòu)圖</p><p>  2.3 Java及Android開發(fā)工具簡介</p>

45、<p>  開發(fā)Java程序一般會用到EclipseIDE工具,開發(fā)Android程序需要在Eclipse中集成Android SDK以及ADT模擬器,這樣就可以方便開發(fā)及測試Android程序了,下面將介紹這幾種開發(fā)環(huán)境。</p><p>  2.3.1 MyEclipse集成開發(fā)環(huán)境</p><p>  MyEclipse是一個用于開發(fā)Java的軟件集成環(huán)境,十分好用,其功

46、能非常強(qiáng)大,支持也特別廣泛,特別是對各種開源產(chǎn)品的支持想當(dāng)不錯。它是在EclipseIDE的基礎(chǔ)上進(jìn)行了擴(kuò)展,我們可以利用它更方便的在數(shù)據(jù)庫和JavaEE的開發(fā)、發(fā)布以及應(yīng)用程序服務(wù)器的整合方面完成工作。同時它也是功能豐富的JavaEE集成開發(fā)環(huán)境,包括了完備的編碼、調(diào)試、測試和發(fā)布功能,完整支持HTML, Struts, JSP, CSS, Javascript, Spring , SQL, Hibernate。在結(jié)構(gòu)上,MyEcli

47、pse的特征可以被分為7類: </p><p><b>  JavaEE模型</b></p><p><b>  WEB開發(fā)工具 </b></p><p><b>  EJB開發(fā)工具 </b></p><p>  應(yīng)用程序服務(wù)器的連接器 </p><p>

48、;  JavaEE項目部署服務(wù) </p><p><b>  數(shù)據(jù)庫服務(wù) </b></p><p>  MyEclipse整合幫助 </p><p>  以上每一種功能上的類別都可以再Eclipse中得到相應(yīng)的體現(xiàn),并通過一系列的插件來實(shí)現(xiàn)它們。MyEclipse在Eclipse的基礎(chǔ)上,可以讓我們在不影響其他模塊的情況下,對任一模塊進(jìn)行單獨(dú)的

49、升級和擴(kuò)展。 也就是說,MyEclipse是Eclipse的插件,也是一款功能強(qiáng)大的Java集成開發(fā)工具,支持代碼編寫、調(diào)試以及Debug等,MyEclipse6.0以前版本需先安裝Eclipse。MyEclipse6.0以后版本安裝時不需安裝Eclipse。</p><p>  目前,MyEclipse經(jīng)歷了許多版本,本課題用到MyEclipse8.5版本。經(jīng)過了MyEclipse 8.5 M1和MyEclip

50、se 8.5 M2兩個版本,MyEclipse Enterprise Workbench 8.5 for Eclipse 3.5.2終于在2010年3月28號正式發(fā)布了!在官方網(wǎng)站上 MyEclipse 8.5 可以下載了,該版本集成了 Eclipse 3.5.2,提升了團(tuán)隊協(xié)作開發(fā)、開發(fā)周期管理以及 Spring 和 Hibernate 的更好支持。</p><p>  2.3.2 Android SDK &l

51、t;/p><p>  SDK(software development kit)是指軟件開發(fā)工具包。被軟件開發(fā)工程師用于為特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合。 因此,Android SDk 指的既是Android專屬的軟件開發(fā)工具包。開發(fā)android必須下載及安裝Android SDK,現(xiàn)在已有很多SDK版本,本課題用是是Android API 10也就是Android2.3。

52、</p><p>  下載好Android SDK后,開始安裝,Android SDK采用了Java語言,所以需要先安裝JDK 5.0及以上版本。直接下載jdk安裝文件安裝更為方便。[1]   Android SDK不用安裝,下載后,直接解壓即可, 將下載后的SDK的壓縮包解壓到適當(dāng)?shù)奈恢茫瓦@么簡單;SDK安裝OK。使用Eclipse進(jìn)行android應(yīng)用開發(fā)需要給Eclipse裝adt插件,這樣Eclipse

53、就可以和android sdk建立連接,可以在Eclipse中啟動android模擬器進(jìn)行程序調(diào)試等ADT插件安裝這里不再累贅,也可以下載adt的zip包安裝 安裝完插件后,需要做一些簡單的配置:</p><p>  在MyEclipse中,選擇Window > Preference;  </p><p>  從左側(cè)的菜單中,選擇Android項;  </p><

54、p>  設(shè)置SDK Location,點(diǎn)Browse選擇SDK的安裝根目錄;   </p><p><b>  OK,完成。</b></p><p>  2.3.3 Android ADT</p><p>  在開發(fā)Android的過程中,不可能一直用真機(jī)進(jìn)行測試,因此必須安裝ADT插件,這樣就可以再M(fèi)yEclipse中使用Android

55、模擬器進(jìn)行調(diào)試了。ADT就是一些特定的軟件包、軟件框架、硬件平臺、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合。在Android中,它為開發(fā)者提供了庫文件以及其它開發(fā)所用到的工具。也就是說它是開發(fā)工具包集合,是整體開發(fā)中所用到的工具包。</p><p>  有了這個工具包就可以對程序進(jìn)行模擬器測試,如圖2.3Android模擬器界面:</p><p>  圖2.3 Android模擬器界面<

56、;/p><p>  3 基于Nios II的物聯(lián)網(wǎng)監(jiān)控端設(shè)計</p><p>  本章將介紹整個硬件監(jiān)控端以及信息接收端的設(shè)計,由于硬件電路板已經(jīng)是做好的,而且本課題主要重點(diǎn)在于手機(jī)端軟件的設(shè)計,所以本章只是從理論上介紹其設(shè)計實(shí)現(xiàn)。如何用溫度和加速度等各種傳感器檢測到人體的體溫和姿態(tài),如何將檢測到的數(shù)據(jù)進(jìn)行編碼,如何將檢測到的數(shù)據(jù)通過無線發(fā)送到信息接收端,如何將信息接收端接收到的數(shù)據(jù)打包準(zhǔn)備

57、發(fā)送到手機(jī)以及通過串口發(fā)送到PC機(jī),這些問題都將在本章得到解決。</p><p><b>  3.1 系統(tǒng)結(jié)構(gòu)</b></p><p>  本系統(tǒng)以Altera FPGA開發(fā)平臺為核心,采用各種人體傳感器對人的體溫、脈搏、心電等生命體征信息進(jìn)行采集,利用三軸加速度傳感器實(shí)現(xiàn)對人體姿態(tài)的采集,通過無線的方式進(jìn)行傳輸,通過軟件應(yīng)用程序在觸摸屏上顯示交互界面,通過觸摸屏與P

58、S2鍵盤進(jìn)行數(shù)據(jù)的輸入。另外,監(jiān)測數(shù)據(jù)存儲在大容量SD卡中,用戶可以通過網(wǎng)絡(luò)、GPRS進(jìn)行遠(yuǎn)程監(jiān)護(hù)。圖3.1是系統(tǒng)結(jié)構(gòu)示意圖。</p><p>  圖3.1系統(tǒng)結(jié)構(gòu)示意圖</p><p>  系統(tǒng)主要包含三個層面,即信息檢測層、信號處理層、信息反饋層。信息檢測層完成數(shù)據(jù)的檢測與數(shù)據(jù)的無線發(fā)送,信息處理層完成數(shù)據(jù)的無線接收與信息處理,信息反饋層實(shí)現(xiàn)人機(jī)交互與有效信息的各種反饋,系統(tǒng)框圖具體如

59、圖3.2所示。</p><p>  圖3.2系統(tǒng)結(jié)構(gòu)框圖</p><p>  3.1.1 硬件結(jié)構(gòu)</p><p>  系統(tǒng)硬件由體征信息采集端、體征信息接收與傳輸端和監(jiān)護(hù)端硬件組成,需要進(jìn)行的硬件開發(fā)包括信息采集端硬件電路的設(shè)計、接收傳輸端硬件電路設(shè)計、GPRS模塊接口電路設(shè)計、無線模塊電路設(shè)計、各種傳感器接口電路設(shè)計,以及監(jiān)護(hù)端SOPC系統(tǒng)的構(gòu)建。</p&

60、gt;<p>  圖3.3監(jiān)控端硬件結(jié)構(gòu)示意框圖</p><p><b>  3.1.2軟件結(jié)構(gòu)</b></p><p>  采集端主要用于控制各種傳感器以及CC1101無線模塊的正常工作,因此主要設(shè)計了對脈搏傳感器以及心電傳感器的A/D采樣算法,溫度傳感器讀取溫度算法、CC1101控制算法等。為了保證電池的使用時間,還設(shè)置了無線模塊的低功耗模式等。監(jiān)控

61、端軟件結(jié)構(gòu)圖如圖3.4所示:</p><p>  圖3.4監(jiān)護(hù)端軟件結(jié)構(gòu)圖</p><p>  3.2 監(jiān)控端硬件設(shè)計</p><p>  本系統(tǒng)的采集端以STM32F101C6為控制核心,對各種傳感器進(jìn)行編程控制,將采集所得到的體征信息通過無線方式進(jìn)行傳輸。在IAR5.4開發(fā)環(huán)境下編寫應(yīng)用程序。</p><p>  本系統(tǒng)的接收與傳輸端也是

62、以STM32F101C6為控制核心、對M20(GPRS)模塊、CC1101無線收發(fā)模塊以及232串口進(jìn)行編程控制。在IAR5.4開發(fā)環(huán)境下編寫應(yīng)用程序。</p><p>  本系統(tǒng)監(jiān)護(hù)端以帶MMU的Nios II CPU為核心,以Linux操作系統(tǒng)作為底層平臺,以圖形庫作為應(yīng)用接口,通過avalon總線接口的自定義模塊與LTM、PS/2鍵盤、SD卡等硬件設(shè)備相接。通過Linux驅(qū)動模型管理自定義模塊的相應(yīng)驅(qū)動,通

63、過輕量級圖形庫FTK GUI的API接口編寫應(yīng)用程序。</p><p>  3.2.1 信息采集端硬件設(shè)計</p><p>  采集端硬件電路主要包括電源電路、Jlink下載調(diào)試電路、信號采集電路、加速度傳感器電路、CC1101無線電路等,其硬件電路框圖如圖3.5所示。</p><p>  圖3.5信息采集端硬件框圖</p><p>  由于

64、采集端是佩戴在人體身上,所以選擇可充電3.7V鋰電池作為電源,由于部分傳感的工作電壓為5V和為了保證使用的時間考慮使用兩節(jié)電池串聯(lián)的方式供電。</p><p>  由于脈搏傳感器采集出來的脈搏信號個體差異比較明顯,當(dāng)被檢測人員身體發(fā)生抖動時可能出現(xiàn)負(fù)電壓的脈搏信號,所以在脈搏信號輸入A/D前通過了1.1V的電平提升電路,避免了負(fù)電壓的出現(xiàn)。</p><p>  3.2.2信息接收與傳輸端硬

65、件設(shè)計</p><p>  接收與傳輸端主要包括電源電路、Jlink下載調(diào)試電路、232接口電路和GPRS接口電路等,其硬件電路框圖如圖3.6所示。</p><p>  圖3.6接收與傳輸端硬件框圖</p><p>  3.2.3監(jiān)護(hù)端端硬件設(shè)計</p><p>  根據(jù)系統(tǒng)設(shè)計需求,在Nios II系統(tǒng)中添加的必要外設(shè)有:充當(dāng)內(nèi)存的SDRA

66、M,SSRAM,串行芯片EPCS,固化程序的FLASH,調(diào)試用的串口JTAG,系統(tǒng)時鐘,輔助時鐘,以及自定義模塊:SD卡、PS/2、USB口、網(wǎng)口等。SOPC系統(tǒng)配置如圖3.7所示。</p><p>  圖3.7 SOPC系統(tǒng)配置</p><p>  3.3 監(jiān)控端軟件設(shè)計</p><p>  3.3.1體征信息采集端的軟件設(shè)計</p><p&g

67、t;  體征信息采集端的軟件流程圖如圖3.8所示。本部分軟件設(shè)計主要完成STM32對信號的采集處理與無線發(fā)送。</p><p>  圖3.8信息采集端軟件流程圖</p><p><b>  溫度傳感器軟件設(shè)計</b></p><p>  本設(shè)計采用DS18B20數(shù)字溫度傳感器來采集人體溫度。DS18B20數(shù)字溫度計提供12位(二進(jìn)制)溫度讀數(shù),

68、信息經(jīng)過單線接口送入DS18B20或從DS18B20送出。DS1820的測量范圍從古-55℃到+125℃,可在1s內(nèi)把溫度變換成數(shù)字。</p><p>  STM32控制DS18B20完成一次溫度轉(zhuǎn)換必須經(jīng)過3個步驟:復(fù)位、發(fā)送ROM指令、發(fā)送RAM指令。每次對DS18B20的操作都要進(jìn)行以上三個步驟。</p><p>  復(fù)位:STM32將數(shù)據(jù)線拉低至少480us,然后釋放數(shù)據(jù)線,等待1

69、5-60us讓DS18B20接收信號,DS18B20接收到信號后,會把數(shù)據(jù)線拉低60-240us,主機(jī)檢測到數(shù)據(jù)線被拉低后標(biāo)識復(fù)位成功。</p><p>  發(fā)送ROM指令:ROM指令表示主機(jī)對系統(tǒng)上所接的全部DS18B20進(jìn)行尋址,以確定對哪一個DS18B20進(jìn)行操作,或者是讀取某個DS18B20的ROM序列號。</p><p>  發(fā)送RAM指令:RAM指令用于單片機(jī)對DS18B20內(nèi)

70、部RAM進(jìn)行操作,如讀取寄存器的值,或者設(shè)置寄存器的值。</p><p><b>  姿態(tài)檢測算法</b></p><p>  人體姿態(tài)檢測是醫(yī)療監(jiān)護(hù)的重要方面,通過對運(yùn)動姿態(tài)檢測,有益于對運(yùn)動障礙病人進(jìn)行診斷和治療,為醫(yī)療康復(fù)提供重要的參考數(shù)據(jù),由于本系統(tǒng)中需要測試脈搏、心電、體溫等其他體征信息所以只是測試人體處于靜止?fàn)顟B(tài)時的一些姿態(tài)信息。</p>&

71、lt;p>  本文在測試者腰部佩戴傳感器來檢測運(yùn)動時加速度信息。將X、Y、Z三軸所得到的加速度信息送給單片機(jī)進(jìn)行A/D采樣,在軟件上通過對三軸加速度數(shù)據(jù)分析,設(shè)計出一套判斷人體姿態(tài)的算法。姿態(tài)算法流程圖如圖3.9所示。</p><p>  圖3.9 姿態(tài)算法流程圖</p><p>  3.3.2體征信息接收與傳輸端軟件設(shè)計</p><p>  體征信息接收與傳

72、輸端的軟件流程圖如圖3.10所示。本部分軟件設(shè)計主要完成STM32對信號的無線接收處理及串口發(fā)送,GPRS短信收發(fā)。</p><p>  圖3.10信息接收與傳輸端軟件流程圖</p><p>  通過無線傳送到信息接收端,然后將數(shù)據(jù)打包,用一個Byte數(shù)組存放并將該數(shù)據(jù)通過串口發(fā)送到PC機(jī)上,或者解析成相應(yīng)的溫度加速度值,在溫度大于33°C時采用短信的傳輸方式將數(shù)據(jù)發(fā)送到手機(jī)端。

73、</p><p>  4 基于Android的手機(jī)軟件設(shè)計</p><p>  本章主要介紹手機(jī)端整個系統(tǒng)軟件的實(shí)現(xiàn)過程,也是本課題的核心設(shè)計。采用3種不同的通信方式——短信、Wifi、網(wǎng)頁接收監(jiān)控端發(fā)送過來的數(shù)據(jù),每種通信方式相互獨(dú)立,可供用戶選擇使用。同時也將介紹Wifi熱點(diǎn)的配置以及Android開發(fā)中幾個重要的問題,不僅僅應(yīng)用于該課題,相信在其他很多地方這些知識也是相當(dāng)有用的。&

74、lt;/p><p><b>  4.1 設(shè)計概述</b></p><p>  4.1.1 研究目標(biāo)</p><p>  (1)了解Android應(yīng)用程序的設(shè)計和開發(fā)過程。</p><p>  (2) 使用多種組件進(jìn)行Android 監(jiān)控軟件的開發(fā)。</p><p>  (3) 采用多種通信方式接受監(jiān)

75、控端發(fā)送的數(shù)據(jù)并顯示。</p><p>  4.1.2 需求分析</p><p>  該軟件是為了實(shí)現(xiàn)接收從監(jiān)控端硬件板上發(fā)送到手機(jī)端的監(jiān)控數(shù)據(jù),實(shí)現(xiàn)在手機(jī)上安裝好改程序后能夠正常啟動并開始對監(jiān)控端發(fā)送的實(shí)時數(shù)據(jù)進(jìn)行監(jiān)控顯示。該軟件的首頁會有三個選項,每個選項對應(yīng)相應(yīng)的監(jiān)控模式所選擇的通信方式,每種通信方式對應(yīng)功能分別如下:</p><p><b>  短

76、信監(jiān)控模式</b></p><p>  該模式是實(shí)現(xiàn)接收監(jiān)控端發(fā)送的短信數(shù)據(jù),并進(jìn)行解析,在屏幕上</p><p>  顯示。當(dāng)監(jiān)控端測量到溫度超過37攝氏度時會自動向所設(shè)定的手機(jī)發(fā)送報警短信。手機(jī)端將接收到的短信進(jìn)行解析并實(shí)現(xiàn)報警的效果,同時將該條信息存放到某固定的TXT文件中,方便隨時對歷史報警記錄的查看。</p><p><b>  Wi

77、fi監(jiān)控模式</b></p><p>  該模式需要實(shí)現(xiàn)將電腦設(shè)為熱點(diǎn),手機(jī)通過其Wifi功能與電腦進(jìn)行連接,同時接收由監(jiān)控板通過串口將數(shù)據(jù)發(fā)送到PC機(jī)再由PC機(jī)通過UDP協(xié)議將數(shù)據(jù)發(fā)送到手機(jī)。手機(jī)端需要實(shí)時接收并顯示溫度和姿態(tài)等數(shù)據(jù)。</p><p><b>  網(wǎng)頁監(jiān)控模式</b></p><p>  該模式需要實(shí)現(xiàn)搭建J2EE

78、服務(wù)器,構(gòu)建自己的網(wǎng)站。使用JSP,Serverlet,JDBC等技術(shù)在公共網(wǎng)絡(luò)上顯示監(jiān)控板通過串口發(fā)送到PC機(jī)上再由PC機(jī)將數(shù)據(jù)部署到tomcat服務(wù)器上。手機(jī)軟件通過點(diǎn)擊網(wǎng)頁監(jiān)控按鈕直接訪問該網(wǎng)站達(dá)到實(shí)時監(jiān)控的效果。 </p><p>  三種監(jiān)控模式可以互相切換,其中短信模式實(shí)現(xiàn)報警功能,所以無論該軟件是否處于運(yùn)行的狀態(tài),都將隨時監(jiān)控是否收到報警短信,并直接用Toast的方式顯示在手機(jī)屏幕上。如圖4.1所示

79、系統(tǒng)結(jié)構(gòu)圖:</p><p>  圖4.1 系統(tǒng)結(jié)構(gòu)圖</p><p>  4.2 基于UDP協(xié)議的Wifi通信設(shè)計</p><p>  4.2.1 UDP協(xié)議簡介</p><p>  UDP 是User Datagram Protocol的簡稱, 中文譯為用戶數(shù)據(jù)包協(xié)議,是一種無連接的傳輸層協(xié)議,提供不可靠信息傳送服務(wù)。在網(wǎng)絡(luò)中用于處理數(shù)據(jù)

80、包,與TCP協(xié)議有類似的地方。在七層協(xié)議中位于第四層——傳輸層,在IP協(xié)議的上一層。UDP有不能對數(shù)據(jù)包的排序和不提供數(shù)據(jù)報分組、組裝和的缺點(diǎn),也就是說,當(dāng)數(shù)據(jù)發(fā)送出去以后不能知道接收端有沒有收到或者數(shù)據(jù)有沒有到達(dá)。 不過UDP與TCP相比具有速度快的優(yōu)點(diǎn),能夠一直不停的發(fā)送數(shù)據(jù)而不需要服務(wù)器端發(fā)送反饋信息。直至今日,UDP也是一種非常實(shí)用和可行的網(wǎng)絡(luò)傳輸協(xié)議。如下圖4.2所示為UDP傳輸原理圖:</p><p>

81、;  圖4.2 UDP傳輸原理</p><p>  4.2.2 PC端串口程序設(shè)計</p><p>  串口程序主要是通過串口接收監(jiān)控板端發(fā)送到PC的數(shù)據(jù),以byte數(shù)據(jù)流的形式接收。在設(shè)計程序中必須引入Javax.comm包,下面介紹該包中幾個重要的類:</p><p>  Javax.comm.Commport:</p><p>  這是

82、用于描述一個被底層系統(tǒng)支持的端口的抽象類。它包含一些高層的IO控制方法,這些方法對于所有不同的通訊端口來說是通用的。</p><p>  Javax.comm.CommPortIdentifier:</p><p>  這個類主要用于對串口進(jìn)行管理和設(shè)置,是對串口進(jìn)行訪問控制的核心類。主要包括以下方法</p><p> ?。?) 確定是否有可用的通信端口</p

83、><p>  (2)為IO操作打開通信端口</p><p> ?。?)決定端口的所有權(quán)</p><p>  javax.comm.SerialPort:</p><p>  這個類用于描述一個RS-232串行通信端口的底層接口,它定義了串口通信所需的最小功能集。通過它,用戶可以直接對串口進(jìn)行讀、寫及設(shè)置工作。</p><p&g

84、t;  程序的組成架構(gòu).圖4.3為串口發(fā)送流程圖:</p><p>  圖4.3 串口發(fā)送流程圖</p><p>  該模塊的主要功能是實(shí)現(xiàn)通過串口從開發(fā)板上接收數(shù)據(jù)。</p><p>  (1)SerialDemo類:</p><p><b>  圖4.4 用戶界面</b></p><p>  

85、該類主要負(fù)責(zé)創(chuàng)建串口接收的面板,用于與用戶之間的交互。用戶可以通過該面板設(shè)置串口的參數(shù)并且通過串口發(fā)送和接收數(shù)據(jù)。</p><p>  其中Choice控件提供給用戶用來選擇波特率,輸入流控制方式,輸出流控制方式,數(shù)據(jù)位,停止位以及奇偶校驗。還有兩個TextArea用來發(fā)送和接收數(shù)據(jù)。</p><p>  (2)SerialConnection類用來連接串口,主要調(diào)用的函數(shù)是portId=

86、CommPortIdentifier.getPortIdentifier(parameters.getPortName());該函數(shù)用于打開電腦發(fā)現(xiàn)的串口,并返回串口的ID。然后調(diào)用(SerialPort)portId.open("SerialDemo", 30000)函數(shù)用來打開串口,并調(diào)用設(shè)置串口的函數(shù),用來把在SerialDemo中設(shè)置的串口相關(guān)的參數(shù)傳遞到SerialParameters中,并在該函數(shù)中定義一

87、個輸入流和一個輸出流。 InputStream is = sPort.getInputStream();//從外設(shè)獲取數(shù)據(jù)    </p><p>  OutputStream os = 

88、;sPort.getOutputStream();//發(fā)送命令到外設(shè)  </p><p> ?。?)SerialConnectionException類,用于處理串口連接的異常。</p><p>  4.2.3 數(shù)據(jù)包的解析法則</p><p>  在PC機(jī)上采用串口的方式接收監(jiān)控端發(fā)送過來的數(shù)據(jù)并不是直觀明了的,這是采用一定的法則在監(jiān)控端將數(shù)據(jù)

89、編碼打包,將整個數(shù)據(jù)包一幀一幀的發(fā)送到PC機(jī)。所以在PC端就需要對該數(shù)據(jù)包進(jìn)行解碼,把各項數(shù)據(jù)直觀明了的解析成人所能理解到的信息,如溫度加速度等具體的值,這樣講解析出來的字符串直接通過UDP協(xié)議發(fā)送到手機(jī)端就非常直觀了。</p><p>  其具體的解析法則是根據(jù)監(jiān)控端的打包法則,一項一項的提取數(shù)據(jù),首先分析數(shù)據(jù)包的結(jié)構(gòu):數(shù)據(jù)包是由255個十六進(jìn)制數(shù)組成的Byte數(shù)組,其中以“FFFF”開頭,以“EEEE”結(jié)尾,

90、表明每一個數(shù)據(jù)包的開始和結(jié)束,接下來是以“AAAA”或“BBBB”形式的字節(jié)數(shù)連接,其中“AAAA”表示心跳監(jiān)控,“BBBB”表示脈搏監(jiān)控,之后連接兩位十六進(jìn)制數(shù)“XXXX”表示溫度位,然后同樣以兩位十六進(jìn)制數(shù)表示姿態(tài),接下來連接244位十六進(jìn)制數(shù)表示心電的波形圖,其后分別連接一位十六進(jìn)制數(shù)表示心跳(或脈搏)平均值和一位十六進(jìn)制數(shù)表示心跳(或脈搏)最大值。整個數(shù)據(jù)包結(jié)構(gòu)如下圖4.5所示:</p><p>  圖4

91、.5 監(jiān)控端發(fā)送數(shù)據(jù)包結(jié)構(gòu)</p><p>  在發(fā)送過程中,監(jiān)控端以200ms每幀的速度發(fā)送數(shù)據(jù)包,在接收端由于會造成堵塞,所以并不能保證每次收到的數(shù)據(jù)時一個完整的數(shù)據(jù)包,這個時候就需要對數(shù)據(jù)包進(jìn)行判斷,只有當(dāng)接收到一個完整的數(shù)據(jù)包時才進(jìn)行解析,否則就繼續(xù)等待。具體實(shí)現(xiàn)方式如下:</p><p>  首先將每次接收到的數(shù)據(jù)包(即長度為256的Byte數(shù)組)轉(zhuǎn)換為16進(jìn)制并且用字符串的形式

92、存放。</p><p>  創(chuàng)建一個成員變量StringBuffer,用于對接收到并轉(zhuǎn)換成字符串的數(shù)據(jù)進(jìn)行臨時存放。</p><p>  將字符串添加到StringBuffer中并將StringBuffer轉(zhuǎn)換成字符串。此時如果是一個完整的數(shù)據(jù)包,該字符串的長度應(yīng)該是512位。</p><p>  截取字符串的前4位,判斷是否等于“FFFF”,如果是則認(rèn)為是一個數(shù)據(jù)

93、包的開始,執(zhí)行下一步;如果不是,等待。</p><p>  判斷該字符串的長度是否大于等于512,若大于等于,則執(zhí)行下一步,否則繼續(xù)等待。</p><p>  截取字符串的5到8位,判斷等于“AAAA”或“BBBB”,若為“AAAA”則為心跳監(jiān)控,若為“BBBB”則為脈搏監(jiān)控。(只有兩種情況)</p><p>  截取字符串的9到12位,將字符串轉(zhuǎn)換為十六進(jìn)制數(shù),這

94、里用到了Java Util類的Integer.parseInt(s, 16)方法,其中s表示所需要希望轉(zhuǎn)換成整數(shù)的字符串,16表示按照十六進(jìn)制轉(zhuǎn)換成整數(shù)。將轉(zhuǎn)換的整數(shù)乘以系數(shù)0.0625表示溫度值,是一個浮點(diǎn)型數(shù)值。</p><p>  截取字符串的13到16位,將字符串轉(zhuǎn)換為十六進(jìn)制數(shù)表示姿態(tài)位,所得到的整數(shù)可能為0,1,2,3,4,5,6七中情況,分別代表“姿態(tài)轉(zhuǎn)換中”,“直立”,“平躺”,“右側(cè)臥”,“左側(cè)

95、臥”,“匍匐”,“倒立”。改數(shù)值以字符串表示監(jiān)控到的姿態(tài)。</p><p>  截取字符串的17到504位,將字符串轉(zhuǎn)換為十六進(jìn)制數(shù)表示心跳(脈搏)波形位,將這244個數(shù)據(jù)存放到整形數(shù)組中,方便之后的畫圖操作。</p><p>  截取字符串的505到506位,將字符串轉(zhuǎn)換為十六進(jìn)制數(shù)表示心跳(脈搏)最大值,將該數(shù)據(jù)用整形變量存放。</p><p>  截取字符串的

96、505到506位,將字符串轉(zhuǎn)換為十六進(jìn)制數(shù),用6000處以該數(shù)據(jù)表示心跳(脈搏)平均值,用整形變量存放。</p><p>  處理完后刪除字符串的前512位,這里用到sb.delete(0, 512)方法直接刪除StringBuffer中的0到251位字符。</p><p>  每接收到一次數(shù)據(jù)將轉(zhuǎn)換的字符串添加到StringBuffer的末尾并依次執(zhí)行A-L的步驟。</p>

97、<p>  具體解析流程如下圖4.6所示:</p><p>  圖4.6 數(shù)據(jù)包解析流程圖</p><p>  解析完畢后各項數(shù)據(jù)就能夠直觀明了的現(xiàn)實(shí)出來了,本課題中我只對溫度和姿態(tài)進(jìn)行發(fā)送,其他數(shù)據(jù)可在今后擴(kuò)展功能中用到。</p><p>  4.2.4 UDP發(fā)送及接收程序設(shè)計</p><p>  在PC端收到監(jiān)控板發(fā)過來的數(shù)

98、據(jù)的同時,必須要向手機(jī)端將解析好的數(shù)據(jù)不停的發(fā)送,同時手機(jī)端要通過線程實(shí)現(xiàn)不停的接受數(shù)據(jù)并實(shí)時的更新屏幕上顯示的內(nèi)容。要想實(shí)現(xiàn)此功能我采用了UDP通信協(xié)議以及Android線程等技術(shù)。</p><p><b>  服務(wù)器端(PC端)</b></p><p>  服務(wù)器端主要負(fù)責(zé)將從監(jiān)控板接收到數(shù)據(jù)解析成字符串后發(fā)送到客戶端,這里需要用到j(luò)ava.net包里面的Data

99、gramPacket類,DatagramPacket表示數(shù)據(jù)報包。 數(shù)據(jù)報包用來實(shí)現(xiàn)無連接包投遞服務(wù)。每條報文僅根據(jù)該包中包含的信息從一臺機(jī)器路由到另一臺機(jī)器。從一臺機(jī)器發(fā)送到另一臺機(jī)器的多個包可能選擇不同的路由,也可能按不同的順序到達(dá)。不對包投遞做出保證。其構(gòu)造方法DatagramPacket dp = new DatagramPacket(bytes, bytes.length, InetAddress.getByName(host

100、), port),其中bytes表示需要傳送數(shù)據(jù)的二進(jìn)制值數(shù)組,然后得到其長度,host表示與之建立連接的IP地址,最后是端口號。這樣就將需呀發(fā)送的數(shù)據(jù)打包成了一個DatagramPacket。</p><p>  打包好后需要將數(shù)據(jù)包發(fā)送出去,發(fā)送數(shù)據(jù)包也將用到j(luò)ava.net包里面的DatagramSocket類,它表示用來發(fā)送和接收數(shù)據(jù)報包的套接字。 數(shù)據(jù)報套接字是包投遞服務(wù)的發(fā)送或接收點(diǎn)。每個在數(shù)據(jù)報套接

101、字上發(fā)送或接收的包都是單獨(dú)編址和路由的。從一臺機(jī)器發(fā)送到另一臺機(jī)器的多個包可能選擇不同的路由,也可能按不同的順序到達(dá)。這里直接調(diào)用該類的send(dp)方法,其參數(shù)dp即為剛剛打包好的數(shù)據(jù)報包。很簡單的兩個類就實(shí)現(xiàn)了UDP服務(wù)器端的發(fā)送。</p><p><b>  客戶端(手機(jī)端)</b></p><p>  客戶端在Android手機(jī)上實(shí)現(xiàn),主要還是基于Java

102、UDP通信。手機(jī)端同樣用到DatagramSocket和DatagramPacket類,首先創(chuàng)建一個DatagramSocket對象,同時在構(gòu)造方法中構(gòu)造端口號,如:DatagramSocket s = new DatagramSocket(1234) ,創(chuàng)建一個空的DatagramPacket對象用于存放接收到的DatagramPacket包,然后就可以在while(true)死循環(huán)中用使用receive方法一直接收客戶端所發(fā)送的數(shù)據(jù)

103、。</p><p>  為了達(dá)到實(shí)時更新界面的效果,我采用線程的方法。在android線程的使用中會出現(xiàn)一個很嚴(yán)重的問題,android更新UI界面只能是在Main主線程更新,而在接收數(shù)據(jù)的子線程中更新UI界面是線程不安全的,所以如果在此更新界面就會報錯。于是我們必須采用android的消息隊列機(jī)制來解決該問題,它滿足先進(jìn)先出的原理,并不會發(fā)生插隊現(xiàn)象。這里介紹Handler類: 你可以構(gòu)造Handler 對象來

104、與Looper 溝通,以便將新消息壓隊列 里;或者接收Looper從消息隊列中取出所送來的消息。具體操作如下:在該頁面對應(yīng)的Activity里創(chuàng)建成員變量Handler并進(jìn)行初始化,同時創(chuàng)建主線程mainThread,在接收數(shù)據(jù)的線程里將接收到的數(shù)據(jù)(這里指一個字符串)重定向,例如:handler.post(mUpdateResults),即將該數(shù)據(jù)壓入到隊列中,這樣就可以再主線程中更新UI界面,達(dá)到實(shí)時監(jiān)控的效果。</p>

105、<p>  4.2.5 熱點(diǎn)的配置</p><p>  要想實(shí)現(xiàn)電腦與手機(jī)端的UDP通信,必須要使手機(jī)與電腦建立WiFi連接,通過手機(jī)的Wifi功能去搜索無線網(wǎng)絡(luò),此時就必須要將電腦設(shè)置成一個無線路由器,讓手機(jī)能搜索到該無線網(wǎng)絡(luò),并能夠連上該網(wǎng)絡(luò)同時使用電腦的網(wǎng)絡(luò)功能。這樣,手機(jī)和電腦就同時在一個局域網(wǎng)內(nèi),就可以隨意通過UDP協(xié)議互相發(fā)送數(shù)據(jù)了。將電腦設(shè)為熱點(diǎn)后,在本課題中電腦就將作為服務(wù)器,通過串

106、口接收來自監(jiān)控板上發(fā)來的數(shù)據(jù)的同時將該數(shù)據(jù)發(fā)送到客戶端,即手機(jī)端程序,手機(jī)端作為客戶端就能實(shí)時接收發(fā)送過來的數(shù)據(jù),達(dá)到實(shí)時監(jiān)控的效果。 下面介紹將使用dr.com登陸校園網(wǎng)的電腦設(shè)置為熱點(diǎn)的方法:</p><p>  使用dr.com認(rèn)證網(wǎng),通過電腦Wifi熱點(diǎn)共享上網(wǎng)必須要滿足3個條件:</p><p>  操作系統(tǒng)為微軟32bit操作系統(tǒng)。</p><p>  

107、電腦有無線網(wǎng)卡。(本課題測試筆記本所使用的網(wǎng)卡是Atheros AR5B97 Wireless NetWork Adapter)</p><p>  無線網(wǎng)卡支持承載網(wǎng)絡(luò)。檢測方法:開始運(yùn)行cmd鍵入netsh wlan show drivers.如果出現(xiàn)下圖顯示即表示支持(如圖4.7所示)。</p><p>  圖4.7 是否支持承載網(wǎng)絡(luò)監(jiān)測結(jié)果</p><p>

108、  如果滿足上述三個條件就可以開始配置熱點(diǎn)了:</p><p>  第一步:以管理員身份運(yùn)行打開命令窗口,輸入以下兩行命令:</p><p>  1.Netsh wlan set hostednetwork mode=allow ssid=feng key=88888888.</p><p>  這句話是指將承載網(wǎng)絡(luò)設(shè)置為允許,并且將網(wǎng)絡(luò)名設(shè)置為“feng”安全密鑰

109、設(shè)置為“88888888”。這樣當(dāng)手機(jī)或者任何其他具有Wifi功能的設(shè)備都可以在一定范圍內(nèi)搜索該網(wǎng)絡(luò)并且輸入密碼就可以連接成功。(如圖4.8所示)</p><p>  圖4.8 承載網(wǎng)絡(luò)設(shè)置成功</p><p>  2.Netsh wlan start hostednetwork。</p><p>  鍵入該命令以打開熱點(diǎn),這樣就能被其他設(shè)備搜索到了。(如圖49所示

110、)</p><p>  圖4.9 啟動承載網(wǎng)絡(luò)</p><p>  設(shè)置成功后打開控制面板---網(wǎng)絡(luò)和Internet---網(wǎng)絡(luò)和共享中心—點(diǎn)擊更改網(wǎng)絡(luò)適配器,在網(wǎng)絡(luò)連接界面,可以看到出現(xiàn)了一個WiFi2(名字系統(tǒng)生成,認(rèn)準(zhǔn)Microsoft Virtual字樣)的虛擬連接</p><p>  第二步:打開網(wǎng)絡(luò)連接的本地連接的屬性對話框, 依次選擇共享、勾選、選擇剛

溫馨提示

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

最新文檔

評論

0/150

提交評論