基于JAVA的智能家居控制系統(tǒng)的設(shè)計畢業(yè)設(shè)計_第1頁
基于JAVA的智能家居控制系統(tǒng)的設(shè)計畢業(yè)設(shè)計_第2頁
基于JAVA的智能家居控制系統(tǒng)的設(shè)計畢業(yè)設(shè)計_第3頁
基于JAVA的智能家居控制系統(tǒng)的設(shè)計畢業(yè)設(shè)計_第4頁
基于JAVA的智能家居控制系統(tǒng)的設(shè)計畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩30頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、目 錄1 緒論11.1 課題背景11.2 研究意義11.3 研究現(xiàn)狀21.4研究內(nèi)容21.4.1 系統(tǒng)介紹31.4.2 模塊劃分31.5 小結(jié)42 系統(tǒng)需求分析52.1 系統(tǒng)功能需求52.2 系統(tǒng)性能需求52.3 系統(tǒng)可行性研究62.3.1 技術(shù)可行性62.3.2 經(jīng)濟(jì)可行性72.3.3 操作可行性72.4 系統(tǒng)運(yùn)行環(huán)境72.5 小結(jié)83 系統(tǒng)總體設(shè)計93.1 系統(tǒng)結(jié)構(gòu)設(shè)計93.2 系統(tǒng)工作原理103.3 系統(tǒng)關(guān)鍵技術(shù)123.4 小結(jié)124 系統(tǒng)詳細(xì)設(shè)計與實(shí)現(xiàn)134.1 數(shù)據(jù)存儲134.2 系統(tǒng)功能的設(shè)計與實(shí)現(xiàn)144.2.1 登錄功能的詳細(xì)設(shè)計144.2.2 家居狀態(tài)的詳細(xì)設(shè)計174.2.3

2、修改密碼功能的詳細(xì)設(shè)計224.3 遠(yuǎn)程電器控制模塊的模擬實(shí)現(xiàn)234.4 小結(jié)235 系統(tǒng)測試245.1 單元測試245.2 功能測試255.3 性能測試255.4 小結(jié)266 結(jié)論27附 錄28參考文獻(xiàn)31致 謝331 緒論1.1 課題背景隨著社會的發(fā)展和科學(xué)技術(shù)的進(jìn)步,數(shù)字網(wǎng)絡(luò)生活時代已經(jīng)到來,以家庭智能化、物業(yè)管理現(xiàn)代化和社區(qū)服務(wù)信息化為典型特征的智能社區(qū)也在悄然應(yīng)運(yùn)而生。住宅智能化是人類住宅的又一場新的革命。它能夠?yàn)槿藗兲峁└虞p松、有序、高效的現(xiàn)代生活方式,是未來居住模式的必然發(fā)展趨勢。隨之而然,智能家居系統(tǒng)也在逐漸成為一個新興的研究領(lǐng)域。智能家居提供的是一個具有高度安全性、生活舒適性

3、和通信快捷性的信息化與自動居住空間6。智能家居是指將家庭中各種與信息相關(guān)的通信設(shè)備、家用電器和家庭保安裝置,通過家庭總線技術(shù)連接到一個家庭智能化系統(tǒng)(即家庭控制器)上,以實(shí)現(xiàn)監(jiān)視、控制和家庭事務(wù)型管理,并保持這些設(shè)施與住宅環(huán)境的和諧與協(xié)調(diào)。要實(shí)現(xiàn)家居的智能化,必須在家電里面加入接收和控制端,這樣就能對家里的電器、燈光、電源、家庭環(huán)境進(jìn)行方便地控制,使人們盡享高科技帶來的簡便而時尚的現(xiàn)代生活。將社會的信息化建設(shè)與小區(qū)的信息化、智能化建設(shè)有機(jī)地融合起來,充分利用已有的寬帶網(wǎng)絡(luò),做到資源共享,達(dá)到節(jié)省投資、降低使用費(fèi)用、方便物業(yè)管理,為用戶提供盡可能多的高品質(zhì)服務(wù),已成為房產(chǎn)商、電信運(yùn)營商、物業(yè)管理

4、公司、城市公用事業(yè)公司和用戶等幾方共同關(guān)注的問題。自動化的智能家居不再是一幢被動的建筑,相反,成了幫助主人盡量利用時間的工具,使家庭更為舒適、安全、高效和節(jié)能。家居智能化技術(shù)起源于美國,網(wǎng)絡(luò)系統(tǒng)中的各個設(shè)備均可實(shí)現(xiàn)資源的共享。因其布線簡單、功能靈活,擴(kuò)展容易而被人們廣泛接受和應(yīng)用。目前,已經(jīng)有越來越多的機(jī)構(gòu)和個人開始了對智能家居的研究。1.2 研究意義智能家庭控制系統(tǒng)是以以太網(wǎng)、現(xiàn)場總線、公共電話網(wǎng)、無線網(wǎng)的傳輸網(wǎng)絡(luò)為平臺,控制技術(shù)為技術(shù)平臺,現(xiàn)場總線為應(yīng)用操作平臺,構(gòu)成一個完整的集家庭通信、家庭設(shè)備自動控制、家庭安全防范等功能的控制系統(tǒng)3。智能家居控制系統(tǒng)的總體目標(biāo)是通過采用計算機(jī)技術(shù)、網(wǎng)絡(luò)

5、技術(shù)、控制技術(shù)和集成技術(shù)建立一個由家庭到小區(qū)乃至整個城市的綜合信息服務(wù)和系統(tǒng),以此來提高住宅高新技術(shù)的含量和居民居住環(huán)境水平。使人們享受到高科技帶來的方便快捷的生活方式。人們的生活方式在逐漸加快,因此生活中就需要更為便捷的生活方式。智能家居就是在這種情況下應(yīng)運(yùn)而生的。人們需要通過一個按鈕就可以實(shí)現(xiàn)對家具的控制,減少了原來需要尋找遙控器或者是開關(guān)等方式帶來的不便。從而使人們的家更舒服,更方便。系統(tǒng)通常由系統(tǒng)服務(wù)器、家庭控制器(各種模塊)、路由器、通訊器、控制器、無線收發(fā)器、各種傳感器等主要部分組成。1.3 研究現(xiàn)狀由于中國的居住模式和文化與發(fā)達(dá)國家有很大的區(qū)別,所以智能家居在中國的發(fā)展也體現(xiàn)出其

6、獨(dú)具的特色。中國人口眾多,城市住宅建設(shè)也多選擇密集型的住宅小區(qū)方式,因此很多房地產(chǎn)商會站在整個小區(qū)智能化的角度來看待家居的智能化,也就出現(xiàn)了目前一統(tǒng)天下、無所不包的“智能小區(qū)”的模式。智能小區(qū)同樣是中國特有國情的產(chǎn)物。智能小區(qū)與公共建筑中的智能建筑的主要區(qū)別是,智能小區(qū)強(qiáng)調(diào)住宅單元個體,側(cè)重物業(yè)管理功能。真正意義的智能小區(qū)中的單元-單個住宅,應(yīng)該安裝智能家居(Smart home),這樣智能小區(qū)的功能才得以有效運(yùn)用,對大型社區(qū)來說,智能小區(qū)是智能家居運(yùn)行的基礎(chǔ)平臺。其實(shí)無論是安全防護(hù)還是智能家居,都應(yīng)該屬于智能住宅的大的范疇,其中不單單包括智能安防以及智能家居,還包括諸多住宅智能化的功能,隨著

