曹夢龍,鄒云東
(青島科技大學(xué)自動化與電子工程學(xué)院,山東青島 266042)
隨著計算機、網(wǎng)絡(luò)和微電子技術(shù)的飛速發(fā)展以及人們生活水平的提高,人們開始追求高質(zhì)量的生活方式,物聯(lián)網(wǎng)、智能家居開始成為人們研究的熱點。智能家居是指利用先進的計算機網(wǎng)絡(luò)通信技術(shù)、嵌入式技術(shù)和傳感器技術(shù)與家居生活有關(guān)的各種子系統(tǒng),有機地結(jié)合在一起,通過統(tǒng)籌管理,使家居生活更加舒適和安全[1]。
家庭網(wǎng)關(guān)的主要功能是通過Internet或者GSM網(wǎng)絡(luò)等外網(wǎng)連接家庭本地網(wǎng)絡(luò)和遠程控制終端,使用戶可以通過外網(wǎng)對家庭本地網(wǎng)絡(luò)進行遠程監(jiān)控。目前家庭網(wǎng)關(guān)的設(shè)計大多為基于PC的方案和基于單片機的方案?;赑C方案的網(wǎng)關(guān)不僅靈活性差,不能滿足人們對家居現(xiàn)場的實時監(jiān)控,而且成本較高,不便于智能家居的推廣。而以單片機為控制核心的家庭網(wǎng)關(guān)設(shè)計,由于單片機軟件資源有限,給系統(tǒng)的升級、維護及調(diào)試帶來極大的困難[1]。參考文獻[2],以 ARM Cortex-M3為平臺,實現(xiàn)了基于μC/OS-Ⅱ的小型 TCP/IP 協(xié)議棧的網(wǎng)關(guān)[2],實現(xiàn)了家庭內(nèi)網(wǎng)與外網(wǎng)的鏈接。但是這種小型的TCP/IP協(xié)議棧傳輸功能有限,只能進行簡單的數(shù)據(jù)傳輸,不能完成視頻監(jiān)控等任務(wù)。μC/OS-Ⅱ操作系統(tǒng)是一個基于優(yōu)先級的實施操作系統(tǒng),只支持多任務(wù),而不支持多線程。而智能家居中需要多個節(jié)點的并行控制,因此需要多進程的編程,所以它并不適合智能家居的控制。
綜合以上考慮,本文采用ARM9 S3C2440處理器作為硬件平臺,并移植Linux操作系統(tǒng),然后在其上搭建boa Web服務(wù)器,實現(xiàn)智能家居網(wǎng)關(guān)的設(shè)計。
智能家居系統(tǒng)一般分為本地控制終端、家庭本地網(wǎng)絡(luò)、家庭網(wǎng)關(guān)、遠程控制終端四部分。家庭本地網(wǎng)絡(luò)中各終端節(jié)點將采集到的數(shù)據(jù)傳給網(wǎng)關(guān),經(jīng)網(wǎng)關(guān)處理后發(fā)送給外網(wǎng)。用戶可以通過智能手機、計算機等遠程控制終端實現(xiàn)對家庭本地網(wǎng)絡(luò)的監(jiān)控。
本文設(shè)計的智能家居網(wǎng)關(guān)硬件結(jié)構(gòu)如圖1所示。其中家庭網(wǎng)關(guān)包括控制器 S3C2440、DM9000AE網(wǎng)卡、SIM300手機模組。控制器使用的S3C2440是三星公司開發(fā)的一款基于ARM920T內(nèi)核和0.13 μm CMOS工藝的32位RISC微處理器,最高主頻為400 MHz,低成本、低功耗,能夠滿足智能家居的控制要求。網(wǎng)卡是設(shè)備連接互聯(lián)網(wǎng)的必備芯片,本文選用的網(wǎng)卡為DM9000AE。SIM300手機模組將重要的報警信息,以短信的形式發(fā)送給用戶手機。用戶也可以通過發(fā)送短信控制家庭本地網(wǎng)絡(luò)中各個設(shè)備,其與控制器通過串口相連。
圖1 智能家居硬件結(jié)構(gòu)
DM9000AE與S3C2440芯片的連接電路圖如圖2所示。DM9000AE是16位總線寬度,連接在 S3C2440的bank2上,DM9000AE的第32腳CMD用來指示當(dāng)前數(shù)據(jù)總線Index端口還是Data端口,地址線A1接到此引腳,以區(qū)分讀寫的是命令/地址還是數(shù)據(jù)。DM9000AE的Index端口的地址是0x10000000,Data端口的地址是0x10000002。驅(qū)動程序中只以兩個物理地址訪問DM9000AE。網(wǎng)卡使用中斷EINT2。
圖2 DM9000與S3C2440連接電路圖
本文采用免費、開源的Linux作為ARM9 S3C2440平臺的操作系統(tǒng),它的內(nèi)核可裁剪,易于移植,占用資源小,并支持多進程,能夠滿足本文網(wǎng)關(guān)的設(shè)計要求,并適于智能家居系統(tǒng)的整體控制。本文的網(wǎng)關(guān)要實現(xiàn)的通信功能具體有兩個:家庭本地網(wǎng)絡(luò)與Internet網(wǎng)絡(luò)的通信;家庭本地網(wǎng)絡(luò)與GSM手機網(wǎng)絡(luò)的通信。
本文設(shè)計實現(xiàn)了一種通過瀏覽器瀏覽網(wǎng)頁進行智能家居遠程監(jiān)控的控制方法。這種B/S(瀏覽器/服務(wù)器)模式,省去了C/S(客戶端/服務(wù)器)模式中客戶端軟件的設(shè)計,節(jié)省了客戶端軟件的設(shè)計開發(fā)和維護成本。同時與C/S模式相比,更方便用戶對家居進行控制,用戶可以在任意能上網(wǎng)的計算機或者手機上對家居進行監(jiān)控,而不需要安裝控制軟件。
如圖3所示,用戶通過計算機或者手機瀏覽器訪問相應(yīng)的HTML格式的網(wǎng)頁,通過Javascript腳本程序?qū)⒖刂泼顐鬟f給家庭內(nèi)網(wǎng)S3C2440芯片上運行的boa服務(wù)器,boa服務(wù)器通過CGI程序?qū)彝?nèi)網(wǎng)中的各硬件設(shè)施進行控制。
圖3 Internet通信原理
由于嵌入式設(shè)備的資源有限,并且不需要能同時處理很多用戶的請求,因此本文沒有選用Apache等大型的服務(wù)器,而是選擇了boa服務(wù)器。boa服務(wù)器占用資源很小,可執(zhí)行代碼只有約60 k,是一個專門為嵌入式設(shè)備設(shè)計的Web服務(wù)器。它能很好地支持CGI程序。boa的設(shè)計目標(biāo)是速度和安全,在服務(wù)器站點公布的性能測試中,boa的性能要好于Apache服務(wù)器。而且,boa服務(wù)器為開源的免費軟件,更節(jié)省了成本。
本文設(shè)計中,網(wǎng)頁采用HTML語言編寫。HTML語言即超文本標(biāo)記語言,它通過標(biāo)記符號來標(biāo)記要顯示網(wǎng)頁中的各個部分,它的主要功能就是顯示。Javascript是HTML網(wǎng)頁中的腳本語言,它是一種基于對象和事件驅(qū)動并具有相對安全性的客戶端腳本語言。CGI是“公共網(wǎng)關(guān)接口”(Common Gateway Interface)的簡稱,它運行在服務(wù)器上,是服務(wù)器與系統(tǒng)中其他程序的橋梁。服務(wù)器接收到瀏覽器的請求后,通過CGI程序獲得家庭本地網(wǎng)絡(luò)的狀態(tài)信息,再轉(zhuǎn)發(fā)給瀏覽器網(wǎng)頁或者對家居進行控制。
本文設(shè)計中使用的Javascript腳本語言中的AJAX,即Javascript及XML??梢栽诓恢匦录虞d整個網(wǎng)頁的情況下,對網(wǎng)頁的某部分進行更新。但是編寫常規(guī)的AJAX代碼并不容易,因為不同的瀏覽器對AJAX的實現(xiàn)并不相同。這意味必須編寫額外的代碼對瀏覽器進行測試。為了解決這個問題,本文中使用了jQuery。jQuery是一個寫得少,但做得多的輕量級Javascript庫。
本設(shè)計中通過jQuery AJAX從家庭內(nèi)網(wǎng)獲得溫度的Javascript腳本程序如下:
對于一些重要的報警信息(如防火報警、防盜報警),只是通過Internet發(fā)送給用戶,用戶將不能及時地接收到報警信息。在部分場合,用戶不能或者不方便使用Internet上網(wǎng),這時用戶將不能通過Internet對家居進行監(jiān)控。因此本文設(shè)計加入了手機短信的監(jiān)控方式。當(dāng)家庭本地網(wǎng)絡(luò)產(chǎn)生報警信息時,可以通過手機模組向用戶手機發(fā)送報警短信。用戶也可以發(fā)送相應(yīng)的短信對家居進行監(jiān)控。因為只是使用了手機的短信功能,GSM網(wǎng)絡(luò)完全可以實現(xiàn)本系統(tǒng)功能并且成本更低,因此本系統(tǒng)沒有選用3G或者4G網(wǎng)絡(luò)。
手機通信程序結(jié)構(gòu)如圖4所示。main主程序創(chuàng)建gprsThread進程。經(jīng)手機模塊初始化和串口初始化后,進程進入while(1)循環(huán),循環(huán)檢測紅外、煙霧報警信息和從串口讀取短信控制命令。當(dāng)檢測到報警信息后,通過串口給手機模組發(fā)送命令,給用戶發(fā)送報警信息。
圖4 手機通信程序結(jié)構(gòu)圖
當(dāng)從串口中讀取到“+CMTI:"SM",1”時,說明GPRS模塊收到了短信。這時給GPRS模塊發(fā)送短信讀取命令“AT+CMGR=1”。在串口中可以讀取到如下形式的數(shù)據(jù)“+CMGR:"REC UNREAD","+861515420****","13104122,10:57:50+32"CONTROL_LAMP ON”。上述字符串中“CONTROL_LAMP ON”為控制命令,將電燈打開。通過處理上述字符串,將控制命令解析出來,即可控制家庭內(nèi)網(wǎng)中的電器。
將本系統(tǒng)通過固定 IP(211.64.219.***)接入 Internet,在室溫16℃,濕度70%環(huán)境下測試。本文設(shè)計的網(wǎng)關(guān)能夠?qū)崿F(xiàn)家庭本地網(wǎng)絡(luò)與外網(wǎng)的通信。通過瀏覽器,能夠接收家庭本地網(wǎng)絡(luò)的狀態(tài)信息,也可以向家庭本地網(wǎng)絡(luò)發(fā)送控制信息,實現(xiàn)家居的遠程控制。用戶可以通過手機短信對家居進行監(jiān)控。瀏覽器訪問的監(jiān)控網(wǎng)頁如圖5所示。通過網(wǎng)頁打開電燈和熱水器開關(guān)后,實現(xiàn)了對電燈和熱水器的遠程開關(guān)控制。獲取溫度16.5℃,濕度70.6%。發(fā)送的短信控制命令和控制結(jié)果如表2所示。
圖5 智能家居控制網(wǎng)頁(截圖)
表2 短信控制結(jié)果
本文設(shè)計了一種基于Internet和GSM的智能家居網(wǎng)關(guān),在S3C2440為控制器的硬件平臺上移植嵌入式Linux操作系統(tǒng),結(jié)合手機模組SIM300,實現(xiàn)了家庭內(nèi)網(wǎng)與Internet網(wǎng)絡(luò)和GSM網(wǎng)絡(luò)的通信。該網(wǎng)關(guān)設(shè)計成本低、性能高,在智能家居領(lǐng)域?qū)泻芨叩膽?yīng)用價值。另外在酒店管理、醫(yī)療自動化等需要局域網(wǎng)通信的領(lǐng)域也有很廣闊的應(yīng)用前景。
:
[1]趙勇.基于ARM和ZigBee的智能家居遠程監(jiān)控系統(tǒng)設(shè)計[J].測控技術(shù),2012,31(11):52-59.
[2]張毅,馬鈞元,楊校權(quán).基于Cortex和ZigBee的智能家居網(wǎng)關(guān)設(shè)計與實現(xiàn)[J].電視技術(shù),2012,36(1):56-58.
[3]朱恒軍,張志華,于泓博,等.GSM短信預(yù)警的智能家居服務(wù)系統(tǒng)設(shè)計[J].東北石油大學(xué)學(xué)報,2012,36(4):79-84.
[4]劉治國,陳新華.基于Linux和Qt的智能家居系統(tǒng)的設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2012,38(4):23-26.
[5]南春輝,李博,武穎.基于Web技術(shù)的嵌入式智能家居系統(tǒng)設(shè)計[J].電視技術(shù),2013,37(3):86-92.
[6]張慶海.基于無線通信網(wǎng)絡(luò)融合的智能家居系統(tǒng)研究[J].電視技術(shù),2013,37(4):92-95.
[7]韋東山.嵌入式Linux應(yīng)用開發(fā)完全手冊[M].北京:人民郵電出版社,2008.
[8]MATTHEW N,STONES R,陳建,等.Linux程序設(shè)計[M].北京:人民郵電出版社,2012.