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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

5、功能。三種通信方式各有所長(zhǎng)。</p><p>  對(duì)于整個(gè)系統(tǒng),已基本實(shí)現(xiàn)預(yù)期功能,同時(shí)也能對(duì)其進(jìn)行拓展,例如手機(jī)與監(jiān)控端的相互交互等。對(duì)于后續(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è)計(jì)背景

13、1</p><p>  1.2 國(guó)內(nèi)外研究現(xiàn)狀綜述1</p><p>  1.3 設(shè)計(jì)特點(diǎn)2</p><p>  1.4 設(shè)計(jì)功能概述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ù)及開(kāi)

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

15、p>  2.3 Java及Android開(kāi)發(fā)工具簡(jiǎn)介7</p><p>  2.3.1 MyEclipse集成開(kāi)發(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è)計(jì)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è)計(jì)11</p><p>  3.2.1 信息采集端硬件設(shè)計(jì)11</p><p>  3.2.2 信息接收與傳輸硬件設(shè)計(jì)12</p&g

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

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

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

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

21、  4.4.4 手機(jī)端嵌入網(wǎng)頁(yè)的設(shè)計(jì)29</p><p>  4.5 系統(tǒng)架構(gòu)及界面設(shè)計(jì)29</p><p>  4.5.1 系統(tǒng)程序文件結(jié)構(gòu)及功能29</p><p>  4.5.2 系統(tǒng)界面設(shè)計(jì)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è)計(jì)背景</b></p><p>  近年來(lái),Android手機(jī)興起的趨勢(shì)無(wú)法阻擋,而至今年Android手機(jī)已占據(jù)全球智

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

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

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

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

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

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

29、姿態(tài)、體溫、脈搏、心跳等生命體征信息的獲取,并且通過(guò)多種無(wú)線傳輸方式如短信,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)程查詢(xún)被監(jiān)護(hù)人的生理情況,在被監(jiān)護(hù)人生理情況出現(xiàn)異常時(shí),系統(tǒng)自動(dòng)采取多種報(bào)警即應(yīng)急措施。</p><p>  本監(jiān)護(hù)儀區(qū)別于傳統(tǒng)的大型檢測(cè)儀器,利用SOPC的思想將監(jiān)測(cè)人體姿態(tài)、體溫、脈搏、心跳等基本生命體征的傳感器集中在一起

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

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

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

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

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

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

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

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

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

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

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

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

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

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

44、lt;p>  Android手機(jī)軟件主要采用Java語(yǔ)言編寫(xiě),打包為.apk格式供用戶(hù)下載安裝到Android系統(tǒng)上。所以結(jié)合Java面向?qū)ο蟮恼Z(yǔ)言特點(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開(kāi)發(fā)工具簡(jiǎn)介</p>

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

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

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

48、;  JavaEE項(xiàng)目部署服務(wù) </p><p><b>  數(shù)據(jù)庫(kù)服務(wù) </b></p><p>  MyEclipse整合幫助 </p><p>  以上每一種功能上的類(lèi)別都可以再Eclipse中得到相應(yīng)的體現(xiàn),并通過(guò)一系列的插件來(lái)實(shí)現(xiàn)它們。MyEclipse在Eclipse的基礎(chǔ)上,可以讓我們?cè)诓挥绊懫渌K的情況下,對(duì)任一模塊進(jìn)行單獨(dú)的

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

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

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

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

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

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

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

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

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

58、S2鍵盤(pán)進(jìn)行數(shù)據(jù)的輸入。另外,監(jiān)測(cè)數(shù)據(jù)存儲(chǔ)在大容量SD卡中,用戶(hù)可以通過(guò)網(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)主要包含三個(gè)層面,即信息檢測(cè)層、信號(hào)處理層、信息反饋層。信息檢測(cè)層完成數(shù)據(jù)的檢測(cè)與數(shù)據(jù)的無(wú)線發(fā)送,信息處理層完成數(shù)據(jù)的無(wú)線接收與信息處理,信息反饋層實(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)行的硬件開(kāi)發(fā)包括信息采集端硬件電路的設(shè)計(jì)、接收傳輸端硬件電路設(shè)計(jì)、GPRS模塊接口電路設(shè)計(jì)、無(wú)線模塊電路設(shè)計(jì)、各種傳感器接口電路設(shè)計(jì),以及監(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無(wú)線模塊的正常工作,因此主要設(shè)計(jì)了對(duì)脈搏傳感器以及心電傳感器的A/D采樣算法,溫度傳感器讀取溫度算法、CC1101控制算法等。為了保證電池的使用時(shí)間,還設(shè)置了無(wú)線模塊的低功耗模式等。監(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è)計(jì)</p><p>  本系統(tǒng)的采集端以STM32F101C6為控制核心,對(duì)各種傳感器進(jìn)行編程控制,將采集所得到的體征信息通過(guò)無(wú)線方式進(jìn)行傳輸。在IAR5.4開(kāi)發(fā)環(huán)境下編寫(xiě)應(yīng)用程序。</p><p>  本系統(tǒng)的接收與傳輸端也是

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

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

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

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

66、M,SSRAM,串行芯片EPCS,固化程序的FLASH,調(diào)試用的串口JTAG,系統(tǒng)時(shí)鐘,輔助時(shí)鐘,以及自定義模塊: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è)計(jì)</p><p>  3.3.1體征信息采集端的軟件設(shè)計(jì)</p><p&g

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

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

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

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

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

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

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