7、物聯(lián)網(wǎng)技術(shù)的發(fā)展興起,其廣闊的運(yùn)用以及領(lǐng)先的技術(shù)優(yōu)勢必定能改改變現(xiàn)在的市場現(xiàn)狀,未來的智能家居將是物聯(lián)網(wǎng)相關(guān)運(yùn)用的一個典范,將家居系統(tǒng)完美的結(jié)合以及協(xié)同各種傳感元件進(jìn)行有效感知,其中不單單指內(nèi)部感知,更包括了系統(tǒng)對外部的感知以及數(shù)據(jù)交換。1.4研究內(nèi)容系統(tǒng)采用典型的C/S(Client/Server客戶機(jī)和服務(wù)器)架構(gòu)。C/S的優(yōu)點(diǎn)是能充分發(fā)揮客戶端PC的處理能力,很多工作可以在客戶端處理后再提交給服務(wù)器。對應(yīng)的優(yōu)點(diǎn)就是客戶端響應(yīng)速度快。由客戶端調(diào)用send()方法發(fā)送控制信息,控制服務(wù)器端的家居狀態(tài),服務(wù)器受到控制信號之后,修改現(xiàn)在的狀態(tài),并把修改之后的狀態(tài)通過recived()方法返還給客

8、戶端。客戶端調(diào)用相應(yīng)的recived()方法把結(jié)果顯示出來。1.4.1 系統(tǒng)介紹使用J2me技術(shù)實(shí)現(xiàn)手機(jī)界面,以及家用電器的監(jiān)視和控制、照明設(shè)備的監(jiān)視、調(diào)節(jié)和控制、門的控制、窗簾的控制等。并實(shí)現(xiàn)客戶端與服務(wù)器端之間的通信。通過手機(jī)上的各個按鈕控制發(fā)送信號,進(jìn)而實(shí)現(xiàn)家居的開關(guān)控制。系統(tǒng)選用J2me技術(shù)開發(fā)基于手機(jī)平臺的信息控制端軟件。以發(fā)送數(shù)據(jù)信號的方式發(fā)送到控制端,實(shí)現(xiàn)控制家居設(shè)備的功能。J2me是sun公司針對嵌入式、消費(fèi)類電子產(chǎn)品推出的開發(fā)平臺,是一系列規(guī)范的集合,由JCP組織制定相關(guān)的JSR并發(fā)布,各個廠商會按照規(guī)范在自己的產(chǎn)品上進(jìn)行實(shí)現(xiàn),但是必須要通過TCK測試,確保兼容性8。通過使用

9、J2me中的無線網(wǎng)絡(luò)開發(fā)技術(shù)實(shí)現(xiàn)手機(jī)客戶端與系統(tǒng)終端的通訊。使用通用連接框架技術(shù)建立HTTP連接。使用servlet技術(shù)實(shí)現(xiàn)計算機(jī)之間的即時通訊。1.4.2 模塊劃分根據(jù)系統(tǒng)本身的需要,我們把系統(tǒng)分為以下模塊:主頁面顯示智能家居控制系統(tǒng)的字樣,以及輸入密碼的輸入框。密碼輸入成功則可以直接進(jìn)入智能家居控制系統(tǒng)的主界面。如果密碼輸入錯誤,則需要重新輸入。對密碼的設(shè)定采用最大不能超過八個字符的簡單定義來實(shí)現(xiàn)對系統(tǒng)安全的保護(hù)工作。密碼輸入成功則可以登陸控制家具的頁面。根據(jù)房間的布局,把整個家庭分為三個模塊。分別為客廳、廚房和臥室,對房間中的家居進(jìn)行合理的分配,從而達(dá)到更高效的目的。同時為了方便修改密碼

10、。把修改密碼的功能也和這三個控制頁面一起,放入到了同一個界面中。下面介紹各個房間中能夠控制的家用電器??蛷d中能夠控制的家用電器包括:防盜門、窗簾、吊燈、空調(diào)和電視。防盜門、窗簾和電視的控制分為兩個分別是“開啟”和“關(guān)閉”。吊燈的控制除了在“開啟”和“關(guān)閉”的基礎(chǔ)上增加了一個亮度調(diào)節(jié)的控制,用滑動條的形式來實(shí)現(xiàn)對溫度的調(diào)解。根據(jù)空調(diào)的特性,給空調(diào)又增加了溫度和濕度的控制。分別用兩個滑動條來實(shí)現(xiàn)對家居的控制。廚房中能夠控制的家用電器包括:燈、窗簾。廚房中的燈和窗簾的控制分為“開啟”和“關(guān)閉”兩個設(shè)置。臥室中能夠控制的家用電器包括:床頭燈、窗簾和吊燈。臥室中的床頭燈和臺燈一樣在開啟和關(guān)閉的基礎(chǔ)上增加

11、了對亮度調(diào)節(jié)的控制。窗簾則只有“開啟”和“關(guān)閉”的功能為了方便人們的操作,增加了修改密碼的功能。在臥室的下面就是改密的字樣。點(diǎn)擊確定按鈕,則可以修改密碼,鍵入新密碼,返回密碼修改成功的字樣。無論何時何地,只要您想要控制家中家居的狀態(tài),拿起手機(jī),進(jìn)入到智能家居控制系統(tǒng),選擇要更改的房間,以及要控制的電器,選擇之后點(diǎn)擊發(fā)送按鈕,就可以實(shí)現(xiàn)對家用電器狀態(tài)的更改??照{(diào)和其它的模式則不同,不僅具有開和關(guān)的狀態(tài),還增加了溫度的調(diào)節(jié)和控制。電燈的控制方式和空調(diào)的類似,在開和關(guān)控制的基礎(chǔ)上增加了調(diào)解亮度的功能。使人們能夠根據(jù)自己的喜好來調(diào)節(jié)亮度。豐富了人們選擇的范圍,使選擇方式不再單一。1.5 小結(jié)本章首先介

12、紹了該課題的背景、研究意義,我們了解到此系統(tǒng)廣闊的發(fā)展前景,以及適用性。在不改變?nèi)藗兙幼…h(huán)境的前提下,實(shí)現(xiàn)對家居的監(jiān)制和控制。接著介紹了有關(guān)該系統(tǒng)的國內(nèi)外研究現(xiàn)狀,以便于在前人研究基礎(chǔ)上能有所創(chuàng)新。充分結(jié)合前人的研究,使系統(tǒng)更為完善,更滿足用戶的需求。最后介紹了研究內(nèi)容,對自己所研究的內(nèi)容進(jìn)行了更加徹底的分析。方便人們了解到此系統(tǒng)實(shí)現(xiàn)的所有功能。2 系統(tǒng)需求分析2.1 系統(tǒng)功能需求項(xiàng)目主要實(shí)現(xiàn)用戶對家用電器的控制,其中包括家居的開和關(guān),以及其他的相關(guān)操作??蛻舳税l(fā)送控制信息的請求,通過網(wǎng)絡(luò)傳輸方式發(fā)送到服務(wù)器端,服務(wù)器端相應(yīng)客戶端的操作,然后再把結(jié)果返回給客戶器端。其中家用電器的控制在開和關(guān)相

13、關(guān)控制的基礎(chǔ)上增加了智能調(diào)節(jié)控制。空調(diào)實(shí)現(xiàn)了用下拉框的形式開實(shí)現(xiàn)對濕度和溫度的控制。進(jìn)而為人們實(shí)現(xiàn)對家具的控制提供了方便。該系統(tǒng)共分為五個模塊,分別為登陸、客廳、廚房、臥室和改密。模塊一:為了保證客戶使用信息的安全性,為此系統(tǒng)添加了登陸模塊,運(yùn)行智能家居控制系統(tǒng)的客戶端,就要鍵入密碼,密碼輸入正確就自動跳轉(zhuǎn)到家居的控制頁面,反之重新鍵入密碼。模塊二:客廳中的家用電器主要包括:防盜門、窗簾、吊燈、空調(diào)和電視。實(shí)現(xiàn)對防盜門、窗簾的開關(guān)控制、對吊燈的開關(guān)操作以及亮度調(diào)節(jié)的控制、對空調(diào)的開關(guān)操作以及對室內(nèi)溫度和濕度的控制以及調(diào)節(jié)控制電視的開和關(guān),等等一系列的操作。模塊三:廚房中的家用電器主要包括:吊燈

