版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、編號:湖北文理學(xué)院理工學(xué)院本科畢業(yè)論文(設(shè)計)題目遠程遙控智能家電系統(tǒng)的設(shè)計電子科學(xué)與信息工程系計算機科學(xué)與技術(shù)專業(yè)學(xué)號12317127學(xué)生姓名樊友蜀指導(dǎo)教師李桂華起訖日期2015.102016.6湖北文理學(xué)院理工學(xué)院學(xué)位論文原創(chuàng)性聲明本人鄭重聲明:所呈交的論文是本人在導(dǎo)師的指導(dǎo)下獨立進行研究所取得的研究成果。除了文中特別加以標注引用的內(nèi)容外,本論文不包含任何其他個人或集體已經(jīng)發(fā)表或撰寫的成果作品。對本文的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明。本人完全意識到本聲明的法律后果由本人承擔。作者簽名:日期:年月日學(xué)位論文版權(quán)使用授權(quán)書本學(xué)位論文作者完全了解學(xué)校有關(guān)保留、使用學(xué)位論文
2、的規(guī)定,同意學(xué)校保留并向國家有關(guān)部門或機構(gòu)送交論文的復(fù)印件和電子版,允許論文被查閱和借閱。本人授權(quán)湖北文理學(xué)院理工學(xué)院可以將本學(xué)位論文的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存和匯編本學(xué)位論文。保密口,在年解密后適用本授權(quán)書。本學(xué)位論文屬于不保密口。(請在以上相應(yīng)方框內(nèi)打)作者簽名:日期:年月日導(dǎo)師簽名:日期:年月日遠程遙控智能家電系統(tǒng)的設(shè)計摘要:隨著計算機技術(shù)的發(fā)展,遠程信息交互變得簡單。智能設(shè)備的誕生使得人們的生活更加方便。尤其是近幾年“物聯(lián)網(wǎng)”概念的出現(xiàn),使得智能設(shè)備接入網(wǎng)絡(luò)的技術(shù)發(fā)展迅速,尤其是智能家電領(lǐng)域。當智能家電接入網(wǎng)絡(luò)之后,我們可以通過手機或
3、者其他手持智能設(shè)備在世界任意角落控制家里的家電設(shè)備。其給我們帶來的方便性,不言而喻。本文則是基于最新“物聯(lián)網(wǎng)”技術(shù),描述了實現(xiàn)手持智能終端控制家電設(shè)備的開發(fā)過程。介紹了系統(tǒng)所使用的技術(shù),實現(xiàn)的方法以及系統(tǒng)的特點。實現(xiàn)通過安卓手機終端遠程查看室內(nèi)電燈的狀態(tài)和和對其狀態(tài)的控制,以及實現(xiàn)對室內(nèi)溫度實時查看的功能。關(guān)鍵詞:智能家電;遠程控制;智能終端;物聯(lián)網(wǎng)2DesignofremotecontrolsystemofintelligenthomeappliancesAbstract:Withthedevelopmentofcomputertechnology,remoteinformationexch
4、angeeasier.Bornsmartdevicesmakepeople'slivesmoreconvenient.Especiallyinrecentyearsthere"things"concept,makingsmartdevicesaccessnetworktechnologyisdevelopingrapidly,especiallyinthefieldofintelligenthomeappliances.Whentheaccessnetworksmartappliances,wecanphoneorothersmarthandhelddevicesi
5、nanycorneroftheworldtocontrolhomeappliances.Whichhasbroughtusconvenience,self-evident.Thisarticleisbasedonthelatest"InternetofThings"Thinkingtechnology,describestheimplementationofsmarthandheldterminalcontrolappliancesinthedevelopmentprocess.Thetechnicalsystemused,thecharacteristicsofimple
6、mentedmethodsandsystems.CheckultimatelyindoorlampbyAndroidhandsetremotecontrolstatusandswitchstatus,aswellastheindoortemperaturetoachievereal-timeviewing.Keywords:SmartAppliances;remotecontrol;IntelligentTerminal;InternetofThings湖北文理學(xué)院理工學(xué)院學(xué)士論文1 引言11.1 課題研究背景和意義11.2 課題研究的限制及發(fā)展趨勢12 開發(fā)環(huán)境與技術(shù)22.1 開發(fā)環(huán)境22.
7、2 相關(guān)技術(shù)23 系統(tǒng)分析43.1 系統(tǒng)可行性分析43.2 需求分析43.3 數(shù)據(jù)流分析54 系統(tǒng)總體設(shè)計64.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計64.2 各部分功能設(shè)計74.3 數(shù)據(jù)庫設(shè)計85 系統(tǒng)詳細設(shè)計與實現(xiàn)105.1 嵌入式部分105.2 桌面客戶端部分115.3 服務(wù)器端部分135.4 手持端部分156 系統(tǒng)測試176.1 軟件測試概述176.2 軟件測試環(huán)境176.3 系統(tǒng)測試177 總結(jié)與展望197.1 總結(jié)197.2 展望19參考文獻20致謝21湖北文理學(xué)院理工學(xué)院學(xué)士論文開發(fā)環(huán)境與技術(shù)1引言1.1 課題研究背景和意義隨著社會信息化的加快,人們的工作、生活和通訊、信息的關(guān)系日益緊密。信息化社
8、會在改變?nèi)藗兩罘绞脚c工作習(xí)慣的同時,也對傳統(tǒng)的生產(chǎn)方式提出了挑戰(zhàn),社會、技術(shù)以及經(jīng)濟的進步更使人們的觀念隨之巨變。人們對傳統(tǒng)電器的要求早已不只是功能強大、方便快捷,更為關(guān)注的是更加人性化的普及的智能化環(huán)境,智能電器始終引領(lǐng)人們生活品位的提高。在科學(xué)技術(shù)與實際生活關(guān)系日益密切的今天,智能家居為越來越多追求時尚與方便的年輕一族們追捧。通過遠程控制智能家電系統(tǒng),人們可以不受時間和空間的束縛,在任意時間、地點通過手持設(shè)備查看家里電器是否還在工作并根據(jù)需要對其進行遠程控制,從而改變其工作狀態(tài)。例如當我們出門忘記關(guān)燈,那么在出門之后我可以查看家里電燈是否處于開著的狀態(tài),并把它遠程關(guān)掉。也可以實時獲取家里
9、必要數(shù)據(jù),例如獲取溫度或者濕度,并通過遠程控制家電進行調(diào)節(jié)。1.2 課題研究的限制及發(fā)展趨勢當家庭智能網(wǎng)關(guān)將家庭中各種各樣的家電設(shè)備通過家庭總線技術(shù)連接在一起時,就構(gòu)成了功能強大、高度智能化的現(xiàn)代智能家居系統(tǒng)。智能家居強調(diào)人的主觀能動性,重視人與居住環(huán)境的協(xié)調(diào),能夠隨心所欲地控制居住環(huán)境1。自1999年起,國家信息產(chǎn)業(yè)部、科委、建委等部門組織有關(guān)專家論證和規(guī)劃我國如何發(fā)展智能小區(qū)、智能家庭計劃。國家經(jīng)貿(mào)委又組織長虹、海爾、中興等十一家相關(guān)企業(yè)成立家居網(wǎng)絡(luò)、智能化聯(lián)合體,目的在于開展家庭網(wǎng)絡(luò)技術(shù)以及終端產(chǎn)品的研發(fā)。使我國這一領(lǐng)域得以有序和順序的發(fā)展。就目前趨勢看,全世界在未來兩年將有1億家庭進入
10、智能化、網(wǎng)絡(luò)化,每年帶來的市場總值高達4500億美元其中3700億元是硬件產(chǎn)品的價值,截止到2010年,50%以上的新房將具有一定的智能型家居。據(jù)調(diào)查,僅北京市場每年就有15億左右的智能開關(guān)市場目標銷售額??梢娭悄芗揖拥氖袌鰸摿χ薮?。隨著大屏幕觸屏智能手機穩(wěn)穩(wěn)地確立移動網(wǎng)絡(luò)市場的絕對霸主地位,包括平板電腦的受歡迎程度,我們發(fā)現(xiàn),可視化控制和操作逐漸成為市場的主流趨勢。所以,智能家居的可視化操作將成為未來很長一段時間內(nèi)的流行趨勢??梢暬刂撇僮髌鋵嵕褪歉臃奖愫秃唵危鼙姺秶鷮⒉辉倬窒抻谀贻p人,老人孩子都可以非常輕松地掌握3。2開發(fā)環(huán)境與技術(shù)2.1 開發(fā)環(huán)境2.1.1 eclipseecli
11、pse是著名的集成開發(fā)環(huán)境,它通過不同的插件實現(xiàn)不同需求的開發(fā),且其界面友好,擴展插件功能豐富,使用簡單,得到了絕大多數(shù)java開發(fā)者的青睞。本系統(tǒng)桌面端、服務(wù)器端以及手持客戶端程序也是基于java語言的,所以選用eclipse作為這三部分的開發(fā)環(huán)境。2.1.2 KeiluVision4MDK-ARMKeiluVision4提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部分組合在一起。且其界面友好,調(diào)試功能強大,支持芯片型號眾多,所以選其作為本系統(tǒng)嵌入式部分的開發(fā)環(huán)境。2.1.3 MySQLMySQ是一個關(guān)
12、系型數(shù)據(jù)庫管理系統(tǒng),它支持標準的sql語言,功能強大,訪問速度快,體積小,存儲數(shù)據(jù)量大。由于它是開源的,總體擁有成本低,更是眾多中小企業(yè)的選擇。所以選擇MySQL乍為本系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)。2.1.4 ADT本系統(tǒng)手持客戶端以安卓平臺為主,開發(fā)工具則選用google官方的開發(fā)工具ADT且其作為插件集成在eclipse中,組成功能的強大的android集成開發(fā)環(huán)境。所以本系統(tǒng)開發(fā)工具選用ADT開發(fā)手持端軟件部分4。2.2 相關(guān)技術(shù)2.2.1 JavaSocket技術(shù)本系統(tǒng)桌面端、服務(wù)器端、手持端三部分的通信都通過scoket完成。Socket和ServerSocket類庫位于包中。ServerSo
13、cket用于服務(wù)器端,Socket在建立網(wǎng)絡(luò)連接時使用。當桌面端和手持端成功連接服務(wù)器端時,三部分都會產(chǎn)生一個實例,在獲得實例的輸入輸出流之后,通過向輸入輸出流寫入字符或讀取字符完成信息交互。2.2.2 Javacomm技術(shù)目前,常見的Java串口包有SUNft1998年發(fā)布的串口通APIcomm2.0.jar(Windows下)、comm3.0.jar(Linux/Solaris);IBM的串口通信API以及一個開源的實現(xiàn)。鑒于在2湖北文理學(xué)院理工學(xué)院學(xué)士論文開發(fā)環(huán)境與技術(shù)Windows下SUNWAPI比較常用以及舊M的實現(xiàn)和SUN!勺在API層面都是一樣的,所以本系統(tǒng)選用SUNfl勺串口通
14、信API在Windows平臺下的使用5。2.2.3 Java多線程技術(shù)Java多線程技術(shù)實現(xiàn)了軟件多任務(wù)并發(fā)執(zhí)行。服務(wù)器采用多線程實現(xiàn)多客戶端連接。在實現(xiàn)socket信息交互方面,多線程是必不可少的。2.2.4 基于stm32的嵌入式控制技術(shù)嵌入式技術(shù)依靠其體積小、成本低、功能強等特點,適應(yīng)了智能化發(fā)展的最新要求。單片機作為控制系統(tǒng)的微處理器,在數(shù)據(jù)處理和代碼存儲等方面都已經(jīng)無法滿足系統(tǒng)的要求,AR楸處理器資源豐富,具有良好的通用性。Cortex-M3是AR泌司最新推出的第一款基于ARMv訃系的處理器內(nèi)核。基于Cortex-M3內(nèi)核的STM3源列處理器于2007年由ST公司率先推出,它集先進C
15、ortex-M3內(nèi)核結(jié)構(gòu)、出眾創(chuàng)新的外設(shè)、良好的功耗和低成本于一體,極大的滿足自動控制系統(tǒng)設(shè)計要求6。3湖北文理學(xué)院理工學(xué)院學(xué)士論文系統(tǒng)分析3系統(tǒng)分析3.1 系統(tǒng)可行性分析3.1.1 技術(shù)可行性系統(tǒng)手持端、服務(wù)器端、桌面端使用java語言開發(fā),嵌入式端使用C語言開發(fā)。數(shù)據(jù)庫選擇MySQL開發(fā)工具使用eclipse和KeilMDK考慮到現(xiàn)今硬件的發(fā)展,在硬件上同樣也是可行的。綜合技術(shù)分析來看,技術(shù)可行性本系統(tǒng)是可行的。3.1.2 經(jīng)濟可行性系統(tǒng)所采用的開發(fā)工具及技術(shù)均是免費的。整個系統(tǒng)的開發(fā)均由本人完成,從而節(jié)省了人力成本。硬件成本方面,嵌入式模塊為STM32F103C8T6心板,價格較為便宜。
16、開發(fā)者有能力承擔,所以經(jīng)濟方面也是可行的。3.1.3 運行可行性系統(tǒng)在開發(fā)完成之后,由開發(fā)人員調(diào)試連接完成。在服務(wù)器端,啟動服務(wù)器程序即可。桌面程序端完成之后在桌面電腦開啟運行即可。對用戶來說,使用桌面客戶程序跟普通軟件一樣。因此,使用并沒有難度。而手持端則是一款安裝在安卓手機上的app。界面簡潔,操作簡單。所以系統(tǒng)在運行方面也是可行的。3.2 需求分析需求分析是在建立一個新的或改變一個現(xiàn)存的電腦系統(tǒng)時描寫新系統(tǒng)的目的、范圍、定義和功能時所要做的所有的工作。需求分析是軟件開發(fā)的一個關(guān)鍵過程。在這個過程中,需要和用戶進行反復(fù)溝通以確定用戶的需求。只有在確定了這些需求后,才能夠分析和尋求新系統(tǒng)的解
17、決方法。需求分析階段的任務(wù)是確定軟件系統(tǒng)功能。本系統(tǒng)的使用者主要是普通家電控制用戶,其次是服務(wù)器管理用戶7。3.2.1 功能性需求分析(1) 查看家電工作狀態(tài)該系統(tǒng)需要提供查看功能,用戶能夠通過手持設(shè)備端,實時查看各個家電工作狀態(tài)。以便根據(jù)家電的工作狀態(tài),作出需要的控制操作。(2) 控制家電的工作狀態(tài)系統(tǒng)的核心功能即要能夠?qū)崿F(xiàn)用戶對家電的遠程控制,用戶能夠通過手持端操作界面按鈕實現(xiàn)對指定家電的控制。并且要求嵌入式控制端能夠采集控制反饋信息,并將其傳回手持控制端,以方便用戶查看。(3)用戶注冊功能新的用戶上線需要進行注冊,在注冊之后才能進行連接,所以要求系統(tǒng)具有注冊功能。(4)方便的服務(wù)器端程序
18、管理服務(wù)器端管理人員要確保信息傳遞穩(wěn)定可靠,拒絕非法連接。其次需要根據(jù)當前硬件資源限制最大連接數(shù),防止因過多連接導(dǎo)致系統(tǒng)崩潰。另外還需要服務(wù)器端釋放掉已經(jīng)斷開連接的資源。(5)可擴展性需求每個用戶需要控制的智能電器設(shè)備不盡相同,這需要軟件具有較好的通用性。其次是當用戶添加了新的電器或者淘汰了老舊電器之后,軟件并不需要做大量軟件更新。這就需要系統(tǒng)具有良好的擴展性和兼容性。3.2.2 非功能性需求分析(1)安全性需求每一個家庭同一時間只允許一個手持端進行控制,還要確保家電不會被他人獲取連接,或進行非法控制。(2)界面需求簡潔美觀的操作界面必然是受歡迎的軟件,優(yōu)秀的軟件界面有簡便易用,突出重點,容錯
19、高等特點。而廣義上講,軟件界面就是某樣事物面向外界而展示其特點及功用的組成部分。通常我們說的軟件界面就是狹義上的軟件界面。因為軟件是用戶的工具,用戶需要工具使用方便,界面能直觀反應(yīng)信息網(wǎng)。3.3 數(shù)據(jù)流分析桌面客戶端注冊,桌面客戶端在建立連接之前需要先注冊。桌面客戶端提交用戶信息給服務(wù)器,服務(wù)器建桌面端提交過來的信息寫入數(shù)據(jù)庫。用戶注冊數(shù)據(jù)流如圖3.1所示。用戶個羊細信:詳細信J服務(wù)器審核公息> 用戶信息5圖3.1用戶注冊數(shù)據(jù)流圖湖北文理學(xué)院理工學(xué)院學(xué)士論文系統(tǒng)總體設(shè)計4系統(tǒng)總體設(shè)計4.1 系統(tǒng)總體結(jié)構(gòu)設(shè)計系統(tǒng)總體分為四大部分,分別為嵌入式控制部分、桌面客戶端部分、服務(wù)器部分和手持端部分
20、。每一部分的相關(guān)功能采用模塊化設(shè)計,本階段確定各模塊功能和數(shù)據(jù)庫設(shè)計。每個模塊分開依據(jù)高內(nèi)聚低耦合的原則9。系統(tǒng)功能結(jié)構(gòu)圖如圖4.1所示。圖4.1系統(tǒng)功能結(jié)構(gòu)圖4.2 各部分功能設(shè)計4.2.1 嵌入式部分嵌入式部分需要接收來自桌面客戶端的命令,然后通過解析不同的命令進行執(zhí)行,最后通過IO口執(zhí)行相關(guān)指令。由此分析嵌入式部分主要分為三大模塊,分別為信息收發(fā)模塊,數(shù)據(jù)處理模塊,外設(shè)連接模塊。信息收發(fā)模塊負責(zé)與桌面客戶端進行通信,數(shù)據(jù)處理模塊負責(zé)解析來自桌面客戶端的命令并發(fā)出向IO發(fā)送相關(guān)指令。還需要將智能電器設(shè)備傳回的數(shù)據(jù)進行處理然后發(fā)送到信息收發(fā)模塊。讓其把信息傳至桌面客戶端100嵌入式功能結(jié)構(gòu)圖
21、如圖4.2所示。圖4.2嵌入式功能結(jié)構(gòu)圖4.2.2 桌面客戶端部分桌面客戶端部分主要負責(zé)用戶賬戶注冊、用戶登陸、接收來自服務(wù)器的信息并將其轉(zhuǎn)發(fā)到嵌入式端和接收來自嵌入式端的信息并將其轉(zhuǎn)發(fā)到服務(wù)器。通過以上分析桌面客戶端主要分為用戶注冊模塊、用戶登陸模塊、接收服務(wù)器信息轉(zhuǎn)發(fā)嵌入式模塊(以下稱服務(wù)器轉(zhuǎn)嵌入式模塊)和接收嵌入式信息轉(zhuǎn)發(fā)服務(wù)器信息模塊(以下稱嵌入式轉(zhuǎn)服務(wù)器模塊)110桌面客戶端部分功能結(jié)構(gòu)圖如圖4.3所示。圖4.3桌面客戶端功能結(jié)構(gòu)圖4.2.3 服務(wù)器端部分服務(wù)器部分主要功能為:關(guān)閉和開啟服務(wù)器,接收請求,處理來自桌面注冊請求,處理桌面登陸請求,處理手持端登陸請求,交換數(shù)據(jù)。通過分析服
22、務(wù)器應(yīng)包含以下六大模塊,分別是,服務(wù)器控制模塊、接收請求模塊、注冊模塊、桌面登陸模塊、手持端登陸模塊、數(shù)據(jù)交換模塊120服務(wù)器端功能模塊結(jié)構(gòu)圖如圖4.4所示。圖4.4服務(wù)器端功能結(jié)構(gòu)圖4.2.4 手持端部分手持端主要負責(zé)與用戶的交互,首先需要登陸服務(wù)器,所以手持端需要有登陸功能,當用戶操作相關(guān)控件或者輸入相關(guān)信息,手持端需要將請求發(fā)送至服務(wù)器端,當有來自服務(wù)器的信息時,手持端需要接收來自服務(wù)器的信息并將其進行合適處理之后在界面進行反映。由以上分析,手持端需要登陸模塊、信息發(fā)送模塊,信息接收模塊130手持端部分功能模塊結(jié)構(gòu)圖如圖4.5所示。圖4.5手持設(shè)備端功能結(jié)構(gòu)圖4.3 數(shù)據(jù)庫設(shè)計4.3.1
23、 數(shù)據(jù)庫概念設(shè)計由數(shù)據(jù)流分析,得到圖4.6和圖4.7所示E-R圖。圖4.7智能電器4.3.2 數(shù)據(jù)庫邏輯設(shè)計通過以上用戶實體圖知道,數(shù)據(jù)庫需要一張USER_INFO表記錄用戶的信息,當用戶用手持設(shè)備連接服務(wù)器時,需要提交驗證信息,服務(wù)器通過比較用戶提交的信息與數(shù)據(jù)庫中的信息進行對比,然后反饋給用戶,確定是否登錄成功。USER_INFO表如表4.1所示。表4.1USER_INFO表User_nameVarchar(20)用戶名主鍵User_pwdVarchar(20)密碼Have_DeviceVarchar(500)擁有的電器設(shè)備通過上面數(shù)據(jù)庫邏輯設(shè)計知道,數(shù)據(jù)庫需要Divice_info表記錄
24、了各個設(shè)備的信息通過不同設(shè)備信息進行不同操作。Divice_info表如表4.2所示。表4.2USER_INFO表字段名類型說明其他Device_nameVarchar(20)電器名主鍵Device_buttonVarchar(500)擁啟的按鈕9湖北文理學(xué)院理工學(xué)院學(xué)士論文系統(tǒng)詳細設(shè)計與實現(xiàn)5系統(tǒng)詳細設(shè)計與實現(xiàn)詳細設(shè)計是軟件工程中軟件開發(fā)的一個步驟,是對總體設(shè)計的一個細化。本章將在總體設(shè)計的基礎(chǔ)上對各個模塊進行編碼實現(xiàn)。5.1 嵌入式部分5.1.1 信息收發(fā)模塊信息收發(fā)主要利用stm32的USART1塊進行通信,本系統(tǒng)采用的STM32F103C8T6核心板,該芯片共有三個USART這里我們選
25、用USART1首先初始化USART然后配置io口。由于Uartl與PA9和PA10共用,所以將PA10配置為浮空輸入,將PA10配置為推挽輸出。配置代碼較多,故將具體配置代碼寫成一個函數(shù)myusart_config(),以便后面程序再需同樣配置,調(diào)用函數(shù)即可。串口模塊調(diào)取USART_GetFlagStatus()。函數(shù)不斷獲得寄存器復(fù)位標志,當串口模塊獲得信息,串口相應(yīng)寄存器標志位復(fù)位,從而判斷消息是否接受完成。如果信息接收完成,串口模塊將信息發(fā)送給信息處理模塊。通過以上配置,信息收發(fā)模塊也就完成了。下面是主要的配置代碼。USART_Init(USART1,&USART_InitStr
26、ucture);GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING7;5.1.2 數(shù)據(jù)處理模塊首先在數(shù)據(jù)處理模塊設(shè)置一個字符型變量result,信息接收模塊將接收到的信息存入該變量,數(shù)據(jù)處理模塊循環(huán)檢測該變量的值,如果值為空則繼續(xù)檢測,如果不為空,則通過判斷代碼對其進行命令解析,然后將不同的解析命令寫到外設(shè)模塊。同時由將來自外設(shè)的數(shù)據(jù)進行處理后送到收發(fā)模塊。由于命令較少,為了提高嵌入式處理模塊的速度,從而將命令簡化為單個字符。當命令為“c”時,處理模塊作出
27、關(guān)燈指令;當命令為“o”時,處理模塊作出開燈指令;當命令為“t”時,處理模塊作出采集溫度指令。嵌入式模塊中采用的溫度傳感器DS18B201常用的溫度傳感器,具有體積小,硬件開銷低,抗干擾能力強,精度高的特點14。它讀取并返回的數(shù)據(jù)隨溫度不同而不同,當溫度為正時,直接將讀取的十六進制數(shù)值轉(zhuǎn)換為十進制便得到實際溫度值。當溫度為負值,需要將讀取的數(shù)值取反后加一便得到需要的溫度值。當收發(fā)模塊讀取到采集溫度命令并將其寫入變量result中,數(shù)據(jù)處理模塊將想外設(shè)采集溫度的指令。在得到來自外設(shè)采集的信息后,數(shù)據(jù)處理模塊對其進行處理,最后以十進制的格式送到發(fā)送模塊發(fā)送出去以下為處理模塊關(guān)鍵代碼。While(1
28、)If(command=c)Close_light();elseif(command=o)Open_light();elseif(command=t)Tem=Get_temerature():5.1.3外設(shè)連接模塊燈光控制主要通過IO口的高低電平來控制,當IO口輸出高電平點亮燈光,當IO口輸出低電平關(guān)閉燈光。首先配置PC13為推挽輸出IO,外設(shè)連接模塊接受來自處理模塊的命令,從而執(zhí)行輸出高低電平的命令。溫度讀入功能則是通過PA6連接溫度傳感器DS18B2欣現(xiàn)溫度讀入150返回的外設(shè)將讀入的值進行處理,然后輸出給信息收發(fā)模塊最后傳遞給桌面端。本系統(tǒng)采用STM32F103C8T6片的最小系統(tǒng)板進行
29、嵌入式處理,由于其具有大量IO口,外設(shè)控制能力強,可以同時控制大量家電。關(guān)鍵代碼如下。temperature_convert();/肝啟溫度轉(zhuǎn)換ms_delay(30000);/年待溫度傳感器DS18B20轉(zhuǎn)換完成showdata=get_temperature();/K取溫度數(shù)據(jù)5.2 桌面客戶端部分5.2.1 登錄模塊用戶在填寫完登錄信息之后,點擊連接登錄按鈕,客戶端將想服務(wù)器發(fā)送以下格式字符串Login:(這里是填寫的用戶名):(這里是填寫的密碼)。發(fā)送完后客戶端等待來自服務(wù)器的反饋。如果收到字符串succss則表明登錄成功,界面顯示已連接。若收到error,則顯示連接失敗。在連接成功之
30、后,客戶端將開啟兩個線程用于監(jiān)聽來自服務(wù)器或者來自嵌入式端的信息。登錄界面如圖5.1所示。關(guān)鍵代碼如下所示。desk_send_comm_Thread=newDesk_send_comm_Thread(socket,comm_init);desk_send_comm_Thread.start();n1h223ncomm_Thread2=newComm_Thread(socket,comm_init);comm_Thread2.start();11湖北文理學(xué)院理工學(xué)院學(xué)士論文系統(tǒng)詳細設(shè)計與實現(xiàn)圖5.1登陸界面5.2.2 注冊模塊注冊界面需要具備用戶填寫用戶名,密碼的文本框和選擇擁有家電的多選框,
31、當用戶填寫完用戶信息,點擊注冊,客戶端通過socket與服務(wù)器建立連接,然后向服務(wù)器發(fā)送如下格式的字符串User_info:name(這里是填寫的用戶名):pwd:(這里是填寫的密碼):(這里是用戶選擇的電器,可能有多個)。信息發(fā)送之后當服務(wù)器將用戶信息寫進數(shù)據(jù)庫之后,將返回一個字符串,客戶端接收這個字符串并進行判斷,如果返回success則表明注冊成功,客戶端返回登錄界面,如果注冊失敗則返回error,客戶端停留在注冊界面。5.2.3 服務(wù)器轉(zhuǎn)嵌入式模塊此模塊用一個線程實現(xiàn),當客戶端與服務(wù)器建立連接之后,此線程啟動。線程使用死循環(huán)不斷監(jiān)聽來自服務(wù)器的消息,如果有來自服務(wù)器的消息,則將消息轉(zhuǎn)發(fā)
32、到嵌入式模塊。此模塊還有一個信息轉(zhuǎn)換作用,前面講過,為了提高嵌入式模塊速度,寫入嵌入式模塊的命令都是單個字符。所以來自服務(wù)器的命令需要進行轉(zhuǎn)換,然后再寫入嵌入式模塊。關(guān)鍵代碼如下。if(str.equals("open_light")out.write('o');elseif(str.equals("clsoe_light")out.write('c');elseif(str.equals("view_temp")if(temper_Thread=null)temper_Thread=newTemper
33、_Thread(comm_init);temper_Thread.start();為了實現(xiàn)溫度不斷更新,所以上面代碼中另外寫了一個線程,當來手持端的命令為view_temp時,此線程啟動,每隔一段時間發(fā)送一次溫度讀取命令,從而實現(xiàn)溫度不斷更新的功能。5.2.4 嵌入式轉(zhuǎn)服務(wù)器模塊此模塊同樣用一個線程實現(xiàn),客戶端在與服務(wù)器建立連接之后,向此線程返回一個socket,線程取得socket的輸出流。同時客戶端與嵌入式端建立連接并向本線程返回一個輸入流。線程不斷讀取返回的輸入流,一旦讀取到信息,則將信息通過輸出流發(fā)送給服務(wù)器。此線程在客戶端與服務(wù)器建立連接之后啟動11。關(guān)鍵代碼如下。str=Integ
34、er.toString(a)+”."+Integer.toString(b)+"C"daout=newDataOutputStream(socket.getOutputStream();daout.writeUTF("data:"+str);5.3 服務(wù)器端部分5.3.1 服務(wù)器控制模塊此模塊主要是開啟服務(wù)器,啟動接收請求的線程。冉服務(wù)器需要關(guān)閉的時候,停止服務(wù),關(guān)閉所有的套接字釋放資源。啟動和停止服務(wù)器的操作通過界面上開始與停止按鈕實現(xiàn)。界面上設(shè)計兩個textarea空間,分別用于顯示來自桌面客戶端和手持設(shè)備端的連接。服務(wù)器界面如圖5.2所示
35、。圖5.2服務(wù)器界面關(guān)鍵代碼如下所示13湖北文理學(xué)院理工學(xué)院學(xué)士論文系統(tǒng)詳細設(shè)計與實現(xiàn)Stringstr=accept_Thread.getState().toString();if(!str.equals("RUNNABLE")accept_Thread.start();5.3.2 接收請求模塊為了實現(xiàn)服務(wù)器能轉(zhuǎn)發(fā)多個客戶端的功能,在點擊啟動服務(wù)器時,開啟一個專門建立連接的線程Accept_Thread(),線程不斷的的重復(fù)監(jiān)聽來自桌面客戶端或者手持設(shè)備端的連接,每當監(jiān)聽到來自客戶端的連接,此線程便為連接創(chuàng)建一個新線程。新的線程負責(zé)處理連接的信息交互。關(guān)鍵代碼如下。soc
36、ket=server.accept();System.out.println(socket);Service_Threadthread=newService_Thread(socket,desk_table,pwd_table);thread.start();5.3.3 注冊模塊注冊模塊在接收到來自客戶端的注冊請求字符串時,先用正則表達式將字符串中的信息進行截取,截取的分隔符為“:”。截取后首先查詢數(shù)據(jù)庫是否存在相同的用戶名,如果存在,返回字符串“error”,如果不存在,則講信息寫入User_info表和Device_info表并返回“succss”。5.3.4 桌面登陸模塊當桌面客戶端發(fā)送
37、登陸請求,服務(wù)器線程取得登陸信息,并同查詢數(shù)據(jù)庫獲得信息與登陸信息比較,如果相同則返回“succss”并將生產(chǎn)的socket放入一個全局數(shù)據(jù)結(jié)構(gòu)Hashtable,中key用戶名,值為socket。關(guān)鍵代碼如下。desk_table.put(client_name,soc);pwd_table.put(client_name,pwd);5.3.5 手持端登陸模塊當Accept_Thread()接收到手持端請求時,同樣為其建立一個新線程。線程首先查詢Hashtable是否存相同賬戶的客戶端套接字,如果不存在,則返回error。如果存在,則查詢數(shù)據(jù)信息并比較是否和請求中的信息相同,如果相同,則返回
38、succss,并建立信息交互線程。否則返回error。關(guān)鍵代碼如下。scend=(Socket)desk_table.get(client_name);System.out.println("套接字"+scend);Strings=(String)pwd_table.get(client_name);if(scend=null)|!(s.equals(pwd)daout=newDataOutputStream(out);daout.writeUTF("error");soc.close();this.stop();Service_Thread2servi
39、ce_Thread2=newService_Thread2(scend,soc);service_Thread2.start();5.3.6 數(shù)據(jù)交換模塊服務(wù)器負責(zé)信息的雙向交互,所以當手持端與桌面端建立連接之后,需要開啟兩個線程,分別為從手持端到桌面端Service_Thread和桌面端到手持端Service_Thread2的信息交互線程。兩個線程均用無限循環(huán)實現(xiàn),其中一個線程線程獲取桌面端的輸入流用來讀取來自桌面的消息,同時獲取手持端的輸出流,用來將信息發(fā)送到手持端。另一個轉(zhuǎn)發(fā)線程則相仿。關(guān)鍵代碼如下。Service_Thread2service_Thread2=newService_Th
40、read2(scend,soc);service_Thread2.start()5.4 手持端部分5.4.1 登陸模塊此模塊主要由界面部分組成,界面設(shè)計用戶信息輸入框和用戶命令操作按鈕。當用戶填寫完信息,點擊登陸按鈕,此模塊將開啟兩個模塊分別用于向服務(wù)器發(fā)送消息和接收來來自服務(wù)器的消息。發(fā)送線程首先將向服務(wù)器發(fā)送如下格式的字符串client:name(這里是用戶填寫的姓名):(這里是用戶填寫的密碼)。此時接收模塊不停讀取來自服務(wù)器的消息,如果收到來自服務(wù)器的字符串succes表明登錄成功。此時線程通過handler向主界面發(fā)送消息,主界面收到消息更新界面按鈕。用戶通過操作界面按鈕觸發(fā)發(fā)送模塊向
41、服務(wù)器發(fā)送命令。手持端界面如圖5.3所示。.Activity2用戶密碼連接斷開電燈OFF窟內(nèi)溫度查看圖5.3手持端界面關(guān)鍵代碼如下。my=newMyThread(mHandleU,id.getText().toString(),pwd.getText().toString();if(!my.getState().toString().equals("RUNNABLE")my.start();5.4.2 信息發(fā)送模塊信息發(fā)送模塊通過一個線程實現(xiàn),線程在連接成功后獲得服務(wù)器的輸出流。線程中設(shè)計一個標志字符用flag,當用戶操作界面后界面住線程將命令寫入flag字符串。線程不斷讀
42、取字符串的值,如果字符串的值不為空,則將flag的值通過輸出流發(fā)送出去。關(guān)鍵代碼如下。out.writeUTF("data"+":"+flag);out.flush();5.4.3 信息接收模塊信息接收模塊也通過一個線程實現(xiàn),當手持客戶端與服務(wù)器成功建立連接之后,將socket返回給信息接收模塊,信息接收模塊通過socket獲得服務(wù)器輸入流,并不斷讀取輸入流。當讀取到的信息不為空的時候,模塊對信息進行判斷,如果信息包含顯示數(shù)據(jù),則線程將數(shù)據(jù)封裝為message發(fā)送給handler,handler獲得數(shù)據(jù)將其在主界面進行顯示。信息接收模塊的主要代碼如圖5.
43、4所示。if(rtr.eqw1s(terror")(MessagemsgMe55mg日0;msg.what»0;/HfrJ=+r4而才:4msg.obj-丁!正導(dǎo)才克方丁昆7年F,是Li5tm為p司ifHHsndlcrl«5End/ies£agc(fTi:g)istr-"1'Jclscif(二tL.uqun】工(Fucu©工尸)(He553gmmsg-new);,/nUandler1h土undEmptNu3日岳父1):(i>£gkwhat-1;丁,彳量即且重*-1*?msg.obj-工丁=鼻居*?。菏嵌痳.L
44、istmap學(xué)mHerKllerl+5BndMe±sdge(rsg);)口皿Messagemsg-newMessage();HmHandler11senJEmpt/Me£sage1)msg.what-3;,可震穴更作曲,fflsg.obj-是h弟iListtraps:mHandlerl*5tndMe55age(msE);圖5.4信息模塊關(guān)鍵代碼16湖北文理學(xué)院理工學(xué)院學(xué)士論文系統(tǒng)測試6系統(tǒng)測試6.1 軟件測試概述在系統(tǒng)完成之后,為了驗證系統(tǒng)存在錯誤、不正?;蛘邲]有按照規(guī)定運行,需要對系統(tǒng)進行測試,以保證系統(tǒng)滿足開發(fā)要求。軟件測試在整個系統(tǒng)開發(fā)周期中占有重要的地位。軟件測試也
45、是軟件質(zhì)量的重要保證以及在整個系統(tǒng)開發(fā)中有著不能替代的作用未找到引用源。06.2 軟件測試環(huán)境軟件測試環(huán)境如表6.1所示。表6.1軟件測試環(huán)境S3fcT操作系統(tǒng)wn數(shù)據(jù)庫MysqlJdk1.86.3 系統(tǒng)測試測試包括客戶端、手持控制端的功能測試和服務(wù)器端控制測試。(1)客戶端功能測試首先打開服務(wù)器,點擊開始,服務(wù)器程序啟動。新用戶首次登陸,服務(wù)器將返回error信息,以admin密碼admin為例登陸,返回注冊失敗界面。然后點擊注冊,填寫信息,選取家電電燈,點擊完成。界面返回注冊成功,并返回登陸界面。使用剛剛注冊的賬戶進行登陸。將admin填入姓名欄,密碼admin填入,然后點擊連接,界面顯示
46、連接成功。根據(jù)以上結(jié)果確定客戶端程序功能正常。6.4 服務(wù)器端功能測試打開服務(wù)器點擊開始,打開客戶端,輸入上面測試注冊的賬號,點擊連接,客戶端顯示連接成功。然后點擊斷開。然后點擊服務(wù)器停止。再次打開桌面客戶端點擊連接,客戶端顯示連接失敗。根據(jù)以上結(jié)果說明服務(wù)器打開和停止以及注冊功能正常。6.5 手持控制端測試使用上面測試中注冊的賬戶建立桌面客戶端與服務(wù)器的連接,打開安卓客戶端姓名輸入admin,密碼輸入ad,點擊連接,安卓客戶端顯示連接失敗。再次打開安卓客戶端姓名和密碼輸入之前注冊的賬戶。點擊連接,客戶端顯示連接成功。點擊電燈控制開關(guān),與嵌入式控制端連接的led燈點亮,再次點擊按鈕,led燈熄
47、滅。點擊“查看”按鈕。溫度文本框顯示當前溫度22.7。當用手指觸碰溫度傳感器時,客戶端溫度上升并不斷變化。由以上測試說明,安卓客戶端功能正常。17湖北文理學(xué)院理工學(xué)院學(xué)士論文參考文獻7總結(jié)與展望7.1 總結(jié)本文基于stm32處理器和網(wǎng)絡(luò)通信設(shè)計了家電遠程控制系統(tǒng),建立了家電到到手持設(shè)備端的可靠連接,實現(xiàn)了用戶對家電實時控制;給出了系統(tǒng)主要軟件的設(shè)計流程圖。以電燈為例,給出了一種基于Internet程家電控制系統(tǒng),闡述了系統(tǒng)設(shè)計方案,詳細介紹了遠程家電控制過程、系統(tǒng)硬件實用性和遠程控制的實現(xiàn)方法。遠程控制發(fā)送開燈和獲取溫度命令后,由嵌入式控制端開啟電燈和獲取室內(nèi)溫度并將信息通過網(wǎng)絡(luò)傳回至手持端。試驗結(jié)果表明:該系統(tǒng)能夠很好地對電燈實現(xiàn)遠程控制,室內(nèi)溫度也能實時地遠程查詢,系統(tǒng)易于操作、性能穩(wěn)定,具有良好的實用性、可靠性
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 檸檬酸微生物菌種工崗前安全宣貫考核試卷含答案
- 圖案打樣工安全素養(yǎng)強化考核試卷含答案
- 松香工崗前面試考核試卷含答案
- 重冶萃取工誠信道德測試考核試卷含答案
- 腈綸回收操作工崗前決策判斷考核試卷含答案
- 氣體分餾裝置操作工崗前規(guī)章考核試卷含答案
- 2024年漢江師范學(xué)院輔導(dǎo)員考試參考題庫附答案
- 電梯裝配調(diào)試工班組管理測試考核試卷含答案
- 2024年西昌學(xué)院輔導(dǎo)員考試參考題庫附答案
- 2024年蚌埠城市軌道交通職業(yè)學(xué)院輔導(dǎo)員考試參考題庫附答案
- 錫圓電子科技有限公司高端半導(dǎo)體封測項目環(huán)評資料環(huán)境影響
- GB/T 45356-2025無壓埋地排污、排水用聚丙烯(PP)管道系統(tǒng)
- 2025既有建筑改造利用消防設(shè)計審查指南
- 籃球場工程施工設(shè)計方案
- (市質(zhì)檢二檢)福州市2024-2025學(xué)年高三年級第二次質(zhì)量檢測 歷史試卷(含答案)
- 《外科手術(shù)學(xué)基礎(chǔ)》課件
- 化學(xué)-湖南省永州市2024-2025學(xué)年高二上學(xué)期1月期末試題和答案
- 2025年貴安發(fā)展集團有限公司招聘筆試參考題庫含答案解析
- DB33T 1214-2020 建筑裝飾裝修工程施工質(zhì)量驗收檢查用表標準
- 高考語文復(fù)習(xí)【知識精研】鑒賞古代詩歌抒情方式 課件
- 春運志愿者培訓(xùn)
評論
0/150
提交評論