版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(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è)計(jì)93.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)93.2 系統(tǒng)工作原理103.3 系統(tǒng)關(guān)鍵技術(shù)123.4 小結(jié)124 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)134.1 數(shù)據(jù)存儲(chǔ)134.2 系統(tǒng)功能的設(shè)計(jì)與實(shí)現(xiàn)144.2.1 登錄功能的詳細(xì)設(shè)計(jì)144.2.2 家居狀態(tài)的詳細(xì)設(shè)計(jì)174.2.3
2、修改密碼功能的詳細(xì)設(shè)計(jì)224.3 遠(yuǎn)程電器控制模塊的模擬實(shí)現(xiàn)234.4 小結(jié)235 系統(tǒng)測(cè)試245.1 單元測(cè)試245.2 功能測(cè)試255.3 性能測(cè)試255.4 小結(jié)266 結(jié)論27附 錄28參考文獻(xiàn)31致 謝331 緒論1.1 課題背景隨著社會(huì)的發(fā)展和科學(xué)技術(shù)的進(jìn)步,數(shù)字網(wǎng)絡(luò)生活時(shí)代已經(jīng)到來,以家庭智能化、物業(yè)管理現(xiàn)代化和社區(qū)服務(wù)信息化為典型特征的智能社區(qū)也在悄然應(yīng)運(yùn)而生。住宅智能化是人類住宅的又一場(chǎng)新的革命。它能夠?yàn)槿藗兲峁└虞p松、有序、高效的現(xiàn)代生活方式,是未來居住模式的必然發(fā)展趨勢(shì)。隨之而然,智能家居系統(tǒng)也在逐漸成為一個(gè)新興的研究領(lǐng)域。智能家居提供的是一個(gè)具有高度安全性、生活舒適性
3、和通信快捷性的信息化與自動(dòng)居住空間6。智能家居是指將家庭中各種與信息相關(guān)的通信設(shè)備、家用電器和家庭保安裝置,通過家庭總線技術(shù)連接到一個(gè)家庭智能化系統(tǒng)(即家庭控制器)上,以實(shí)現(xiàn)監(jiān)視、控制和家庭事務(wù)型管理,并保持這些設(shè)施與住宅環(huán)境的和諧與協(xié)調(diào)。要實(shí)現(xiàn)家居的智能化,必須在家電里面加入接收和控制端,這樣就能對(duì)家里的電器、燈光、電源、家庭環(huán)境進(jìn)行方便地控制,使人們盡享高科技帶來的簡便而時(shí)尚的現(xiàn)代生活。將社會(huì)的信息化建設(shè)與小區(qū)的信息化、智能化建設(shè)有機(jī)地融合起來,充分利用已有的寬帶網(wǎng)絡(luò),做到資源共享,達(dá)到節(jié)省投資、降低使用費(fèi)用、方便物業(yè)管理,為用戶提供盡可能多的高品質(zhì)服務(wù),已成為房產(chǎn)商、電信運(yùn)營商、物業(yè)管理
4、公司、城市公用事業(yè)公司和用戶等幾方共同關(guān)注的問題。自動(dòng)化的智能家居不再是一幢被動(dòng)的建筑,相反,成了幫助主人盡量利用時(shí)間的工具,使家庭更為舒適、安全、高效和節(jié)能。家居智能化技術(shù)起源于美國,網(wǎng)絡(luò)系統(tǒng)中的各個(gè)設(shè)備均可實(shí)現(xiàn)資源的共享。因其布線簡單、功能靈活,擴(kuò)展容易而被人們廣泛接受和應(yīng)用。目前,已經(jīng)有越來越多的機(jī)構(gòu)和個(gè)人開始了對(duì)智能家居的研究。1.2 研究意義智能家庭控制系統(tǒng)是以以太網(wǎng)、現(xiàn)場(chǎng)總線、公共電話網(wǎng)、無線網(wǎng)的傳輸網(wǎng)絡(luò)為平臺(tái),控制技術(shù)為技術(shù)平臺(tái),現(xiàn)場(chǎng)總線為應(yīng)用操作平臺(tái),構(gòu)成一個(gè)完整的集家庭通信、家庭設(shè)備自動(dòng)控制、家庭安全防范等功能的控制系統(tǒng)3。智能家居控制系統(tǒng)的總體目標(biāo)是通過采用計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)
5、技術(shù)、控制技術(shù)和集成技術(shù)建立一個(gè)由家庭到小區(qū)乃至整個(gè)城市的綜合信息服務(wù)和系統(tǒng),以此來提高住宅高新技術(shù)的含量和居民居住環(huán)境水平。使人們享受到高科技帶來的方便快捷的生活方式。人們的生活方式在逐漸加快,因此生活中就需要更為便捷的生活方式。智能家居就是在這種情況下應(yīng)運(yùn)而生的。人們需要通過一個(gè)按鈕就可以實(shí)現(xiàn)對(duì)家具的控制,減少了原來需要尋找遙控器或者是開關(guān)等方式帶來的不便。從而使人們的家更舒服,更方便。系統(tǒng)通常由系統(tǒng)服務(wù)器、家庭控制器(各種模塊)、路由器、通訊器、控制器、無線收發(fā)器、各種傳感器等主要部分組成。1.3 研究現(xiàn)狀由于中國的居住模式和文化與發(fā)達(dá)國家有很大的區(qū)別,所以智能家居在中國的發(fā)展也體現(xiàn)出其
6、獨(dú)具的特色。中國人口眾多,城市住宅建設(shè)也多選擇密集型的住宅小區(qū)方式,因此很多房地產(chǎn)商會(huì)站在整個(gè)小區(qū)智能化的角度來看待家居的智能化,也就出現(xiàn)了目前一統(tǒng)天下、無所不包的“智能小區(qū)”的模式。智能小區(qū)同樣是中國特有國情的產(chǎn)物。智能小區(qū)與公共建筑中的智能建筑的主要區(qū)別是,智能小區(qū)強(qiáng)調(diào)住宅單元個(gè)體,側(cè)重物業(yè)管理功能。真正意義的智能小區(qū)中的單元-單個(gè)住宅,應(yīng)該安裝智能家居(Smart home),這樣智能小區(qū)的功能才得以有效運(yùn)用,對(duì)大型社區(qū)來說,智能小區(qū)是智能家居運(yùn)行的基礎(chǔ)平臺(tái)。其實(shí)無論是安全防護(hù)還是智能家居,都應(yīng)該屬于智能住宅的大的范疇,其中不單單包括智能安防以及智能家居,還包括諸多住宅智能化的功能,隨著
7、物聯(lián)網(wǎng)技術(shù)的發(fā)展興起,其廣闊的運(yùn)用以及領(lǐng)先的技術(shù)優(yōu)勢(shì)必定能改改變現(xiàn)在的市場(chǎng)現(xiàn)狀,未來的智能家居將是物聯(lián)網(wǎng)相關(guān)運(yùn)用的一個(gè)典范,將家居系統(tǒng)完美的結(jié)合以及協(xié)同各種傳感元件進(jìn)行有效感知,其中不單單指內(nèi)部感知,更包括了系統(tǒng)對(duì)外部的感知以及數(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ù)器。對(duì)應(yīng)的優(yōu)點(diǎn)就是客戶端響應(yīng)速度快。由客戶端調(diào)用send()方法發(fā)送控制信息,控制服務(wù)器端的家居狀態(tài),服務(wù)器受到控制信號(hào)之后,修改現(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ī)上的各個(gè)按鈕控制發(fā)送信號(hào),進(jìn)而實(shí)現(xiàn)家居的開關(guān)控制。系統(tǒng)選用J2me技術(shù)開發(fā)基于手機(jī)平臺(tái)的信息控制端軟件。以發(fā)送數(shù)據(jù)信號(hào)的方式發(fā)送到控制端,實(shí)現(xiàn)控制家居設(shè)備的功能。J2me是sun公司針對(duì)嵌入式、消費(fèi)類電子產(chǎn)品推出的開發(fā)平臺(tái),是一系列規(guī)范的集合,由JCP組織制定相關(guān)的JSR并發(fā)布,各個(gè)廠商會(huì)按照規(guī)范在自己的產(chǎn)品上進(jìn)行實(shí)現(xiàn),但是必須要通過TCK測(cè)試,確保兼容性8。通過使用
9、J2me中的無線網(wǎng)絡(luò)開發(fā)技術(shù)實(shí)現(xiàn)手機(jī)客戶端與系統(tǒng)終端的通訊。使用通用連接框架技術(shù)建立HTTP連接。使用servlet技術(shù)實(shí)現(xiàn)計(jì)算機(jī)之間的即時(shí)通訊。1.4.2 模塊劃分根據(jù)系統(tǒng)本身的需要,我們把系統(tǒng)分為以下模塊:主頁面顯示智能家居控制系統(tǒng)的字樣,以及輸入密碼的輸入框。密碼輸入成功則可以直接進(jìn)入智能家居控制系統(tǒng)的主界面。如果密碼輸入錯(cuò)誤,則需要重新輸入。對(duì)密碼的設(shè)定采用最大不能超過八個(gè)字符的簡單定義來實(shí)現(xiàn)對(duì)系統(tǒng)安全的保護(hù)工作。密碼輸入成功則可以登陸控制家具的頁面。根據(jù)房間的布局,把整個(gè)家庭分為三個(gè)模塊。分別為客廳、廚房和臥室,對(duì)房間中的家居進(jìn)行合理的分配,從而達(dá)到更高效的目的。同時(shí)為了方便修改密碼
10、。把修改密碼的功能也和這三個(gè)控制頁面一起,放入到了同一個(gè)界面中。下面介紹各個(gè)房間中能夠控制的家用電器??蛷d中能夠控制的家用電器包括:防盜門、窗簾、吊燈、空調(diào)和電視。防盜門、窗簾和電視的控制分為兩個(gè)分別是“開啟”和“關(guān)閉”。吊燈的控制除了在“開啟”和“關(guān)閉”的基礎(chǔ)上增加了一個(gè)亮度調(diào)節(jié)的控制,用滑動(dòng)條的形式來實(shí)現(xiàn)對(duì)溫度的調(diào)解。根據(jù)空調(diào)的特性,給空調(diào)又增加了溫度和濕度的控制。分別用兩個(gè)滑動(dòng)條來實(shí)現(xiàn)對(duì)家居的控制。廚房中能夠控制的家用電器包括:燈、窗簾。廚房中的燈和窗簾的控制分為“開啟”和“關(guān)閉”兩個(gè)設(shè)置。臥室中能夠控制的家用電器包括:床頭燈、窗簾和吊燈。臥室中的床頭燈和臺(tái)燈一樣在開啟和關(guān)閉的基礎(chǔ)上增加
11、了對(duì)亮度調(diào)節(jié)的控制。窗簾則只有“開啟”和“關(guān)閉”的功能為了方便人們的操作,增加了修改密碼的功能。在臥室的下面就是改密的字樣。點(diǎn)擊確定按鈕,則可以修改密碼,鍵入新密碼,返回密碼修改成功的字樣。無論何時(shí)何地,只要您想要控制家中家居的狀態(tài),拿起手機(jī),進(jìn)入到智能家居控制系統(tǒng),選擇要更改的房間,以及要控制的電器,選擇之后點(diǎn)擊發(fā)送按鈕,就可以實(shí)現(xiàn)對(duì)家用電器狀態(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)對(duì)家居的監(jiān)制和控制。接著介紹了有關(guān)該系統(tǒng)的國內(nèi)外研究現(xiàn)狀,以便于在前人研究基礎(chǔ)上能有所創(chuàng)新。充分結(jié)合前人的研究,使系統(tǒng)更為完善,更滿足用戶的需求。最后介紹了研究內(nèi)容,對(duì)自己所研究的內(nèi)容進(jìn)行了更加徹底的分析。方便人們了解到此系統(tǒng)實(shí)現(xiàn)的所有功能。2 系統(tǒng)需求分析2.1 系統(tǒng)功能需求項(xiàng)目主要實(shí)現(xiàn)用戶對(duì)家用電器的控制,其中包括家居的開和關(guān),以及其他的相關(guān)操作??蛻舳税l(fā)送控制信息的請(qǐng)求,通過網(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)對(duì)濕度和溫度的控制。進(jìn)而為人們實(shí)現(xiàn)對(duì)家具的控制提供了方便。該系統(tǒng)共分為五個(gè)模塊,分別為登陸、客廳、廚房、臥室和改密。模塊一:為了保證客戶使用信息的安全性,為此系統(tǒng)添加了登陸模塊,運(yùn)行智能家居控制系統(tǒng)的客戶端,就要鍵入密碼,密碼輸入正確就自動(dòng)跳轉(zhuǎn)到家居的控制頁面,反之重新鍵入密碼。模塊二:客廳中的家用電器主要包括:防盜門、窗簾、吊燈、空調(diào)和電視。實(shí)現(xiàn)對(duì)防盜門、窗簾的開關(guān)控制、對(duì)吊燈的開關(guān)操作以及亮度調(diào)節(jié)的控制、對(duì)空調(diào)的開關(guān)操作以及對(duì)室內(nèi)溫度和濕度的控制以及調(diào)節(jié)控制電視的開和關(guān),等等一系列的操作。模塊三:廚房中的家用電器主要包括:吊燈
14、和窗簾。還是用下拉菜單實(shí)現(xiàn)對(duì)各個(gè)家電的開關(guān)控制。模塊四:臥室中的家用電器主要包括:吊燈、窗簾和臺(tái)燈。這個(gè)模塊中的家具設(shè)計(jì)的雖然不是很多,但是也同樣實(shí)現(xiàn)了家具的開關(guān)和家用電器的監(jiān)制和控制。模塊五:用戶可以修改密碼,鍵入你想要設(shè)置的新的密碼,點(diǎn)擊設(shè)置按鈕就可以設(shè)置你想要的新的密碼了。2.2 系統(tǒng)性能需求智能家居控制系統(tǒng)是一個(gè)很有發(fā)展前景的系統(tǒng)。因此為了使本系統(tǒng)能夠長期使用,必須使系統(tǒng)滿足安全、穩(wěn)定、可靠、高效的運(yùn)行模式,生活水平的提高,伴隨著生活質(zhì)量的提高。同時(shí)人們生活的節(jié)奏也逐漸加快,怎樣高速的完成任務(wù)就是我們要考慮的主要問題。因此系統(tǒng)應(yīng)滿足如下性能需求:(1) 較強(qiáng)的擴(kuò)展能力和通用性,此系統(tǒng)即
15、能夠滿足一個(gè)家庭之間的遠(yuǎn)程控制,同時(shí)對(duì)一個(gè)小區(qū)來說也同樣適用。由于這次我們主要研究的是控制家居這方面的內(nèi)容,以后,我們還可以擴(kuò)展此系統(tǒng),加上遠(yuǎn)程通信、智能報(bào)警等等各項(xiàng)功能。(2) 由于本系統(tǒng)的界面簡單明了,因此人們很容易就學(xué)會(huì)操作。擴(kuò)大了系統(tǒng)的用戶群。在不改變?nèi)藗兩钭≌那闆r下,有效的實(shí)現(xiàn)對(duì)家居的控制。使人們可以節(jié)約時(shí)間,享受生活。(3) 系統(tǒng)的準(zhǔn)確性和及時(shí)性系統(tǒng)處理的準(zhǔn)確性和及時(shí)性是我們要考慮的主要問題。在控制家電的過程中,確保對(duì)家居狀態(tài)更改的準(zhǔn)確而且及時(shí)。優(yōu)化系統(tǒng),使系統(tǒng)的反應(yīng)能力和控制家居的能力滿足用戶多功能的需求。2.3 系統(tǒng)可行性研究驗(yàn)證一個(gè)系統(tǒng)是否可行,需要從多個(gè)方面著手分析。其
16、中主要的內(nèi)容包括:技術(shù)可行性、經(jīng)濟(jì)可行性和操作可行性三個(gè)方面。2.3.1 技術(shù)可行性系統(tǒng)采用J2me技術(shù)。使用J2me中特有的手機(jī)模擬器進(jìn)行開發(fā),實(shí)現(xiàn)對(duì)各種家居的控制。J2me技術(shù)規(guī)范定義了Java技術(shù)在資源有限制的設(shè)備中的表現(xiàn)形式。J2me主要適用于小型嵌入式設(shè)備,這些設(shè)備與PC或是服務(wù)器設(shè)備相比沒有統(tǒng)一的硬件標(biāo)準(zhǔn)、外觀與操作方式,其功用也是千差萬別13。但是J2me在使用于這些設(shè)備的同時(shí)也保留了Java的傳統(tǒng)特性,即任何時(shí)間和任何地點(diǎn)的代碼具有可移植性、部署靈活性、安全的網(wǎng)絡(luò)傳輸性,以及代碼穩(wěn)定性。Java平臺(tái)的主要優(yōu)點(diǎn)是它允許我們編寫可移植的應(yīng)用程序。Java平臺(tái)的可移植性來自其執(zhí)行模型
17、。具體地說,它是由于在運(yùn)行時(shí)使用JVM來將Java字節(jié)碼處理成機(jī)器碼,因而在硬件之上提供了兼容性層。Java平臺(tái)的執(zhí)行模型還引入了一些在設(shè)備本機(jī)應(yīng)用程序中缺乏的重要安全性優(yōu)點(diǎn)。(1) 在給定的時(shí)間內(nèi)能夠?qū)崿F(xiàn)任務(wù)書中的功能。能夠?qū)崿F(xiàn)頁面的跳轉(zhuǎn)以及對(duì)服務(wù)器端家電的控制。(2) 從軟件的質(zhì)量方面來看,軟件運(yùn)行速度較高,功能具備有實(shí)用價(jià)值。后期軟件維護(hù)代價(jià)相應(yīng)比較小。(3) 軟件的生產(chǎn)率較高。能在短時(shí)間內(nèi)完成有效地工作。2.3.2 經(jīng)濟(jì)可行性系統(tǒng)雖然需要依靠硬件來實(shí)現(xiàn),但是開發(fā)成本相對(duì)較低。后期維護(hù)簡單方便。如果能夠?qū)崿F(xiàn),則能夠取得可觀的效益。收益遠(yuǎn)遠(yuǎn)大于支出,因此此項(xiàng)目在經(jīng)濟(jì)方面是可行的。2.3.3
18、 操作可行性對(duì)于用戶來說,能夠使用該軟件系統(tǒng),能夠方便人們的生活,使人們生活的環(huán)境更加的美觀。墻面上不會(huì)再到處都是開關(guān),同時(shí)也不用為了尋找遙控器而發(fā)愁。使用此系統(tǒng),能夠使人們的生活方式發(fā)生天翻地覆的變化。讓人們享受科技帶來的方便生活。在家中你可以拿起手機(jī),選擇要控制的家電,然后更改其開關(guān)狀態(tài),在戶外也同樣可以控制,實(shí)現(xiàn)家中和戶外同等控制的功能,同時(shí)優(yōu)化了無線網(wǎng)絡(luò)傳輸過程中網(wǎng)絡(luò)延遲帶來的時(shí)間上的延遲,使人們?cè)谧疃痰臅r(shí)間內(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平臺(tái)上發(fā)布的應(yīng)用程序、Applet和組件的開發(fā)環(huán)境。JDK是一切Java應(yīng)用程序的基礎(chǔ),所有的Java應(yīng)用程序是構(gòu)建在這個(gè)之上的。它是一組API,也可以說是一些Java Class。(3) Sun WTK,Sun公司為了J2ME而提供了WTK開發(fā)工具,是最基本的J2ME程序開發(fā)工具,它是免費(fèi)提供的,體積小,執(zhí)行速度較快,完全遵守J2ME的各種規(guī)范,因此是J2ME程序員最基礎(chǔ)的必備的工具。(4) Eclipse,Eclipse是一個(gè)非常著名的集成開發(fā)工具,其自身功能強(qiáng)大而易用。另一個(gè)非常重要的特點(diǎn)是其提供了非常靈活的擴(kuò)展能力。它提供了豐富的接口可以擴(kuò)展其本身。同樣
20、Eclipse中也包含J2ME支持的插件,而且不止一種。(5) EclipseMe,EclipseMe自動(dòng)為Midlet創(chuàng)建了三個(gè)方法,作用如下:startApp方法是當(dāng)程序被啟動(dòng)時(shí)執(zhí)行的方法;pauseApp是當(dāng)程序被暫停或被打斷(如有撥入的電話)時(shí)調(diào)用的方法;destroyApp是當(dāng)Midlet被銷毀時(shí)調(diào)用的方法。2.5 小結(jié)本章對(duì)系統(tǒng)進(jìn)行了需求分析,首先通過對(duì)系統(tǒng)的功能需求的分析,了解了該模塊所應(yīng)完成的所有功能。接著進(jìn)行了系統(tǒng)性能需求的分析,以便于能夠保證系統(tǒng)長期、安全、穩(wěn)定、可靠、高效的運(yùn)行。接接下來要進(jìn)行系統(tǒng)可行性研究,主要從技術(shù)、經(jīng)濟(jì)、操作這三個(gè)方面加以分析。緊接著我們又分析了該系
21、統(tǒng)所需要的運(yùn)行環(huán)境。為系統(tǒng)的開發(fā)做好了準(zhǔn)備。3 系統(tǒng)總體設(shè)計(jì)總體設(shè)計(jì)過程首先尋找實(shí)現(xiàn)目標(biāo)系統(tǒng)的各種不同的方案,需求分析階段得到的數(shù)據(jù)流圖是設(shè)想各種可能方案的基礎(chǔ)。總體設(shè)計(jì)過程通常由兩個(gè)主要階段組成:系統(tǒng)設(shè)計(jì)階段,確定系統(tǒng)的具體實(shí)現(xiàn)方案;結(jié)構(gòu)設(shè)計(jì)階段,確定軟件結(jié)構(gòu)。3.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)系統(tǒng)采用C/S架構(gòu)進(jìn)行設(shè)計(jì)。在通信過程中,移動(dòng)客戶端與家庭系統(tǒng)模塊是通過TCP協(xié)議建立的可靠連接。首先移動(dòng)客戶端和家庭系統(tǒng)模塊之間建立Socket連接,家庭系統(tǒng)模塊在端口上監(jiān)聽等待客戶端連接??蛻舳诉B接之后,需要輸入密碼,密碼正確后服務(wù)器端會(huì)開啟一個(gè)線程為此客戶通信,并將這個(gè)Socket連接保存到向量中。在客戶端和
22、家庭系統(tǒng)模塊之間建立輸入輸出流??蛻舳伺c服務(wù)器端通過Socket可以建立連接。客戶想要改變家中的家居狀態(tài),只需要進(jìn)入家居控制系統(tǒng)中,選擇想要更改家居所在的房間,然后選擇家居,進(jìn)而改變家具的狀態(tài),通過調(diào)用send()方法向服務(wù)器端發(fā)送請(qǐng)求,由服務(wù)器端響應(yīng),然后服務(wù)器端將更改家居的狀態(tài),之后將結(jié)果返回給客戶端??蛻舳送ㄟ^調(diào)用recived()方法來獲得家居更改之后的狀態(tài)。本文主要研究客戶端的設(shè)計(jì),其中客戶端主要完成的功能設(shè)計(jì)如下:(1) 用戶登陸模塊主要實(shí)現(xiàn)對(duì)用戶的驗(yàn)證操作。為了保證用戶信息的安全性,因此需要用戶鍵入密碼,如果密碼輸入正確,則可以進(jìn)入智能家居控制系統(tǒng),如果密碼輸入錯(cuò)誤,則需要重新輸
23、入。(2) 房間選擇模塊的設(shè)計(jì)。根據(jù)人們?cè)诂F(xiàn)實(shí)生活中的生活環(huán)境的布局,考慮系統(tǒng)的實(shí)用性,因而將智能家居控制系統(tǒng)分為客廳、廚房和臥室這三個(gè)房間狀態(tài)。點(diǎn)擊客廳,跳轉(zhuǎn)進(jìn)入下一個(gè)頁面,顯示客廳中的所有家居,即包括:防盜門、窗簾、吊燈、空調(diào)和電視。點(diǎn)擊廚房,跳轉(zhuǎn)進(jìn)入另外一個(gè)頁面,顯示廚房中所能夠控制的所有家居,即包括:吊燈和窗簾。點(diǎn)擊臥室則跳轉(zhuǎn)進(jìn)入另一個(gè)頁面,顯示臥室中所能夠控制的所有家居,即包括:吊燈、窗簾和臺(tái)燈。其中房間模塊的功能結(jié)構(gòu)圖如下所示:圖(1)各房間所包含家居的功能圖(3) 家居狀態(tài)選擇模塊的設(shè)計(jì)主要包括對(duì)家電控制的設(shè)計(jì)。改變了人們對(duì)家居操作過于單一的模式,增加了對(duì)家居狀態(tài)和性能的人為控制
24、。當(dāng)人們要對(duì)客廳中的防盜門的開關(guān)狀態(tài)進(jìn)行控制時(shí),需要首先鍵入密碼,進(jìn)入智能家居控制系統(tǒng),然后選擇客廳點(diǎn)擊進(jìn)入之后選擇防盜門來進(jìn)行控制,其中對(duì)防盜門的控制包含兩種狀態(tài):開啟和關(guān)閉。而吊燈的選擇方式和選擇防盜門時(shí)類似,在開啟和關(guān)閉的基礎(chǔ)上增加了對(duì)亮度調(diào)節(jié)的控制。方便了人們對(duì)燈光亮度的選擇。而空調(diào)則在開啟和關(guān)閉的基礎(chǔ)上增加了對(duì)溫度和濕度的調(diào)節(jié)。方便了人們的操作。(4) 修改密碼模塊的設(shè)計(jì),從始至終不可能說一直使用一個(gè)密碼,因此增加了修改密碼的模塊,方便了用戶的操作。3.2 系統(tǒng)工作原理系統(tǒng)由多個(gè)類構(gòu)成。需要客戶端通過網(wǎng)絡(luò)發(fā)送對(duì)家居的控制。服務(wù)器端接收到客戶端發(fā)送的信息,然后再返回給客戶端。本系統(tǒng)是基
25、于HTTP網(wǎng)絡(luò)的用于智能家居環(huán)境中的一種遠(yuǎn)程自動(dòng)控制系統(tǒng)。其工作原理為:用戶通過自身的手機(jī)發(fā)出命令請(qǐng)求,在家值守的家庭系統(tǒng)模塊接收信息并對(duì)信息進(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)工作原理圖各個(gè)程序之間通過方法和類的調(diào)用來建立關(guān)聯(lián)。選擇登陸智能家居控制系統(tǒng),該界面實(shí)現(xiàn)內(nèi)容主要包含在MainMID這個(gè)類中,其中需要鍵入密碼,同時(shí)如果密碼輸入錯(cuò)誤,也可以對(duì)密碼再進(jìn)行修改。直至密碼輸入正確。則會(huì)跳入到下一個(gè)頁面。下一個(gè)頁面則是家具的
26、控制頁面。選擇所要控制的家具類型,進(jìn)入相應(yīng)的房間之后,我們就可以選擇要控制的家電類型來實(shí)現(xiàn)對(duì)家居的控制。然后通過網(wǎng)絡(luò)連接將要發(fā)送的數(shù)據(jù)發(fā)送到服務(wù)器端。等待服務(wù)器端做出響應(yīng)。目前出現(xiàn)的家居處理平臺(tái)一般分三類:一類是機(jī)頂盒,也就是彩電與機(jī)頂盒組合,能夠與家庭安全防范系統(tǒng)、家庭自動(dòng)化系統(tǒng),以及互聯(lián)網(wǎng)結(jié)成一體,實(shí)現(xiàn)家電控制、娛樂、交流和信息分享等方面的智能化。其次,就是利用家用電腦去控制各種家用電器,以家用電腦為基礎(chǔ)的智能家居系統(tǒng)。用電腦來運(yùn)行智能家居管理軟件,能提供更多的高級(jí)控制特性,實(shí)現(xiàn)組合控制和條件控制。由于所有的控制可自行定義,所以組合控制流程可以根據(jù)實(shí)際需要,自由地加以調(diào)整和改變。第三,模塊
27、式無線遙控模組,普通開關(guān)可以利用這模塊,不需要對(duì)原來的普通開關(guān)、插座進(jìn)行深度的改造,就可迅速成為多功能智能型無線遙控開關(guān)、插座。Java技術(shù)具有較強(qiáng)的兼容性,接受并處理控制設(shè)施發(fā)出的信息,然后傳送信號(hào)給予控制家電或者其他家居的子系統(tǒng)。這處理平臺(tái)可形象地理解為一個(gè)信息中心,它的職能就是在家居智能系統(tǒng)中,引導(dǎo)和規(guī)劃家居子系統(tǒng)中的各種信號(hào)。有了它,你可以通過電話,或者無線遙控器來和家居子系統(tǒng)進(jìn)行快速的溝通。這個(gè)家居處理平臺(tái)具有良好的擴(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ò)是一個(gè)動(dòng)態(tài)環(huán)境,當(dāng)有新設(shè)備加入家庭網(wǎng)絡(luò)里,應(yīng)該能被王闊中其它的設(shè)備識(shí)別,同時(shí)它也能發(fā)現(xiàn)網(wǎng)絡(luò)中其它設(shè)備。為了實(shí)現(xiàn)設(shè)備間的即插即用和互聯(lián),SUN公司引入了Jini技術(shù)。Jini的目的是將成組的設(shè)備和軟件構(gòu)件聯(lián)合成一個(gè)單一、動(dòng)態(tài)的分布式系統(tǒng)。Jini基于Java語言,是一種面向服務(wù)的中間技術(shù),運(yùn)行于TCP、IP協(xié)議之上,跨平臺(tái)運(yùn)行,獨(dú)立于底層操作系統(tǒng)和通信技術(shù),設(shè)備間可相互查詢、理解所具備的功能,家庭網(wǎng)絡(luò)無需人工參與,網(wǎng)絡(luò)設(shè)置可自動(dòng)完成。(2
29、) MIDPMIDP定義了一套完整的用戶界面接口,全部定義在javax.microedition. lcdui包中。MIDP用戶界面程序包的核心抽象是類Displayable。根據(jù)用戶的交互,應(yīng)用程序在完成任務(wù)的每一步不斷設(shè)置和重設(shè)在Display對(duì)象上的當(dāng)前Displayable對(duì)象。用戶任務(wù)(指與用戶界面的交互)通過Command對(duì)象來實(shí)現(xiàn)。當(dāng)用戶選擇了一個(gè)Command對(duì)象之后,應(yīng)用程序自動(dòng)獲得通知。作為反饋,應(yīng)用程序經(jīng)常改變當(dāng)前的Displayable對(duì)象,把另一個(gè)Displayable作為當(dāng)前值。設(shè)備軟件管理了本地應(yīng)用程序和MIDP應(yīng)用程序之間的物理顯示資源的共享。Displayab
30、le的子類有兩種:Canvas:允許應(yīng)用程序進(jìn)行圖形處理和輸入處理的底層對(duì)象。Screen:封裝了完整的用戶界面組件(類Alert、List、TextBox、Form)的高層對(duì)象。List:允許從一個(gè)預(yù)定義的選擇集中選擇。TextBox:是一個(gè)擁有可控制編輯方法的平坦文本編輯器。Alert:顯示臨時(shí)信息或者簡單選擇問詢。Form:更寬泛的容器,允許顯示多個(gè)密切相關(guān)的叫做Item的用戶界面元素。3.4 小結(jié)本章通過對(duì)系統(tǒng)的結(jié)構(gòu)、工作原理等各方面的設(shè)計(jì),對(duì)系統(tǒng)的流程以及系統(tǒng)所要完成的功能都有了較為深入的了解。為人們掌握智能家居的使用方法了解智能家居奠定了堅(jiān)實(shí)的基礎(chǔ)。4 系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)4.1 數(shù)
31、據(jù)存儲(chǔ)在MIDP規(guī)范中,提供了記錄管理系統(tǒng)(Record Management System, RMS),這個(gè)記錄管理系統(tǒng)就是一個(gè)小型簡單的數(shù)據(jù)庫管理系統(tǒng)(Database Management System),除了能用于管理系統(tǒng)儲(chǔ)存的資料之外,也可以用于存儲(chǔ)對(duì)象的狀態(tài)信息。RMS是J2me的一個(gè)重要的子系統(tǒng),目的是實(shí)現(xiàn)應(yīng)用程序本地?cái)?shù)據(jù)的持久性存儲(chǔ)。RMS是管理數(shù)據(jù)的系統(tǒng),Record(記錄)是系統(tǒng)中最重要的實(shí)體。在移動(dòng)設(shè)備存儲(chǔ)空間存儲(chǔ)的并不是字段,而是字節(jié)數(shù)組。RMS的職責(zé)是存儲(chǔ)和唯一標(biāo)識(shí)記錄,而表示數(shù)據(jù)的任務(wù)是由應(yīng)用程序來完成的。這樣做的目的是簡化MIDP的實(shí)現(xiàn),使得J2ME的子系統(tǒng)盡量的
32、小巧、靈活。Record Store(記錄倉儲(chǔ))是一系列的有序集合,記錄是不能單獨(dú)存在的,必須屬于記錄倉儲(chǔ)。記錄倉儲(chǔ)保證記錄的讀寫操作都是原子的,數(shù)據(jù)不會(huì)被破壞。在API中記錄倉儲(chǔ)是由javax.microedition.rms.RecordStore實(shí)現(xiàn)的。每條記錄代表了一條數(shù)據(jù)信息。一條記錄由一個(gè)整型的RecordID與一個(gè)代表數(shù)據(jù)的byte數(shù)組兩個(gè)子元素組成。RecordID是每條記錄的唯一標(biāo)識(shí)符,利用這個(gè)標(biāo)識(shí)符可以從記錄倉儲(chǔ)中找到對(duì)應(yīng)的一條記錄。其中RMS所使用的空間圖如圖所示:圖(3)RMS空間圖系統(tǒng)中對(duì)密碼的存儲(chǔ)是通過RMS進(jìn)行實(shí)現(xiàn)的。首先要在系統(tǒng)中使用RMS,首先需要定義RMS的
33、名稱。在系統(tǒng)中定義的RMS的名稱是RMS_NAME,然后對(duì)它進(jìn)行實(shí)例化,使用rs=openRSAnyway(RMS_NAME)來進(jìn)行。要寫入密碼,首先就需要打開RMS,使用rs= RecordStore.openRecordStore(rsname, ture)函數(shù),然后returen rs;即可實(shí)現(xiàn)。密碼寫入之后則需要關(guān)閉倉儲(chǔ),使用rs= RecordStore.deleteRecordStore(rsname)來實(shí)現(xiàn)。系統(tǒng)中輸入密碼的時(shí)候要驗(yàn)證密碼輸入是否正確,這個(gè)時(shí)候也需要用到倉儲(chǔ)。首先需要用函數(shù)RecordStore.openRecordStore(RMS_NAME, ture)來打開
34、倉儲(chǔ)和倉儲(chǔ)中存儲(chǔ)的數(shù)據(jù)進(jìn)行比對(duì),然后調(diào)用相應(yīng)的函數(shù)來驗(yàn)證。4.2 系統(tǒng)功能的設(shè)計(jì)與實(shí)現(xiàn)該智能家居控制系統(tǒng)實(shí)現(xiàn)了以下幾個(gè)功能:登陸、客廳模塊、廚房模塊、臥室模塊和改密等一系列的功能。下面將對(duì)以下幾種功能進(jìn)行詳細(xì)的論述??蛻舳送瓿傻闹饕δ馨▽?duì)家居的控制。通過客戶端發(fā)送控制信息通過網(wǎng)絡(luò)傳送到服務(wù)器端,再由服務(wù)器端返回給客戶端。進(jìn)而實(shí)現(xiàn)對(duì)家居的控制。其中,系統(tǒng)功能結(jié)構(gòu)圖如下所示:圖(4)系統(tǒng)功能結(jié)構(gòu)圖4.2.1 登錄功能的詳細(xì)設(shè)計(jì)登錄功能是為了保證用戶信息的安全,因此在智能家居控制系統(tǒng)的首頁需要鍵入密碼,鍵入密碼之后,則需要點(diǎn)擊菜單按鈕,然后點(diǎn)擊登入按鈕,如果密碼輸入正確之后才能進(jìn)入智能家居控制系
35、統(tǒng)。如果密碼輸入錯(cuò)誤,則會(huì)返回一個(gè)頁面,提示密碼輸入錯(cuò)誤,請(qǐ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è)計(jì)它的位置,則需要使用錨點(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)方法每個(gè)Graphics都有一個(gè)Font對(duì)象與其關(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)來獲得一個(gè)對(duì)象以表示字體所具有制定的外觀。使用的均為最大字體。Face參數(shù),用來定義字體的外觀。其中使用到的Font類定義的外觀常數(shù)如下:Static int FACE_PROPORTIONAL:“比例”字體外觀,數(shù)值64被制定給此數(shù)。Style參數(shù),用來定義字體的樣式。在這個(gè)類中使用到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)對(duì)畫布圖片的載入。用低級(jí)用戶界面Canvas實(shí)現(xiàn)智能家居控制系統(tǒng)中按鈕的設(shè)置。其中對(duì)按鈕的定義操作包括: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個(gè)字符。因此對(duì)密碼的限制要求是32位。首先要對(duì)TextField進(jìn)行后臺(tái)的實(shí)例化,然后設(shè)置這個(gè)文本框所在的位置,以及位數(shù)。實(shí)現(xiàn)方法是textfield=new TextField(“” , “”,8,TextField.ANY|TextField.PASSWORD);輸入密碼之后要獲取TextField中的文本,使用方法是textfield.setString(str);來實(shí)現(xiàn)。密碼框的畫法包括對(duì)顏色、字?jǐn)?shù)的限制。其中對(duì)顏色的控制方法是調(diào)用setColor()方法來設(shè)置字體的顏色。使用
39、g.drawRect()方法來設(shè)置矩形的邊框。Fillrect()方法則表示使用指定的畫刷來填充矩形。系統(tǒng)運(yùn)行界面如下所示:圖(5)系統(tǒng)運(yùn)行界面PassWordCanvas類主要包含TextField子類,首先要對(duì)TextField在后臺(tái)進(jìn)行實(shí)例化,TextField是用于帶約束的文本類型輸入。textfield = new TextField(, , 8, TextField.ANY | TextField.PASSWORD); / 后臺(tái)TextField實(shí)例化。其中還包括對(duì)登錄界面中字體顏色、背景等方面的設(shè)計(jì)。鍵入密碼“1234”之后點(diǎn)擊菜單中的登陸按鈕我們就可以進(jìn)入到智能家居控制系統(tǒng)的頁
40、面。如果輸入密碼錯(cuò)誤,則跳轉(zhuǎn)到密碼輸入錯(cuò)誤頁面,重新輸入密碼,直到密碼輸入正確,則可以進(jìn)入到控制頁面。密碼錯(cuò)誤界面的實(shí)現(xiàn)方法如下:使用Screen類的子類Alert來實(shí)現(xiàn)臨時(shí)信息的顯示。密碼輸入錯(cuò)誤,則跳轉(zhuǎn)進(jìn)入密碼錯(cuò)誤界面,實(shí)現(xiàn)方法是initAlert()方法。其中顯示文字的實(shí)現(xiàn)方法是alert= new Alert(“密碼錯(cuò)誤”,“請(qǐng)輸入正確的密碼!”,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)。其中密碼輸入錯(cuò)誤之后頁面提示界面如下:圖(6)密碼鍵入錯(cuò)誤要實(shí)現(xiàn)對(duì)該頁面的設(shè)計(jì),首先需要填充背景的顏色,畫出背景的邊框、標(biāo)題等。要通過確定錨點(diǎn)來實(shí)現(xiàn)對(duì)功能的定位。而鍵入的密碼則存儲(chǔ)在倉儲(chǔ)中。通過調(diào)用getNextRecordID()方法來驗(yàn)證鍵入的密碼是否正確。如果密碼輸入錯(cuò)誤,則會(huì)調(diào)用initAlert()方法將“密碼錯(cuò)誤,請(qǐng)輸入正確的密碼”返回給用戶。如果密碼輸入錯(cuò)誤,我們可以選擇回刪按鈕,調(diào)用deleteOneChar()方法來刪除字符。最終輸入正確的密碼后,調(diào)用IntoSystem()方法進(jìn)入系統(tǒng)。4.2.2 家居狀態(tài)的詳
42、細(xì)設(shè)計(jì)密碼鍵入成功之后,就會(huì)自動(dòng)跳轉(zhuǎn)到家居的控制頁面。選擇客廳點(diǎn)擊開始按鈕,就會(huì)進(jìn)入到家具的選擇頁面。其中包括:防盜門、窗簾、吊燈、空調(diào)和電視的控制。防盜門、窗簾和電視的狀態(tài)包括開啟和關(guān)閉兩種狀態(tài)。另外吊燈在開啟和關(guān)閉的基礎(chǔ)上另外增加了對(duì)亮度的控制??照{(diào)則是在開啟和關(guān)閉的基礎(chǔ)上增加了對(duì)濕度和溫度的調(diào)節(jié)和控制。輸入密碼正確之后,則可以進(jìn)入到系統(tǒng)控制界面。其中包括:客廳、廚房、臥室和修改密碼功能。其中,這幾個(gè)模塊在頁面中的顯示方法是通過數(shù)組的形式來定義的。定義方法是private String SEECT_ITEM = “客廳”,“廚房”,“臥室”,“修改密碼”,然后通過if語句來實(shí)現(xiàn)對(duì)文本框現(xiàn)在
43、所在位置的確定。Fnt= Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_PLAIN|Font.STYLE_BOLD, Font.SIZE_LARGE);這里實(shí)現(xiàn)了對(duì)字體的定義,然后調(diào)用setFont()函數(shù)來實(shí)現(xiàn)。歡迎回到溫暖之家這幾個(gè)字的實(shí)現(xiàn)方法如下:g.setColor(0x0011CC)最終顯示的字體為藍(lán)色。確定位置所使用的函數(shù)是g.drawString(“歡迎回到溫暖之家”,getWidth()/6+10,10,Graphics.TOP|Graphics.LEFT),確定屏幕中這幾個(gè)模塊所在的位置,使用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)和電視。這幾個(gè)家居的實(shí)現(xiàn)方法和上面我們實(shí)現(xiàn)的方法類似,但是在文本上增加了矩形方框的設(shè)計(jì)。選擇客廳調(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) 對(duì)燈光的控制包括:無線射頻燈光控制系統(tǒng)由智能面板開關(guān)和調(diào)光器組成,調(diào)光器用以發(fā)送和接收命令信號(hào),命令通過無線電傳播,而不是通過家庭的電源線路傳輸。每個(gè)面板開關(guān)都備有一個(gè)不同的遙控識(shí)別代碼。這些代碼利用19位識(shí)別技術(shù),使接收器能準(zhǔn)確辨別每個(gè)指令。即使鄰居同時(shí)使用,也絕對(duì)不會(huì)因其遙控器干擾而發(fā)生傳輸錯(cuò)誤。調(diào)光開關(guān)同樣內(nèi)置RF無線射頻發(fā)射器,能獨(dú)立于遙控器或移動(dòng)開關(guān)之外,控制落地?zé)艋蜃罒舻拈_關(guān)或隨意調(diào)節(jié)燈光亮度。減少干
46、擾,傳送或接收指令更加準(zhǔn)確無誤。其中,開啟和關(guān)閉,除了在位置上的設(shè)置之外,還增加了矩形框的設(shè)計(jì)。當(dāng)矩形框在開啟這兩個(gè)字上面時(shí),開啟二字加粗,關(guān)閉使用常規(guī)。首先定義兩個(gè)函數(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)滾動(dòng)條的實(shí)現(xiàn)則使用文本方式,通過進(jìn)度條來選擇所要填充矩形的多少。使用g.drawRect(60,91,101,20)來繪制矩形。使用g.fillRect(61,90+2,ROLL,19)來填充矩形。其中滾動(dòng)條參數(shù)的設(shè)置使用的函數(shù)是g.drawString(ROLL + , 105, baseY, Graphics.TOP | Graphics.LEFT)開關(guān)的開關(guān)設(shè)置為0和1,如果為滾動(dòng)條方式則設(shè)置為0100然后實(shí)現(xiàn)開啟和關(guān)閉,燈光控制圖如下所示:圖(9)吊燈狀態(tài)選擇(2) 對(duì)信息家電的控制包括:信息家電控制是一個(gè)整合了紅外控制和無線
48、控制的多功能遙控系統(tǒng)。它可以控制多達(dá)五種紅外設(shè)備(如:電視機(jī)、空調(diào)、DVD、功放、窗簾等)和開關(guān)、插座等無線設(shè)備。信息家電控制系統(tǒng)主要由信息家電控制器和各種智能遙控開關(guān)組成。信息家電控制器可以把普通紅外電器的遙控器的編碼通過學(xué)習(xí)的方式轉(zhuǎn)存下來從而替代原有的家電遙控器。同時(shí)它本身還是無線遙控器,可以發(fā)射433.92MHz頻率的控制信號(hào),所以它可以控制這個(gè)頻段的智能開關(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)我們想要開啟電視的時(shí)候,點(diǎn)擊開啟按鈕,系統(tǒng)調(diào)用drawRecr函數(shù)。繪制出這個(gè)文本框。同理,選擇關(guān)閉按鈕的時(shí)候也是如此。文本框是長為60寬為20的矩形。點(diǎn)擊以后,系統(tǒng)通過調(diào)用send()方法,將
50、控制信息發(fā)送到控制端。等待控制端的響應(yīng)。其中,我們以電視為例,其中對(duì)電視的控制圖如下所示:圖(10)對(duì)空調(diào)的控制(3) 對(duì)空調(diào)的控制包括:空調(diào)的紅外編碼和其他家電的紅外編碼有很大區(qū)別,空調(diào)遙控器上每一個(gè)按鍵所對(duì)應(yīng)的紅外編碼不是固定的。比如按下溫度增加或減少的按鍵,它并不是簡單地發(fā)送一個(gè)固定的溫度增加或減少的紅外編碼,而是向空調(diào)發(fā)送一個(gè)當(dāng)前工作狀態(tài)的編碼(這個(gè)編碼包含空調(diào)當(dāng)前是多少度)。因此實(shí)現(xiàn)對(duì)空調(diào)的控制結(jié)構(gòu)就比較復(fù)雜。人們要實(shí)現(xiàn)對(duì)室內(nèi)溫度和濕度的控制就需要先對(duì)發(fā)送出的數(shù)據(jù)進(jìn)行編碼,將編碼之后的結(jié)果發(fā)送到服務(wù)器端,再由服務(wù)器端來響應(yīng)對(duì)空調(diào)的控制??照{(diào)頁面的實(shí)現(xiàn)方法和上面臺(tái)燈的實(shí)現(xiàn)方法類似,增加
51、了一個(gè)滾動(dòng)條,其中分別是對(duì)溫度和濕度的控制。實(shí)現(xiàn)方法是使用數(shù)組分別定義兩個(gè)文本框然后調(diào)用。具體的實(shí)現(xiàn)方法雖然類似,但是卻是分別實(shí)現(xiàn)的。其中空調(diào)頁面的實(shí)現(xiàn)方法在電視的基礎(chǔ)上增加了人性化的設(shè)計(jì)。即溫度控制這幾個(gè)漢字的顯示方法是定義在數(shù)組中,其中的一個(gè)既是對(duì)溫度和濕度調(diào)節(jié)的控制,調(diào)用setRolligString()來顯示。然后調(diào)用addChildList(cncs)來控制頁面。對(duì)空調(diào)的控制圖如下所示:圖(11)運(yùn)行界面如圖所示廚房中的家具包括窗簾和吊燈。調(diào)用ITEM_SELECTED()方法選擇要進(jìn)入的界面。然后使用stringArray方法來定義家具的類型。調(diào)用廚房中藥使用的圖片chufang.
52、png,其中對(duì)吊燈的亮度調(diào)節(jié),則選擇setRollingString()方法來進(jìn)行顯示。開關(guān)的樣式等也是在畫布中畫出的。設(shè)置子菜單,調(diào)用setLastPage()方法將上層頁面設(shè)置為當(dāng)前頁面。設(shè)置文本和背景圖片,要設(shè)置背景圖片則需要對(duì)Canvas進(jìn)行重繪。其它的都和客廳中的實(shí)現(xiàn)方法類似。4.2.3 修改密碼功能的詳細(xì)設(shè)計(jì)密碼鍵入成功,進(jìn)入智能家居頁面之后,就可以修改用戶的密碼。選擇通過上下按鍵的選擇,選中改密這個(gè)文本框,然后點(diǎn)擊開始按鈕,則可以修改系統(tǒng)的密碼,鍵入新的密碼,然后就可以完成對(duì)密碼的修改。想要修改密碼成功,首先要打開倉儲(chǔ)RMS將想要修改的密碼存儲(chǔ),打開倉儲(chǔ)的方法是通過調(diào)用openR
53、ecordStore()方法來將想要修改的密碼存儲(chǔ)進(jìn)去。存儲(chǔ)成功則需要關(guān)閉倉儲(chǔ),即調(diào)用deleteRecordStore()方法關(guān)閉RMS。當(dāng)我們下次要進(jìn)入系統(tǒng)的時(shí)候則需要輸入修改之后的密碼了。修改密碼功能的實(shí)現(xiàn)和進(jìn)入系統(tǒng)時(shí)鍵入密碼的實(shí)現(xiàn)方法有類似的地方。其中密碼修改成功的顯示方法是g.drawString(“密碼修改成功”,20,80,Graphics.TOP|Graphics.LEFT),鍵入新密碼之后,新密碼要存入倉儲(chǔ)中,因此需要打開倉儲(chǔ),密碼修改成功之后,需要關(guān)閉倉儲(chǔ)。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è)計(jì)是利用嵌入式系統(tǒng)的I/O口對(duì)家用電器的用電進(jìn)行控制。系統(tǒng)通過S3C2410的I/O口輸出高低電平來進(jìn)行控制,同時(shí)用發(fā)光二極管指示家用電器工作狀況。發(fā)光二極管,表示家用電器通電,發(fā)光二極管滅,表示家用電器斷電。由于被控模塊家用電器大多使用220V交流電,屬于強(qiáng)電電路,所以使用繼電器控制家電。在芯片與繼電器中間加驅(qū)動(dòng)電路。驅(qū)動(dòng)電路可以利用光電耦合的通、斷去控制繼電器的開與關(guān)。也可以利用三極管的飽和與截止去控制繼電器的開
55、與關(guān),這里采用三極管方式。當(dāng)I/O口引腳輸出低電平時(shí),三極管飽和導(dǎo)通。在遠(yuǎn)程監(jiān)控的過程中需要網(wǎng)絡(luò)操作,因此我需要留有兩個(gè)接口,分別是send和recived。Send()方法用來實(shí)現(xiàn)對(duì)服務(wù)器端的控制,recived()方法用來接收由服務(wù)器端返回的數(shù)據(jù)。使用Cmd_Send方法來發(fā)送要修改的控制信息。并使用setCommandListener(this)來設(shè)置對(duì)功能鍵偵聽。4.4 小結(jié)本章通過對(duì)整個(gè)智能家居控制系統(tǒng)的客戶端進(jìn)行了詳細(xì)的論述。其中介紹了每個(gè)功能模塊所包含的內(nèi)容,以及實(shí)現(xiàn)的方法。通過詳細(xì)設(shè)計(jì)、編碼去實(shí)現(xiàn)預(yù)期的各項(xiàng)功能。除了應(yīng)該保證軟件的可靠性之外,使將來編寫出的程序可讀性好、容易理解
56、、容易測(cè)試、容易修改和維護(hù),是詳細(xì)設(shè)計(jì)編碼階段最重要的目標(biāo)。程序在設(shè)計(jì)的過程中,程序內(nèi)部的良好文檔資料,有規(guī)律的數(shù)據(jù)說明格式,簡單清晰地語句構(gòu)造和輸入輸出格式等,都對(duì)提高程序的可讀性有很大的作用,也在相當(dāng)大的程度上改進(jìn)了程序的可維護(hù)性。5 系統(tǒng)測(cè)試5.1 單元測(cè)試單元測(cè)試集中檢測(cè)軟件設(shè)計(jì)的最小單元模塊。通常,單元測(cè)試和編碼屬于軟件過程的同一個(gè)階段。在編寫出源程序代碼并通過了編譯程序的語法檢查之后,就可以用詳細(xì)設(shè)計(jì)描述作指南,對(duì)重要的執(zhí)行通路進(jìn)行測(cè)試,以便發(fā)現(xiàn)模塊內(nèi)部的錯(cuò)誤??梢詰?yīng)用人工測(cè)試和計(jì)算機(jī)測(cè)試這兩種不同類型的測(cè)試方法,完成單元測(cè)試工作。這兩種測(cè)試方法各有所長,互相補(bǔ)充。通常,單元測(cè)試期
57、間著重從下述5個(gè)方面對(duì)模塊進(jìn)行測(cè)試。(1) 模塊接口首先應(yīng)該對(duì)通過模塊接口的數(shù)據(jù)流進(jìn)行測(cè)試,如果測(cè)試數(shù)據(jù)不能正確地進(jìn)出,所有其他測(cè)試都是不切實(shí)際的。在對(duì)模塊接口進(jìn)行測(cè)試時(shí)主要檢查下述幾個(gè)方面:參數(shù)的數(shù)目、次序、屬性或單位系統(tǒng)與變?cè)欠褚恢拢皇欠裥薷牧酥蛔鬏斎胗玫淖冊(cè)?;全局變量的定義和用法在各個(gè)模塊中是否一致。登陸模塊中,輸入密碼,密碼正確,則可以登陸此系統(tǒng),如果密碼錯(cuò)誤,則返回“請(qǐng)輸入正確的密碼!”的提示字樣。經(jīng)過驗(yàn)證,可以正常運(yùn)行。在家具選擇模塊,對(duì)客廳、廚房、臥室和修改密碼這四個(gè)模塊均能正常選擇,沒有異常情況。(2) 局部數(shù)據(jù)結(jié)構(gòu)對(duì)于模塊來說,局部數(shù)據(jù)結(jié)構(gòu)是常見的錯(cuò)誤來源。檢查局部數(shù)據(jù)說明、初始化、默認(rèn)值等方面是否出現(xiàn)錯(cuò)誤。對(duì)于按鈕的開啟和關(guān)閉,我們采用默認(rèn)值0和1來進(jìn)行設(shè)置。對(duì)滾動(dòng)條的設(shè)置則采用0100的動(dòng)態(tài)控制。通過對(duì)該系統(tǒng)的運(yùn)行測(cè)試,該系統(tǒng)可以正常運(yùn)行。選擇的過程中也不會(huì)出現(xiàn)錯(cuò)誤。(3) 重要的執(zhí)行通路由
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 通風(fēng)安全課程設(shè)計(jì)cad
- 液體制劑的課程設(shè)計(jì)
- 跳繩游戲主題課程設(shè)計(jì)
- 紙藝社團(tuán)培訓(xùn)課程設(shè)計(jì)
- 幼兒園水泥制作課程設(shè)計(jì)
- 轉(zhuǎn)向臂課程設(shè)計(jì)夾具
- 鉆井課程設(shè)計(jì)參考
- 船舶原理螺旋槳課程設(shè)計(jì)
- 電梯的制作課程設(shè)計(jì)
- 提升服務(wù)質(zhì)量家政從業(yè)人員的培訓(xùn)與教育
- 公路工程施工現(xiàn)場(chǎng)安全檢查手冊(cè)
- 公司組織架構(gòu)圖(可編輯模版)
- 1汽輪機(jī)跳閘事故演練
- 陜西省銅川市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會(huì)明細(xì)
- 禮品(禮金)上交登記臺(tái)賬
- 北師大版七年級(jí)數(shù)學(xué)上冊(cè)教案(全冊(cè)完整版)教學(xué)設(shè)計(jì)含教學(xué)反思
- 2023高中物理步步高大一輪 第五章 第1講 萬有引力定律及應(yīng)用
- 青少年軟件編程(Scratch)練習(xí)題及答案
- 浙江省公務(wù)員考試面試真題答案及解析精選
- 系統(tǒng)性紅斑狼瘡-第九版內(nèi)科學(xué)
- 全統(tǒng)定額工程量計(jì)算規(guī)則1994
評(píng)論
0/150
提交評(píng)論