14、和窗簾。還是用下拉菜單實(shí)現(xiàn)對各個家電的開關(guān)控制。模塊四:臥室中的家用電器主要包括:吊燈、窗簾和臺燈。這個模塊中的家具設(shè)計的雖然不是很多,但是也同樣實(shí)現(xiàn)了家具的開關(guān)和家用電器的監(jiān)制和控制。模塊五:用戶可以修改密碼,鍵入你想要設(shè)置的新的密碼,點(diǎn)擊設(shè)置按鈕就可以設(shè)置你想要的新的密碼了。2.2 系統(tǒng)性能需求智能家居控制系統(tǒng)是一個很有發(fā)展前景的系統(tǒng)。因此為了使本系統(tǒng)能夠長期使用,必須使系統(tǒng)滿足安全、穩(wěn)定、可靠、高效的運(yùn)行模式,生活水平的提高,伴隨著生活質(zhì)量的提高。同時人們生活的節(jié)奏也逐漸加快,怎樣高速的完成任務(wù)就是我們要考慮的主要問題。因此系統(tǒng)應(yīng)滿足如下性能需求:(1) 較強(qiáng)的擴(kuò)展能力和通用性,此系統(tǒng)即

15、能夠滿足一個家庭之間的遠(yuǎn)程控制,同時對一個小區(qū)來說也同樣適用。由于這次我們主要研究的是控制家居這方面的內(nèi)容,以后,我們還可以擴(kuò)展此系統(tǒng),加上遠(yuǎn)程通信、智能報警等等各項(xiàng)功能。(2) 由于本系統(tǒng)的界面簡單明了,因此人們很容易就學(xué)會操作。擴(kuò)大了系統(tǒng)的用戶群。在不改變?nèi)藗兩钭≌那闆r下,有效的實(shí)現(xiàn)對家居的控制。使人們可以節(jié)約時間,享受生活。(3) 系統(tǒng)的準(zhǔn)確性和及時性系統(tǒng)處理的準(zhǔn)確性和及時性是我們要考慮的主要問題。在控制家電的過程中,確保對家居狀態(tài)更改的準(zhǔn)確而且及時。優(yōu)化系統(tǒng),使系統(tǒng)的反應(yīng)能力和控制家居的能力滿足用戶多功能的需求。2.3 系統(tǒng)可行性研究驗(yàn)證一個系統(tǒng)是否可行,需要從多個方面著手分析。其

16、中主要的內(nèi)容包括:技術(shù)可行性、經(jīng)濟(jì)可行性和操作可行性三個方面。2.3.1 技術(shù)可行性系統(tǒng)采用J2me技術(shù)。使用J2me中特有的手機(jī)模擬器進(jìn)行開發(fā),實(shí)現(xiàn)對各種家居的控制。J2me技術(shù)規(guī)范定義了Java技術(shù)在資源有限制的設(shè)備中的表現(xiàn)形式。J2me主要適用于小型嵌入式設(shè)備,這些設(shè)備與PC或是服務(wù)器設(shè)備相比沒有統(tǒng)一的硬件標(biāo)準(zhǔn)、外觀與操作方式,其功用也是千差萬別13。但是J2me在使用于這些設(shè)備的同時也保留了Java的傳統(tǒng)特性,即任何時間和任何地點(diǎn)的代碼具有可移植性、部署靈活性、安全的網(wǎng)絡(luò)傳輸性,以及代碼穩(wěn)定性。Java平臺的主要優(yōu)點(diǎn)是它允許我們編寫可移植的應(yīng)用程序。Java平臺的可移植性來自其執(zhí)行模型

17、。具體地說,它是由于在運(yùn)行時使用JVM來將Java字節(jié)碼處理成機(jī)器碼,因而在硬件之上提供了兼容性層。Java平臺的執(zhí)行模型還引入了一些在設(shè)備本機(jī)應(yīng)用程序中缺乏的重要安全性優(yōu)點(diǎn)。(1) 在給定的時間內(nèi)能夠?qū)崿F(xiàn)任務(wù)書中的功能。能夠?qū)崿F(xiàn)頁面的跳轉(zhuǎn)以及對服務(wù)器端家電的控制。(2) 從軟件的質(zhì)量方面來看,軟件運(yùn)行速度較高,功能具備有實(shí)用價值。后期軟件維護(hù)代價相應(yīng)比較小。(3) 軟件的生產(chǎn)率較高。能在短時間內(nèi)完成有效地工作。2.3.2 經(jīng)濟(jì)可行性系統(tǒng)雖然需要依靠硬件來實(shí)現(xiàn),但是開發(fā)成本相對較低。后期維護(hù)簡單方便。如果能夠?qū)崿F(xiàn),則能夠取得可觀的效益。收益遠(yuǎn)遠(yuǎn)大于支出,因此此項(xiàng)目在經(jīng)濟(jì)方面是可行的。2.3.3

18、 操作可行性對于用戶來說,能夠使用該軟件系統(tǒng),能夠方便人們的生活,使人們生活的環(huán)境更加的美觀。墻面上不會再到處都是開關(guān),同時也不用為了尋找遙控器而發(fā)愁。使用此系統(tǒng),能夠使人們的生活方式發(fā)生天翻地覆的變化。讓人們享受科技帶來的方便生活。在家中你可以拿起手機(jī),選擇要控制的家電,然后更改其開關(guān)狀態(tài),在戶外也同樣可以控制,實(shí)現(xiàn)家中和戶外同等控制的功能,同時優(yōu)化了無線網(wǎng)絡(luò)傳輸過程中網(wǎng)絡(luò)延遲帶來的時間上的延遲,使人們在最短的時間內(nèi)接收到服務(wù)器端返回的家居控制的信息。2.4 系統(tǒng)運(yùn)行環(huán)境(1) Windows XP。(2) JDK,JDK是Java開發(fā)工具包(Java Development Kit)的英文

19、縮寫。它是一種用于構(gòu)建在Java平臺上發(fā)布的應(yīng)用程序、Applet和組件的開發(fā)環(huán)境。JDK是一切Java應(yīng)用程序的基礎(chǔ),所有的Java應(yīng)用程序是構(gòu)建在這個之上的。它是一組API,也可以說是一些Java Class。(3) Sun WTK,Sun公司為了J2ME而提供了WTK開發(fā)工具,是最基本的J2ME程序開發(fā)工具,它是免費(fèi)提供的,體積小,執(zhí)行速度較快,完全遵守J2ME的各種規(guī)范,因此是J2ME程序員最基礎(chǔ)的必備的工具。(4) Eclipse,Eclipse是一個非常著名的集成開發(fā)工具,其自身功能強(qiáng)大而易用。另一個非常重要的特點(diǎn)是其提供了非常靈活的擴(kuò)展能力。它提供了豐富的接口可以擴(kuò)展其本身。同樣