74、lt;/p><p><b>  4.1 設(shè)計(jì)概述</b></p><p>  4.1.1 研究目標(biāo)</p><p>  (1)了解Android應(yīng)用程序的設(shè)計(jì)和開(kāi)發(fā)過(guò)程。</p><p>  (2) 使用多種組件進(jìn)行Android 監(jiān)控軟件的開(kāi)發(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)控?cái)?shù)據(jù),實(shí)現(xiàn)在手機(jī)上安裝好改程序后能夠正常啟動(dòng)并開(kāi)始對(duì)監(jiān)控端發(fā)送的實(shí)時(shí)數(shù)據(jù)進(jìn)行監(jiān)控顯示。該軟件的首頁(yè)會(huì)有三個(gè)選項(xiàng),每個(gè)選項(xiàng)對(duì)應(yīng)相應(yīng)的監(jiān)控模式所選擇的通信方式,每種通信方式對(duì)應(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)控端測(cè)量到溫度超過(guò)37攝氏度時(shí)會(huì)自動(dòng)向所設(shè)定的手機(jī)發(fā)送報(bào)警短信。手機(jī)端將接收到的短信進(jìn)行解析并實(shí)現(xiàn)報(bào)警的效果,同時(shí)將該條信息存放到某固定的TXT文件中,方便隨時(shí)對(duì)歷史報(bào)警記錄的查看。</p><p><b>  Wi

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

78、服務(wù)器,構(gòu)建自己的網(wǎng)站。使用JSP,Serverlet,JDBC等技術(shù)在公共網(wǎng)絡(luò)上顯示監(jiān)控板通過(guò)串口發(fā)送到PC機(jī)上再由PC機(jī)將數(shù)據(jù)部署到tomcat服務(wù)器上。手機(jī)軟件通過(guò)點(diǎn)擊網(wǎng)頁(yè)監(jiān)控按鈕直接訪問(wèn)該網(wǎng)站達(dá)到實(shí)時(shí)監(jiān)控的效果。 </p><p>  三種監(jiān)控模式可以互相切換,其中短信模式實(shí)現(xiàn)報(bào)警功能,所以無(wú)論該軟件是否處于運(yùn)行的狀態(tài),都將隨時(shí)監(jiān)控是否收到報(bào)警短信,并直接用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è)計(jì)</p><p>  4.2.1 UDP協(xié)議簡(jiǎn)介</p><p>  UDP 是User Datagram Protocol的簡(jiǎn)稱(chēng), 中文譯為用戶(hù)數(shù)據(jù)包協(xié)議,是一種無(wú)連接的傳輸層協(xié)議,提供不可靠信息傳送服務(wù)。在網(wǎng)絡(luò)中用于處理數(shù)據(jù)

80、包,與TCP協(xié)議有類(lèi)似的地方。在七層協(xié)議中位于第四層——傳輸層,在IP協(xié)議的上一層。UDP有不能對(duì)數(shù)據(jù)包的排序和不提供數(shù)據(jù)報(bào)分組、組裝和的缺點(diǎn),也就是說(shuō),當(dāng)數(shù)據(jù)發(fā)送出去以后不能知道接收端有沒(méi)有收到或者數(shù)據(jù)有沒(méi)有到達(dá)。 不過(guò)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è)計(jì)</p><p>  串口程序主要是通過(guò)串口接收監(jiān)控板端發(fā)送到PC的數(shù)據(jù),以byte數(shù)據(jù)流的形式接收。在設(shè)計(jì)程序中必須引入Javax.comm包,下面介紹該包中幾個(gè)重要的類(lèi):</p><p>  Javax.comm.Commport:</p><p>  這是

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

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

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

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

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

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

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

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

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

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

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

93、包的開(kāi)始,執(zhí)行下一步;如果不是,等待。</p><p>  判斷該字符串的長(zhǎng)度是否大于等于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類(lèi)的Integer.parseInt(s, 16)方法,其中s表示所需要希望轉(zhuǎn)換成整數(shù)的字符串,16表示按照十六進(jìn)制轉(zhuǎn)換成整數(shù)。將轉(zhuǎn)換的整數(shù)乘以系數(shù)0.0625表示溫度值,是一個(gè)浮點(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個(gè)數(shù)據(jù)存放到整形數(shù)組中,方便之后的畫(huà)圖操作。</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>  解析完畢后各項(xiàng)數(shù)據(jù)就能夠直觀明了的現(xiàn)實(shí)出來(lái)了,本課題中我只對(duì)溫度和姿態(tài)進(jìn)行發(fā)送,其他數(shù)據(jù)可在今后擴(kuò)展功能中用到。</p><p>  4.2.4 UDP發(fā)送及接收程序設(shè)計(jì)</p><p>  在PC端收到監(jiān)控板發(fā)過(guò)來(lái)的數(shù)

98、據(jù)的同時(shí),必須要向手機(jī)端將解析好的數(shù)據(jù)不停的發(fā)送,同時(shí)手機(jī)端要通過(guò)線程實(shí)現(xiàn)不停的接受數(shù)據(jù)并實(shí)時(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ā)送到客戶(hù)端,這里需要用到j(luò)ava.net包里面的Data

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

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

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

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

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

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

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

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

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

108、  如果滿(mǎn)足上述三個(gè)條件就可以開(kāi)始配置熱點(diǎn)了:</p><p>  第一步:以管理員身份運(yùn)行打開(kāi)命令窗口,輸入以下兩行命令:</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>  鍵入該命令以打開(kāi)熱點(diǎn),這樣就能被其他設(shè)備搜索到了。(如圖49所示

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論