陳玉嶺,章 杰,程樹英
(福州大學(xué) 物理與信息工程學(xué)院,福建 福州350108)
在歐美等西方經(jīng)濟(jì)發(fā)達(dá)的國家,智能家居已經(jīng)相當(dāng)普及。在中國,隨著社會(huì)經(jīng)濟(jì)的快速發(fā)展和人們生活水平的不斷提高,智能家居也將成為家居發(fā)展的必然趨勢[1]。
目前部分智能家居集控裝置一般不具有場景模式功能,每次都需要對家電進(jìn)行單獨(dú)控制;同時(shí)部分具有場景模式功能的智能家居集控裝置中場景模式下的各個(gè)參數(shù)通常是固定不變的,使用極為不便[2]。
本文設(shè)計(jì)的基于場景模式的智能家居系統(tǒng)不僅具有場景控制功能,而且用戶可以根據(jù)自己的需求設(shè)置場景模式的參數(shù)。因此,本設(shè)計(jì)將為人們提供一個(gè)更加舒適的居住環(huán)境。
本文將無線組網(wǎng)技術(shù)與Android應(yīng)用開發(fā)相結(jié)合,通過以S3C2440為核心的家庭網(wǎng)關(guān)將Android手機(jī)與家庭設(shè)備節(jié)點(diǎn)進(jìn)行整合,從而實(shí)現(xiàn)基于場景模式的智能家居系統(tǒng)。
本系統(tǒng)主要由監(jiān)控終端、智能家庭網(wǎng)關(guān)和家庭設(shè)備節(jié)點(diǎn)組成,如圖1所示。
圖1 系統(tǒng)組成
監(jiān)控終端可以顯示和控制家庭內(nèi)部設(shè)備的運(yùn)行狀態(tài);家庭網(wǎng)關(guān)是監(jiān)控終端和家庭內(nèi)部設(shè)備之間通信的樞紐,并存儲(chǔ)整個(gè)系統(tǒng)的配置文件,是整個(gè)系統(tǒng)的核心;家庭設(shè)備節(jié)點(diǎn)實(shí)現(xiàn)對設(shè)備的實(shí)際監(jiān)控。
系統(tǒng)家庭內(nèi)部組網(wǎng)所用的無線模塊是nRF24LE1。nRF24LE1采用了Nordic最新的無線和超低功耗技術(shù),在一個(gè)極小封裝中集成了包括2.4 GHz無線傳輸、增強(qiáng)型51 Flask高速單片機(jī)、豐富外設(shè)及接口等的單片F(xiàn)lash芯片,是一個(gè)綜合了性能及成本的完美結(jié)合,很適合應(yīng)用于各種2.4 GHz的產(chǎn)品設(shè)計(jì)[3]。
設(shè)備節(jié)點(diǎn)的組成如圖2所示。
節(jié)點(diǎn)中無線模塊用來接收網(wǎng)關(guān)發(fā)送的無線控制命令,并將監(jiān)控電路上傳的參數(shù)無線發(fā)送給家庭網(wǎng)關(guān);監(jiān)控電路是真正監(jiān)控家庭設(shè)備的功能實(shí)現(xiàn)體,其作用就是根據(jù)命令實(shí)施具體控制或者為用戶提取設(shè)備狀態(tài);家庭設(shè)備包含家電設(shè)備(燈、空調(diào)等)、機(jī)械設(shè)備(水閥、機(jī)械按鈕等)和消防安防設(shè)備(如煙霧傳感、紅外人體感應(yīng)等)。
下面的示例節(jié)點(diǎn)可以簡單地說明設(shè)備節(jié)點(diǎn)的硬件組成及工作原理。
圖2 設(shè)備節(jié)點(diǎn)組成
圖3為照明控制節(jié)點(diǎn)原理圖。照明控制節(jié)點(diǎn)的無線控制模塊為nRF24LE1;控制電路由繼電器HRS4H-SDC 5 V、三極管C8050和電阻R組成;家庭設(shè)備為一盞照明用燈。nRF24LE1內(nèi)部集成單片機(jī)的P0.0引腳向控制電路輸出0或1的控制信號,進(jìn)而控制照明燈供電線路的通斷。
圖3 照明控制節(jié)點(diǎn)原理圖
圖3中的nRF24LE1代表完整的nRF24LE1應(yīng)用電路,包含了芯片外圍器件及線路。
系統(tǒng)中所采用的無線模塊nRF24LE1內(nèi)置了點(diǎn)對點(diǎn)無線通信協(xié)議控制和CRC糾錯(cuò)硬件電路,數(shù)據(jù)編解碼和CRC產(chǎn)生及校驗(yàn)均由硬件完成。
但nRF24LE1不像ZigBee那樣有著成熟的組網(wǎng)標(biāo)準(zhǔn)。雖然Nordic為無線桌面及其他應(yīng)用設(shè)計(jì)推出了一套完整的無線通信協(xié)議——Gazell協(xié)議,但其所能承受的網(wǎng)絡(luò)最多為1個(gè)主機(jī)和6個(gè)外設(shè),且主機(jī)只有收到外設(shè)數(shù)據(jù)包后才能發(fā)送數(shù)據(jù)到外設(shè)。其他研究機(jī)構(gòu)也有發(fā)表相關(guān)通信協(xié)議的論文,但他們所述的協(xié)議一般適用于數(shù)據(jù)量大、需要連續(xù)傳輸時(shí)的情況[3]。而此系統(tǒng)通信的特點(diǎn)是節(jié)點(diǎn)多、數(shù)據(jù)量小。
所以,本系統(tǒng)設(shè)計(jì)一個(gè)適用于此系統(tǒng)的簡單組網(wǎng)協(xié)議。鑒于此無線模塊所具有的一些通信協(xié)議功能,系統(tǒng)組網(wǎng)協(xié)議主要從沖突避免的角度來考慮。設(shè)備節(jié)點(diǎn)的上傳數(shù)據(jù)流程如圖4所示。
無線模塊的常態(tài)為接收模式,在此狀態(tài)下無線模塊不會(huì)對無線網(wǎng)絡(luò)造成影響。而當(dāng)節(jié)點(diǎn)要上傳數(shù)據(jù)時(shí),無線模塊一定要避免與其他節(jié)點(diǎn)發(fā)生碰撞。所以要采取發(fā)送權(quán)申請的方式來上傳數(shù)據(jù)。
為避免網(wǎng)絡(luò)沖突,在每個(gè)節(jié)點(diǎn)中定義一個(gè)net_stat。子節(jié)點(diǎn)的net_stat等于2時(shí)可以向協(xié)調(diào)器申請發(fā)送數(shù)據(jù),等于1時(shí)說明申請到發(fā)送權(quán),等于0時(shí)不可以申請發(fā)送;協(xié)調(diào)器的net_stat等于1時(shí)可以發(fā)送數(shù)據(jù),等于0說明子節(jié)點(diǎn)已經(jīng)申請到數(shù)據(jù)發(fā)送權(quán),要等到子節(jié)點(diǎn)數(shù)據(jù)發(fā)送完畢(收到結(jié)尾符),net_stat才會(huì)置1。
圖4 子節(jié)點(diǎn)數(shù)據(jù)上傳流程圖
如前所述,智能家庭網(wǎng)關(guān)是整個(gè)系統(tǒng)的中樞,擔(dān)負(fù)著網(wǎng)關(guān)和配置記錄的功能。
以三星公司的S3C2440處理器配合Linux2.6內(nèi)核作為家庭網(wǎng)關(guān)平臺,其硬件組成如圖5所示[4-5]。
圖5 智能家庭網(wǎng)關(guān)
微處理器S3C2440為用戶提供了低價(jià)格、低功耗、高性能的小型微控制器解決方案。通過提供一套完整的通用系統(tǒng)外設(shè),S3C2440減少了整體系統(tǒng)成本,無需配置額外的組件[6]。
處理器上所運(yùn)行的Linux系統(tǒng)支持多用戶、多任務(wù),具有良好的用戶界面和豐富的網(wǎng)絡(luò)功能,能夠可靠、穩(wěn)定、安全地運(yùn)行[7]。
家庭網(wǎng)關(guān)中的協(xié)調(diào)器與設(shè)備節(jié)點(diǎn)中的無線模塊同樣也是nRF24LE1。它一方面通過無線網(wǎng)絡(luò)協(xié)調(diào)設(shè)備節(jié)點(diǎn)的運(yùn)行與通信,另一方面還通過串口與網(wǎng)關(guān)處理器進(jìn)行數(shù)據(jù)交互。
USB無線網(wǎng)卡和GPRS模塊為兩種外界通信路徑。無線網(wǎng)卡避免了網(wǎng)線對家庭環(huán)境的破壞;GPRS為用戶提供了另外一種不依賴于因特網(wǎng)的監(jiān)控方式,使得用戶在任何移動(dòng)網(wǎng)絡(luò)普及的場所(當(dāng)下移動(dòng)網(wǎng)絡(luò)幾乎已經(jīng)遍布每個(gè)角落)都能實(shí)現(xiàn)家庭監(jiān)控。
網(wǎng)關(guān)程序的流程如圖6所示。初始化包括串口初始化、網(wǎng)絡(luò)初始化和GPRS初始化。初始化完成后,網(wǎng)關(guān)服務(wù)器就會(huì)進(jìn)入等待用戶連接請求的循環(huán)中。
網(wǎng)關(guān)會(huì)為每個(gè)登錄用戶創(chuàng)建一個(gè)處理線程。因此,此網(wǎng)關(guān)支持多用戶同時(shí)操作。
圖6 網(wǎng)關(guān)主流程圖
本系統(tǒng)采用一部Android手機(jī)作為監(jiān)控終端。在Windows系統(tǒng)搭建Android開發(fā)環(huán)境的步驟為:安裝JAVA JDK,解壓Eclipse,解壓Android SDK,在Eclipse下安裝ADT,設(shè)置Android SDK路徑。
用戶要監(jiān)控家庭設(shè)備,就必須與家庭網(wǎng)關(guān)建立連接。網(wǎng)關(guān)登錄界面如圖7所示。
圖7 監(jiān)控終端登錄界面
界面輸入信息中除了網(wǎng)關(guān)的IP和port,還有用于驗(yàn)證用戶信息的用戶名和密碼。這樣可以有效提高系統(tǒng)的安全等級。
網(wǎng)關(guān)登錄分為網(wǎng)絡(luò)登錄和短信登錄。在有WIFI信號時(shí),可以直接用網(wǎng)絡(luò)登錄。但是在一些沒有無線網(wǎng)絡(luò)可用的場合,用戶就只能通過短信的方式登錄網(wǎng)關(guān)。在短信登錄時(shí),用戶只需輸入正確的用戶名和密碼即可。
當(dāng)用戶成功登錄到家庭網(wǎng)關(guān),網(wǎng)關(guān)就會(huì)為用戶建立服務(wù)線程。此時(shí),用戶可以在監(jiān)控界面對家庭設(shè)備進(jìn)行監(jiān)控。
為了方便用戶操作,將控制、監(jiān)測、場景和設(shè)置分為4個(gè)界面,并將其放在一個(gè)TabHost中,如圖8所示。
圖8 TabHost界面
本系統(tǒng)中,用戶可以在控制界面單獨(dú)控制每個(gè)家電,可以在監(jiān)測界面采集家庭溫濕度、獲取家庭煙霧和人體感應(yīng)的報(bào)警信息。
場景界面是根據(jù)用戶的點(diǎn)擊進(jìn)入相應(yīng)場景模式,并控制相應(yīng)家庭設(shè)備進(jìn)入這一種場景進(jìn)行協(xié)調(diào)運(yùn)作。
設(shè)置界面是設(shè)定每一種場景模式可監(jiān)控哪些家電設(shè)備,在界面上可對每一種設(shè)備添加或刪除。這種添加或刪除通過修改網(wǎng)關(guān)的配置文件來實(shí)現(xiàn)。
本系統(tǒng)共實(shí)現(xiàn)7個(gè)節(jié)點(diǎn):燈(3盞)、窗簾、空調(diào)、投影儀、煙霧報(bào)警、溫濕度傳感、紅外人體感應(yīng);共設(shè)計(jì)6種模式:起床、上班、下班、晚餐、影院和睡眠。
在每一種模式下,對應(yīng)不同的電器協(xié)調(diào)運(yùn)作方式。如起床模式:1號燈打開,窗簾打開,安防系統(tǒng)撤防。當(dāng)某一模式不符合用戶需求時(shí),用戶可以根據(jù)自身要求來修改模式內(nèi)容。而進(jìn)入場景模式是通過簡單的Android手機(jī)界面按鍵觸發(fā)。所以,本文中的基于場景模式的智能家居系統(tǒng),不但具有了一般智能家居系統(tǒng)的智能化監(jiān)控功能,還更加符合人性化需求。
[1]葉國偉.智能家居市場現(xiàn)狀與趨勢[J].中國建設(shè)信息,2012(9):54-55.
[2]廈門萬安智能股份有限公司.具有環(huán)境適應(yīng)情景模式的智能家居集控裝置:中國,201110425089.2[P].2011.12.19.
[3]譚暉.nRF無線SOC單片機(jī)原理與高級應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2009.
[4]蔣增文.一種基于nRF24xx的混合無線通信協(xié)議[J].通信技術(shù),2010,10(43):78-80.
[5]Samsung.S3C2440 user’s manual[S].2004.
[6]劉海亮,曹家年,郭逢麗.嵌入式智能家居安防系統(tǒng)的研究與實(shí)現(xiàn)[J].應(yīng)用科技,2011,38(2):61-66.
[7]蔡俊宇.基于Linux的智能家居系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:武漢理工大學(xué),2010.