20、Eclipse中也包含J2ME支持的插件,而且不止一種。(5) EclipseMe,EclipseMe自動為Midlet創(chuàng)建了三個方法,作用如下:startApp方法是當(dāng)程序被啟動時執(zhí)行的方法;pauseApp是當(dāng)程序被暫?;虮淮驍啵ㄈ缬袚苋氲碾娫挘r調(diào)用的方法;destroyApp是當(dāng)Midlet被銷毀時調(diào)用的方法。2.5 小結(jié)本章對系統(tǒng)進(jìn)行了需求分析,首先通過對系統(tǒng)的功能需求的分析,了解了該模塊所應(yīng)完成的所有功能。接著進(jìn)行了系統(tǒng)性能需求的分析,以便于能夠保證系統(tǒng)長期、安全、穩(wěn)定、可靠、高效的運(yùn)行。接接下來要進(jìn)行系統(tǒng)可行性研究,主要從技術(shù)、經(jīng)濟(jì)、操作這三個方面加以分析。緊接著我們又分析了該系

21、統(tǒng)所需要的運(yùn)行環(huán)境。為系統(tǒng)的開發(fā)做好了準(zhǔn)備。3 系統(tǒng)總體設(shè)計總體設(shè)計過程首先尋找實(shí)現(xiàn)目標(biāo)系統(tǒng)的各種不同的方案,需求分析階段得到的數(shù)據(jù)流圖是設(shè)想各種可能方案的基礎(chǔ)。總體設(shè)計過程通常由兩個主要階段組成:系統(tǒng)設(shè)計階段,確定系統(tǒng)的具體實(shí)現(xiàn)方案;結(jié)構(gòu)設(shè)計階段,確定軟件結(jié)構(gòu)。3.1 系統(tǒng)結(jié)構(gòu)設(shè)計系統(tǒng)采用C/S架構(gòu)進(jìn)行設(shè)計。在通信過程中,移動客戶端與家庭系統(tǒng)模塊是通過TCP協(xié)議建立的可靠連接。首先移動客戶端和家庭系統(tǒng)模塊之間建立Socket連接,家庭系統(tǒng)模塊在端口上監(jiān)聽等待客戶端連接??蛻舳诉B接之后,需要輸入密碼,密碼正確后服務(wù)器端會開啟一個線程為此客戶通信,并將這個Socket連接保存到向量中。在客戶端和

22、家庭系統(tǒng)模塊之間建立輸入輸出流??蛻舳伺c服務(wù)器端通過Socket可以建立連接??蛻粝胍淖兗抑械募揖訝顟B(tài),只需要進(jìn)入家居控制系統(tǒng)中,選擇想要更改家居所在的房間,然后選擇家居,進(jìn)而改變家具的狀態(tài),通過調(diào)用send()方法向服務(wù)器端發(fā)送請求,由服務(wù)器端響應(yīng),然后服務(wù)器端將更改家居的狀態(tài),之后將結(jié)果返回給客戶端??蛻舳送ㄟ^調(diào)用recived()方法來獲得家居更改之后的狀態(tài)。本文主要研究客戶端的設(shè)計,其中客戶端主要完成的功能設(shè)計如下:(1) 用戶登陸模塊主要實(shí)現(xiàn)對用戶的驗(yàn)證操作。為了保證用戶信息的安全性,因此需要用戶鍵入密碼,如果密碼輸入正確,則可以進(jìn)入智能家居控制系統(tǒng),如果密碼輸入錯誤,則需要重新輸

23、入。(2) 房間選擇模塊的設(shè)計。根據(jù)人們在現(xiàn)實(shí)生活中的生活環(huán)境的布局,考慮系統(tǒng)的實(shí)用性,因而將智能家居控制系統(tǒng)分為客廳、廚房和臥室這三個房間狀態(tài)。點(diǎn)擊客廳,跳轉(zhuǎn)進(jìn)入下一個頁面,顯示客廳中的所有家居,即包括:防盜門、窗簾、吊燈、空調(diào)和電視。點(diǎn)擊廚房,跳轉(zhuǎn)進(jìn)入另外一個頁面,顯示廚房中所能夠控制的所有家居,即包括:吊燈和窗簾。點(diǎn)擊臥室則跳轉(zhuǎn)進(jìn)入另一個頁面,顯示臥室中所能夠控制的所有家居,即包括:吊燈、窗簾和臺燈。其中房間模塊的功能結(jié)構(gòu)圖如下所示:圖(1)各房間所包含家居的功能圖(3) 家居狀態(tài)選擇模塊的設(shè)計主要包括對家電控制的設(shè)計。改變了人們對家居操作過于單一的模式,增加了對家居狀態(tài)和性能的人為控制

24、。當(dāng)人們要對客廳中的防盜門的開關(guān)狀態(tài)進(jìn)行控制時,需要首先鍵入密碼,進(jìn)入智能家居控制系統(tǒng),然后選擇客廳點(diǎn)擊進(jìn)入之后選擇防盜門來進(jìn)行控制,其中對防盜門的控制包含兩種狀態(tài):開啟和關(guān)閉。而吊燈的選擇方式和選擇防盜門時類似,在開啟和關(guān)閉的基礎(chǔ)上增加了對亮度調(diào)節(jié)的控制。方便了人們對燈光亮度的選擇。而空調(diào)則在開啟和關(guān)閉的基礎(chǔ)上增加了對溫度和濕度的調(diào)節(jié)。方便了人們的操作。(4) 修改密碼模塊的設(shè)計,從始至終不可能說一直使用一個密碼,因此增加了修改密碼的模塊,方便了用戶的操作。3.2 系統(tǒng)工作原理系統(tǒng)由多個類構(gòu)成。需要客戶端通過網(wǎng)絡(luò)發(fā)送對家居的控制。服務(wù)器端接收到客戶端發(fā)送的信息,然后再返回給客戶端。本系統(tǒng)是基

25、于HTTP網(wǎng)絡(luò)的用于智能家居環(huán)境中的一種遠(yuǎn)程自動控制系統(tǒng)。其工作原理為:用戶通過自身的手機(jī)發(fā)出命令請求,在家值守的家庭系統(tǒng)模塊接收信息并對信息進(jìn)行處理,把處理結(jié)果通過串行總線傳輸?shù)絾纹瑱C(jī)上,單片機(jī)根據(jù)信息調(diào)制出相應(yīng)的紅外頻率控制相應(yīng)的設(shè)備,完成用戶給出的命令。并把最終的控制結(jié)果返回給客戶端。系統(tǒng)工作原理圖如下所示:客戶端類類網(wǎng)絡(luò)服務(wù)器端圖(2)系統(tǒng)工作原理圖各個程序之間通過方法和類的調(diào)用來建立關(guān)聯(lián)。選擇登陸智能家居控制系統(tǒng),該界面實(shí)現(xiàn)內(nèi)容主要包含在MainMID這個類中,其中需要鍵入密碼,同時如果密碼輸入錯誤,也可以對密碼再進(jìn)行修改。直至密碼輸入正確。則會跳入到下一個頁面。下一個頁面則是家具的

26、控制頁面。選擇所要控制的家具類型,進(jìn)入相應(yīng)的房間之后,我們就可以選擇要控制的家電類型來實(shí)現(xiàn)對家居的控制。然后通過網(wǎng)絡(luò)連接將要發(fā)送的數(shù)據(jù)發(fā)送到服務(wù)器端。等待服務(wù)器端做出響應(yīng)。目前出現(xiàn)的家居處理平臺一般分三類:一類是機(jī)頂盒,也就是彩電與機(jī)頂盒組合,能夠與家庭安全防范系統(tǒng)、家庭自動化系統(tǒng),以及互聯(lián)網(wǎng)結(jié)成一體,實(shí)現(xiàn)家電控制、娛樂、交流和信息分享等方面的智能化。其次,就是利用家用電腦去控制各種家用電器,以家用電腦為基礎(chǔ)的智能家居系統(tǒng)。用電腦來運(yùn)行智能家居管理軟件,能提供更多的高級控制特性,實(shí)現(xiàn)組合控制和條件控制。由于所有的控制可自行定義,所以組合控制流程可以根據(jù)實(shí)際需要,自由地加以調(diào)整和改變。第三,模塊

27、式無線遙控模組,普通開關(guān)可以利用這模塊,不需要對原來的普通開關(guān)、插座進(jìn)行深度的改造,就可迅速成為多功能智能型無線遙控開關(guān)、插座。Java技術(shù)具有較強(qiáng)的兼容性,接受并處理控制設(shè)施發(fā)出的信息,然后傳送信號給予控制家電或者其他家居的子系統(tǒng)。這處理平臺可形象地理解為一個信息中心,它的職能就是在家居智能系統(tǒng)中,引導(dǎo)和規(guī)劃家居子系統(tǒng)中的各種信號。有了它,你可以通過電話,或者無線遙控器來和家居子系統(tǒng)進(jìn)行快速的溝通。這個家居處理平臺具有良好的擴(kuò)展性能,以滿足用戶在使用過程中不斷變換的需求。3.3 系統(tǒng)關(guān)鍵技術(shù)(1) JiNi技術(shù)JiNi(Java Intelligent Network Infrastruct

28、ure)是Sun公司的研究與開發(fā)項(xiàng)目,它能極大擴(kuò)展Java技術(shù)的能力。JiNi技術(shù)可使用范圍廣泛的多種硬件和軟件即可與網(wǎng)絡(luò)相連接的任何實(shí)體能夠自主聯(lián)網(wǎng)。家庭網(wǎng)絡(luò)是一個動態(tài)環(huán)境,當(dāng)有新設(shè)備加入家庭網(wǎng)絡(luò)里,應(yīng)該能被王闊中其它的設(shè)備識別,同時它也能發(fā)現(xiàn)網(wǎng)絡(luò)中其它設(shè)備。為了實(shí)現(xiàn)設(shè)備間的即插即用和互聯(lián),SUN公司引入了Jini技術(shù)。Jini的目的是將成組的設(shè)備和軟件構(gòu)件聯(lián)合成一個單一、動態(tài)的分布式系統(tǒng)。Jini基于Java語言,是一種面向服務(wù)的中間技術(shù),運(yùn)行于TCP、IP協(xié)議之上,跨平臺運(yùn)行,獨(dú)立于底層操作系統(tǒng)和通信技術(shù),設(shè)備間可相互查詢、理解所具備的功能,家庭網(wǎng)絡(luò)無需人工參與,網(wǎng)絡(luò)設(shè)置可自動完成。(2

29、) MIDPMIDP定義了一套完整的用戶界面接口,全部定義在javax.microedition. lcdui包中。MIDP用戶界面程序包的核心抽象是類Displayable。根據(jù)用戶的交互,應(yīng)用程序在完成任務(wù)的每一步不斷設(shè)置和重設(shè)在Display對象上的當(dāng)前Displayable對象。用戶任務(wù)(指與用戶界面的交互)通過Command對象來實(shí)現(xiàn)。當(dāng)用戶選擇了一個Command對象之后,應(yīng)用程序自動獲得通知。作為反饋,應(yīng)用程序經(jīng)常改變當(dāng)前的Displayable對象,把另一個Displayable作為當(dāng)前值。設(shè)備軟件管理了本地應(yīng)用程序和MIDP應(yīng)用程序之間的物理顯示資源的共享。Displayab

30、le的子類有兩種:Canvas:允許應(yīng)用程序進(jìn)行圖形處理和輸入處理的底層對象。Screen:封裝了完整的用戶界面組件(類Alert、List、TextBox、Form)的高層對象。List:允許從一個預(yù)定義的選擇集中選擇。TextBox:是一個擁有可控制編輯方法的平坦文本編輯器。Alert:顯示臨時信息或者簡單選擇問詢。Form:更寬泛的容器,允許顯示多個密切相關(guān)的叫做Item的用戶界面元素。3.4 小結(jié)本章通過對系統(tǒng)的結(jié)構(gòu)、工作原理等各方面的設(shè)計,對系統(tǒng)的流程以及系統(tǒng)所要完成的功能都有了較為深入的了解。為人們掌握智能家居的使用方法了解智能家居奠定了堅實(shí)的基礎(chǔ)。4 系統(tǒng)詳細(xì)設(shè)計與實(shí)現(xiàn)4.1 數(shù)

31、據(jù)存儲在MIDP規(guī)范中,提供了記錄管理系統(tǒng)(Record Management System, RMS),這個記錄管理系統(tǒng)就是一個小型簡單的數(shù)據(jù)庫管理系統(tǒng)(Database Management System),除了能用于管理系統(tǒng)儲存的資料之外,也可以用于存儲對象的狀態(tài)信息。RMS是J2me的一個重要的子系統(tǒng),目的是實(shí)現(xiàn)應(yīng)用程序本地數(shù)據(jù)的持久性存儲。RMS是管理數(shù)據(jù)的系統(tǒng),Record(記錄)是系統(tǒng)中最重要的實(shí)體。在移動設(shè)備存儲空間存儲的并不是字段,而是字節(jié)數(shù)組。RMS的職責(zé)是存儲和唯一標(biāo)識記錄,而表示數(shù)據(jù)的任務(wù)是由應(yīng)用程序來完成的。這樣做的目的是簡化MIDP的實(shí)現(xiàn),使得J2ME的子系統(tǒng)盡量的

32、小巧、靈活。Record Store(記錄倉儲)是一系列的有序集合,記錄是不能單獨(dú)存在的,必須屬于記錄倉儲。記錄倉儲保證記錄的讀寫操作都是原子的,數(shù)據(jù)不會被破壞。在API中記錄倉儲是由javax.microedition.rms.RecordStore實(shí)現(xiàn)的。每條記錄代表了一條數(shù)據(jù)信息。一條記錄由一個整型的RecordID與一個代表數(shù)據(jù)的byte數(shù)組兩個子元素組成。RecordID是每條記錄的唯一標(biāo)識符,利用這個標(biāo)識符可以從記錄倉儲中找到對應(yīng)的一條記錄。其中RMS所使用的空間圖如圖所示:圖(3)RMS空間圖系統(tǒng)中對密碼的存儲是通過RMS進(jìn)行實(shí)現(xiàn)的。首先要在系統(tǒng)中使用RMS,首先需要定義RMS的

33、名稱。在系統(tǒng)中定義的RMS的名稱是RMS_NAME,然后對它進(jìn)行實(shí)例化,使用rs=openRSAnyway(RMS_NAME)來進(jìn)行。要寫入密碼,首先就需要打開RMS,使用rs= RecordStore.openRecordStore(rsname, ture)函數(shù),然后returen rs;即可實(shí)現(xiàn)。密碼寫入之后則需要關(guān)閉倉儲,使用rs= RecordStore.deleteRecordStore(rsname)來實(shí)現(xiàn)。系統(tǒng)中輸入密碼的時候要驗(yàn)證密碼輸入是否正確,這個時候也需要用到倉儲。首先需要用函數(shù)RecordStore.openRecordStore(RMS_NAME, ture)來打開

34、倉儲和倉儲中存儲的數(shù)據(jù)進(jìn)行比對,然后調(diào)用相應(yīng)的函數(shù)來驗(yàn)證。4.2 系統(tǒng)功能的設(shè)計與實(shí)現(xiàn)該智能家居控制系統(tǒng)實(shí)現(xiàn)了以下幾個功能:登陸、客廳模塊、廚房模塊、臥室模塊和改密等一系列的功能。下面將對以下幾種功能進(jìn)行詳細(xì)的論述。客戶端完成的主要功能包括對家居的控制。通過客戶端發(fā)送控制信息通過網(wǎng)絡(luò)傳送到服務(wù)器端,再由服務(wù)器端返回給客戶端。進(jìn)而實(shí)現(xiàn)對家居的控制。其中,系統(tǒng)功能結(jié)構(gòu)圖如下所示:圖(4)系統(tǒng)功能結(jié)構(gòu)圖4.2.1 登錄功能的詳細(xì)設(shè)計登錄功能是為了保證用戶信息的安全,因此在智能家居控制系統(tǒng)的首頁需要鍵入密碼,鍵入密碼之后,則需要點(diǎn)擊菜單按鈕,然后點(diǎn)擊登入按鈕,如果密碼輸入正確之后才能進(jìn)入智能家居控制系

35、統(tǒng)。如果密碼輸入錯誤,則會返回一個頁面,提示密碼輸入錯誤,請重新輸入。系統(tǒng)名稱的實(shí)現(xiàn):系統(tǒng)標(biāo)題“智能家居控制系統(tǒng)”首先需要使用title來定義系統(tǒng)名稱。實(shí)現(xiàn)方法如下:public static String TITLE=“智能家居控制系統(tǒng)”;其中要設(shè)計它的位置,則需要使用錨點(diǎn)來實(shí)現(xiàn),錨點(diǎn)的作用就是設(shè)置占用屏幕矩形方塊的具體位置。實(shí)現(xiàn)方法如下:g.drawString(Main MID. TITLE,getWidth() /6+10,10,Graphics.TOP|Graphics.LEFT);字體的實(shí)現(xiàn)方法每個Graphics都有一個Font對象與其關(guān)聯(lián),來進(jìn)行文字的渲染操作,調(diào)用其類方法se

36、tFont(null),即可使字體恢復(fù)到默認(rèn)狀態(tài)。使用static Font getFont (int face, int Style, int size)來獲得一個對象以表示字體所具有制定的外觀。使用的均為最大字體。Face參數(shù),用來定義字體的外觀。其中使用到的Font類定義的外觀常數(shù)如下:Static int FACE_PROPORTIONAL:“比例”字體外觀,數(shù)值64被制定給此數(shù)。Style參數(shù),用來定義字體的樣式。在這個類中使用到Font類定義的樣式參數(shù)如下:Static int STYLE_PLAIN:格式常數(shù)“常規(guī)”,數(shù)值0被制定給此常數(shù)。Static int STYLE_BOL

37、D:格式常數(shù)“加粗”,數(shù)值1被制定給此常數(shù)。首頁顯示圖片的實(shí)現(xiàn)方法:首先需要構(gòu)建畫布,使用back = Image. createImage(“/First.png”)來實(shí)現(xiàn)對畫布圖片的載入。用低級用戶界面Canvas實(shí)現(xiàn)智能家居控制系統(tǒng)中按鈕的設(shè)置。其中對按鈕的定義操作包括:private Command Cmd_Back; private Command Cmd_Send; 按鈕實(shí)現(xiàn)的方法包括:Cmd_Back = new Command(返回, Command.BACK, 1);Cmd_Send = new Command(發(fā)送, Command.OK, 1);密碼鍵入中文本框的實(shí)現(xiàn)則通

38、過TextField類來實(shí)現(xiàn)。TextField類用于帶約束的文本類型輸入。密碼的設(shè)置要求輸入密碼的最大值為8個字符。因此對密碼的限制要求是32位。首先要對TextField進(jìn)行后臺的實(shí)例化,然后設(shè)置這個文本框所在的位置,以及位數(shù)。實(shí)現(xiàn)方法是textfield=new TextField(“” , “”,8,TextField.ANY|TextField.PASSWORD);輸入密碼之后要獲取TextField中的文本,使用方法是textfield.setString(str);來實(shí)現(xiàn)。密碼框的畫法包括對顏色、字?jǐn)?shù)的限制。其中對顏色的控制方法是調(diào)用setColor()方法來設(shè)置字體的顏色。使用

39、g.drawRect()方法來設(shè)置矩形的邊框。Fillrect()方法則表示使用指定的畫刷來填充矩形。系統(tǒng)運(yùn)行界面如下所示:圖(5)系統(tǒng)運(yùn)行界面PassWordCanvas類主要包含TextField子類,首先要對TextField在后臺進(jìn)行實(shí)例化,TextField是用于帶約束的文本類型輸入。textfield = new TextField(, , 8, TextField.ANY | TextField.PASSWORD); / 后臺TextField實(shí)例化。其中還包括對登錄界面中字體顏色、背景等方面的設(shè)計。鍵入密碼“1234”之后點(diǎn)擊菜單中的登陸按鈕我們就可以進(jìn)入到智能家居控制系統(tǒng)的頁

40、面。如果輸入密碼錯誤,則跳轉(zhuǎn)到密碼輸入錯誤頁面,重新輸入密碼,直到密碼輸入正確,則可以進(jìn)入到控制頁面。密碼錯誤界面的實(shí)現(xiàn)方法如下:使用Screen類的子類Alert來實(shí)現(xiàn)臨時信息的顯示。密碼輸入錯誤,則跳轉(zhuǎn)進(jìn)入密碼錯誤界面,實(shí)現(xiàn)方法是initAlert()方法。其中顯示文字的實(shí)現(xiàn)方法是alert= new Alert(“密碼錯誤”,“請輸入正確的密碼!”,null,AlertType.ALARM);控制按鈕的實(shí)現(xiàn)方法是:alert.addCommand(new Command(“退出”,Command.CANCEL,2); alert.addCommand(new Command(“返回”,C

41、ommand.BACK,1);文字顯示的位置也是通過錨點(diǎn)來實(shí)現(xiàn)。其中密碼輸入錯誤之后頁面提示界面如下:圖(6)密碼鍵入錯誤要實(shí)現(xiàn)對該頁面的設(shè)計,首先需要填充背景的顏色,畫出背景的邊框、標(biāo)題等。要通過確定錨點(diǎn)來實(shí)現(xiàn)對功能的定位。而鍵入的密碼則存儲在倉儲中。通過調(diào)用getNextRecordID()方法來驗(yàn)證鍵入的密碼是否正確。如果密碼輸入錯誤,則會調(diào)用initAlert()方法將“密碼錯誤,請輸入正確的密碼”返回給用戶。如果密碼輸入錯誤,我們可以選擇回刪按鈕,調(diào)用deleteOneChar()方法來刪除字符。最終輸入正確的密碼后,調(diào)用IntoSystem()方法進(jìn)入系統(tǒng)。4.2.2 家居狀態(tài)的詳

42、細(xì)設(shè)計密碼鍵入成功之后,就會自動跳轉(zhuǎn)到家居的控制頁面。選擇客廳點(diǎn)擊開始按鈕,就會進(jìn)入到家具的選擇頁面。其中包括:防盜門、窗簾、吊燈、空調(diào)和電視的控制。防盜門、窗簾和電視的狀態(tài)包括開啟和關(guān)閉兩種狀態(tài)。另外吊燈在開啟和關(guān)閉的基礎(chǔ)上另外增加了對亮度的控制??照{(diào)則是在開啟和關(guān)閉的基礎(chǔ)上增加了對濕度和溫度的調(diào)節(jié)和控制。輸入密碼正確之后,則可以進(jìn)入到系統(tǒng)控制界面。其中包括:客廳、廚房、臥室和修改密碼功能。其中,這幾個模塊在頁面中的顯示方法是通過數(shù)組的形式來定義的。定義方法是private String SEECT_ITEM = “客廳”,“廚房”,“臥室”,“修改密碼”,然后通過if語句來實(shí)現(xiàn)對文本框現(xiàn)在

43、所在位置的確定。Fnt= Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_PLAIN|Font.STYLE_BOLD, Font.SIZE_LARGE);這里實(shí)現(xiàn)了對字體的定義,然后調(diào)用setFont()函數(shù)來實(shí)現(xiàn)。歡迎回到溫暖之家這幾個字的實(shí)現(xiàn)方法如下:g.setColor(0x0011CC)最終顯示的字體為藍(lán)色。確定位置所使用的函數(shù)是g.drawString(“歡迎回到溫暖之家”,getWidth()/6+10,10,Graphics.TOP|Graphics.LEFT),確定屏幕中這幾個模塊所在的位置,使用Graphics類提供的繪圖來實(shí)現(xiàn)。

44、實(shí)現(xiàn)方法為g.setFont(fnt);g.setColor(0xAA2200);g.drawString(SELECT_ITEMi, pos0 - 1, pos1 * (i + 3),Graphics.TOP | Graphics.LEFT);其中,系統(tǒng)運(yùn)行界面圖如下所示:圖(7)家居狀態(tài)選擇界面客廳、廚房、臥室的布局都是類似的,現(xiàn)在我們選擇以客廳為例,客廳中的家居包括:防盜門、窗簾、吊燈、空調(diào)和電視。這幾個家居的實(shí)現(xiàn)方法和上面我們實(shí)現(xiàn)的方法類似,但是在文本上增加了矩形方框的設(shè)計。選擇客廳調(diào)用FamilyList函數(shù)in=new FamilyList(display,this, “客廳”,s

45、tringArray, Image.createImage(“keting.png”);使用void drawRect()函數(shù)來實(shí)現(xiàn)。其運(yùn)行界面圖如下所示:圖(8)客廳運(yùn)行頁面(1) 對燈光的控制包括:無線射頻燈光控制系統(tǒng)由智能面板開關(guān)和調(diào)光器組成,調(diào)光器用以發(fā)送和接收命令信號,命令通過無線電傳播,而不是通過家庭的電源線路傳輸。每個面板開關(guān)都備有一個不同的遙控識別代碼。這些代碼利用19位識別技術(shù),使接收器能準(zhǔn)確辨別每個指令。即使鄰居同時使用,也絕對不會因其遙控器干擾而發(fā)生傳輸錯誤。調(diào)光開關(guān)同樣內(nèi)置RF無線射頻發(fā)射器,能獨(dú)立于遙控器或移動開關(guān)之外,控制落地?zé)艋蜃罒舻拈_關(guān)或隨意調(diào)節(jié)燈光亮度。減少干

46、擾,傳送或接收指令更加準(zhǔn)確無誤。其中,開啟和關(guān)閉,除了在位置上的設(shè)置之外,還增加了矩形框的設(shè)計。當(dāng)矩形框在開啟這兩個字上面時,開啟二字加粗,關(guān)閉使用常規(guī)。首先定義兩個函數(shù)fnt和fnt2來表示常規(guī)和加粗兩種狀態(tài)下所調(diào)用的方法。分別為fnt=Font.getFont(Font.FACE_PROPORITIONAL,Font.STYTLE_ BLOD|Font.STYLE_PLAIN,Font.SIZE_LARGE);fnt2=Font.getFont(Font.FACE_PROPORITIONAL,Font.STYTLE_ PLAIN,Font.SIZE_LARGE),選中的矩形框的實(shí)現(xiàn)方法為g

47、.drawRect(BaseX-5,BaseY,60,20)滾動條的實(shí)現(xiàn)則使用文本方式,通過進(jìn)度條來選擇所要填充矩形的多少。使用g.drawRect(60,91,101,20)來繪制矩形。使用g.fillRect(61,90+2,ROLL,19)來填充矩形。其中滾動條參數(shù)的設(shè)置使用的函數(shù)是g.drawString(ROLL + , 105, baseY, Graphics.TOP | Graphics.LEFT)開關(guān)的開關(guān)設(shè)置為0和1,如果為滾動條方式則設(shè)置為0100然后實(shí)現(xiàn)開啟和關(guān)閉,燈光控制圖如下所示:圖(9)吊燈狀態(tài)選擇(2) 對信息家電的控制包括:信息家電控制是一個整合了紅外控制和無線

48、控制的多功能遙控系統(tǒng)。它可以控制多達(dá)五種紅外設(shè)備(如:電視機(jī)、空調(diào)、DVD、功放、窗簾等)和開關(guān)、插座等無線設(shè)備。信息家電控制系統(tǒng)主要由信息家電控制器和各種智能遙控開關(guān)組成。信息家電控制器可以把普通紅外電器的遙控器的編碼通過學(xué)習(xí)的方式轉(zhuǎn)存下來從而替代原有的家電遙控器。同時它本身還是無線遙控器,可以發(fā)射433.92MHz頻率的控制信號,所以它可以控制這個頻段的智能開關(guān)、智能插座以及無線紅外轉(zhuǎn)發(fā)器等。電視控制頁面的實(shí)現(xiàn)方法如下:首先需要在新的屏幕上確定錨點(diǎn),確定好開啟和關(guān)閉按鈕在屏幕上的位置。然后,調(diào)用g.drawString()方法在屏幕上顯示開啟和關(guān)閉字樣。然后在開啟和關(guān)閉處繪制文本框?qū)崿F(xiàn)方法

49、是g.drawString(“開啟”,BaseX,BaseY,Graphics.TOP|Graphics.LEFT)確定開啟所在的位置。g.drawString(“開啟”,BaseX+75,BaseY,Graphics.TOP| Graphics.LEFT)在開啟的后面距離開啟距離為75的地方繪制關(guān)閉的字符串。然后使用g.drawRect(Basex+70,BaseY,60,20);來畫選中框的位置,當(dāng)我們想要開啟電視的時候,點(diǎn)擊開啟按鈕,系統(tǒng)調(diào)用drawRecr函數(shù)。繪制出這個文本框。同理,選擇關(guān)閉按鈕的時候也是如此。文本框是長為60寬為20的矩形。點(diǎn)擊以后,系統(tǒng)通過調(diào)用send()方法,將

50、控制信息發(fā)送到控制端。等待控制端的響應(yīng)。其中,我們以電視為例,其中對電視的控制圖如下所示:圖(10)對空調(diào)的控制(3) 對空調(diào)的控制包括:空調(diào)的紅外編碼和其他家電的紅外編碼有很大區(qū)別,空調(diào)遙控器上每一個按鍵所對應(yīng)的紅外編碼不是固定的。比如按下溫度增加或減少的按鍵,它并不是簡單地發(fā)送一個固定的溫度增加或減少的紅外編碼,而是向空調(diào)發(fā)送一個當(dāng)前工作狀態(tài)的編碼(這個編碼包含空調(diào)當(dāng)前是多少度)。因此實(shí)現(xiàn)對空調(diào)的控制結(jié)構(gòu)就比較復(fù)雜。人們要實(shí)現(xiàn)對室內(nèi)溫度和濕度的控制就需要先對發(fā)送出的數(shù)據(jù)進(jìn)行編碼,將編碼之后的結(jié)果發(fā)送到服務(wù)器端,再由服務(wù)器端來響應(yīng)對空調(diào)的控制。空調(diào)頁面的實(shí)現(xiàn)方法和上面臺燈的實(shí)現(xiàn)方法類似,增加

51、了一個滾動條,其中分別是對溫度和濕度的控制。實(shí)現(xiàn)方法是使用數(shù)組分別定義兩個文本框然后調(diào)用。具體的實(shí)現(xiàn)方法雖然類似,但是卻是分別實(shí)現(xiàn)的。其中空調(diào)頁面的實(shí)現(xiàn)方法在電視的基礎(chǔ)上增加了人性化的設(shè)計。即溫度控制這幾個漢字的顯示方法是定義在數(shù)組中,其中的一個既是對溫度和濕度調(diào)節(jié)的控制,調(diào)用setRolligString()來顯示。然后調(diào)用addChildList(cncs)來控制頁面。對空調(diào)的控制圖如下所示:圖(11)運(yùn)行界面如圖所示廚房中的家具包括窗簾和吊燈。調(diào)用ITEM_SELECTED()方法選擇要進(jìn)入的界面。然后使用stringArray方法來定義家具的類型。調(diào)用廚房中藥使用的圖片chufang.

52、png,其中對吊燈的亮度調(diào)節(jié),則選擇setRollingString()方法來進(jìn)行顯示。開關(guān)的樣式等也是在畫布中畫出的。設(shè)置子菜單,調(diào)用setLastPage()方法將上層頁面設(shè)置為當(dāng)前頁面。設(shè)置文本和背景圖片,要設(shè)置背景圖片則需要對Canvas進(jìn)行重繪。其它的都和客廳中的實(shí)現(xiàn)方法類似。4.2.3 修改密碼功能的詳細(xì)設(shè)計密碼鍵入成功,進(jìn)入智能家居頁面之后,就可以修改用戶的密碼。選擇通過上下按鍵的選擇,選中改密這個文本框,然后點(diǎn)擊開始按鈕,則可以修改系統(tǒng)的密碼,鍵入新的密碼,然后就可以完成對密碼的修改。想要修改密碼成功,首先要打開倉儲RMS將想要修改的密碼存儲,打開倉儲的方法是通過調(diào)用openR

53、ecordStore()方法來將想要修改的密碼存儲進(jìn)去。存儲成功則需要關(guān)閉倉儲,即調(diào)用deleteRecordStore()方法關(guān)閉RMS。當(dāng)我們下次要進(jìn)入系統(tǒng)的時候則需要輸入修改之后的密碼了。修改密碼功能的實(shí)現(xiàn)和進(jìn)入系統(tǒng)時鍵入密碼的實(shí)現(xiàn)方法有類似的地方。其中密碼修改成功的顯示方法是g.drawString(“密碼修改成功”,20,80,Graphics.TOP|Graphics.LEFT),鍵入新密碼之后,新密碼要存入倉儲中,因此需要打開倉儲,密碼修改成功之后,需要關(guān)閉倉儲。4.3 遠(yuǎn)程電器控制模塊的模擬實(shí)現(xiàn)用無線通信方式進(jìn)行家電的控制靈活性較強(qiáng) 、覆蓋范圍較廣,免去了綜合布線的費(fèi)用和精力,

54、缺點(diǎn)是家庭內(nèi)部要有家庭網(wǎng)關(guān)和無線路由路,接收端還要有響應(yīng)的接收裝置,成本較高。因此,基于實(shí)用性和大眾化方面考慮,本文所研究的家電控制器的控制采用I/O控制。家電的本地集中控制硬件設(shè)計是利用嵌入式系統(tǒng)的I/O口對家用電器的用電進(jìn)行控制。系統(tǒng)通過S3C2410的I/O口輸出高低電平來進(jìn)行控制,同時用發(fā)光二極管指示家用電器工作狀況。發(fā)光二極管,表示家用電器通電,發(fā)光二極管滅,表示家用電器斷電。由于被控模塊家用電器大多使用220V交流電,屬于強(qiáng)電電路,所以使用繼電器控制家電。在芯片與繼電器中間加驅(qū)動電路。驅(qū)動電路可以利用光電耦合的通、斷去控制繼電器的開與關(guān)。也可以利用三極管的飽和與截止去控制繼電器的開

55、與關(guān),這里采用三極管方式。當(dāng)I/O口引腳輸出低電平時,三極管飽和導(dǎo)通。在遠(yuǎn)程監(jiān)控的過程中需要網(wǎng)絡(luò)操作,因此我需要留有兩個接口,分別是send和recived。Send()方法用來實(shí)現(xiàn)對服務(wù)器端的控制,recived()方法用來接收由服務(wù)器端返回的數(shù)據(jù)。使用Cmd_Send方法來發(fā)送要修改的控制信息。并使用setCommandListener(this)來設(shè)置對功能鍵偵聽。4.4 小結(jié)本章通過對整個智能家居控制系統(tǒng)的客戶端進(jìn)行了詳細(xì)的論述。其中介紹了每個功能模塊所包含的內(nèi)容,以及實(shí)現(xiàn)的方法。通過詳細(xì)設(shè)計、編碼去實(shí)現(xiàn)預(yù)期的各項(xiàng)功能。除了應(yīng)該保證軟件的可靠性之外,使將來編寫出的程序可讀性好、容易理解

56、、容易測試、容易修改和維護(hù),是詳細(xì)設(shè)計編碼階段最重要的目標(biāo)。程序在設(shè)計的過程中,程序內(nèi)部的良好文檔資料,有規(guī)律的數(shù)據(jù)說明格式,簡單清晰地語句構(gòu)造和輸入輸出格式等,都對提高程序的可讀性有很大的作用,也在相當(dāng)大的程度上改進(jìn)了程序的可維護(hù)性。5 系統(tǒng)測試5.1 單元測試單元測試集中檢測軟件設(shè)計的最小單元模塊。通常,單元測試和編碼屬于軟件過程的同一個階段。在編寫出源程序代碼并通過了編譯程序的語法檢查之后,就可以用詳細(xì)設(shè)計描述作指南,對重要的執(zhí)行通路進(jìn)行測試,以便發(fā)現(xiàn)模塊內(nèi)部的錯誤??梢詰?yīng)用人工測試和計算機(jī)測試這兩種不同類型的測試方法,完成單元測試工作。這兩種測試方法各有所長,互相補(bǔ)充。通常,單元測試期

57、間著重從下述5個方面對模塊進(jìn)行測試。(1) 模塊接口首先應(yīng)該對通過模塊接口的數(shù)據(jù)流進(jìn)行測試,如果測試數(shù)據(jù)不能正確地進(jìn)出,所有其他測試都是不切實(shí)際的。在對模塊接口進(jìn)行測試時主要檢查下述幾個方面:參數(shù)的數(shù)目、次序、屬性或單位系統(tǒng)與變元是否一致;是否修改了只作輸入用的變元;全局變量的定義和用法在各個模塊中是否一致。登陸模塊中,輸入密碼,密碼正確,則可以登陸此系統(tǒng),如果密碼錯誤,則返回“請輸入正確的密碼!”的提示字樣。經(jīng)過驗(yàn)證,可以正常運(yùn)行。在家具選擇模塊,對客廳、廚房、臥室和修改密碼這四個模塊均能正常選擇,沒有異常情況。(2) 局部數(shù)據(jù)結(jié)構(gòu)對于模塊來說,局部數(shù)據(jù)結(jié)構(gòu)是常見的錯誤來源。檢查局部數(shù)據(jù)說明、初始化、默認(rèn)值等方面是否出現(xiàn)錯誤。對于按鈕的開啟和關(guān)閉,我們采用默認(rèn)值0和1來進(jìn)行設(shè)置。對滾動條的設(shè)置則采用0100的動態(tài)控制。通過對該系統(tǒng)的運(yùn)行測試,該系統(tǒng)可以正常運(yùn)行。選擇的過程中也不會出現(xiàn)錯誤。(3) 重要的執(zhí)行通路由

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論