鄧 昀,李朝慶,程小輝
(桂林理工大學 信息科學與工程學院,廣西 桂林 541004)
(*通信作者電子郵箱cxiaohui@glut.edu.cn)
基于物聯(lián)網(wǎng)的智能家居遠程無線監(jiān)控系統(tǒng)設計
鄧 昀,李朝慶,程小輝*
(桂林理工大學 信息科學與工程學院,廣西 桂林 541004)
(*通信作者電子郵箱cxiaohui@glut.edu.cn)
基于ARM920T內(nèi)核的S3C2440、嵌入式Web服務、QT技術、無線組網(wǎng)技術,設計了智能家居監(jiān)控系統(tǒng),系統(tǒng)由智能家居主機、ZigBee/Wi-Fi無線傳感控制網(wǎng)絡、智能家居客戶端軟件組成。系統(tǒng)完成了智能家居主機的硬件和軟件設計:在ARM平臺上移植嵌入式Linux操作系統(tǒng);使用gSOAP工具建立嵌入式Web服務;配置USB轉串口驅動、無線Wi-Fi網(wǎng)卡驅動;組建ZigBee無線傳感控制網(wǎng)絡,完成對協(xié)調(diào)器節(jié)點以及終端節(jié)點的程序設計,制定了數(shù)據(jù)通信協(xié)議;使用QT技術設計客戶端程序。最后,重點測試ZigBee網(wǎng)絡的建立、終端節(jié)點入網(wǎng)和傳感器節(jié)點數(shù)據(jù)傳輸。測試結果表明網(wǎng)絡中的傳感器節(jié)點能夠將檢測的信息傳送到協(xié)調(diào)器中,智能家居客戶端軟件能夠通過智能家居主機完成對家居環(huán)境的遠程監(jiān)測和控制。
智能家居監(jiān)控系統(tǒng);智能家居主機;ZigBee無線傳感控制網(wǎng)絡;嵌入式Web服務;數(shù)據(jù)通信協(xié)議
智能家居系統(tǒng),是指采用先進的計算機技術、網(wǎng)絡通信技術、智能控制技術、無線傳感網(wǎng)絡技術,將與家居生活有關的各種設備有機地結合在一起,為人們提供高效的家居環(huán)境[1]。本文基于ARM920T內(nèi)核的S3C2440、嵌入式Web服務、QT技術、無線組網(wǎng)技術,設計了智能家居監(jiān)控系統(tǒng),系統(tǒng)由智能家居主機、ZigBee/Wi-Fi無線傳感控制網(wǎng)絡、智能家居客戶端軟件組成,實現(xiàn)用戶能夠以遠程登錄模式連接到智能家居主機上,通過ZigBee和Wi-Fi無線網(wǎng)絡實現(xiàn)對家居環(huán)境和家電信息工作狀態(tài)的實時查詢和遠程監(jiān)控,對實現(xiàn)智能化的家居環(huán)境有一定的實際意義。
智能家居監(jiān)控系統(tǒng)采用層次化設計,以ARM平臺構建的智能家居主機為核心,以ZigBee組建的無線傳感控制網(wǎng)絡為家庭內(nèi)部網(wǎng)絡,使用QT技術編寫智能家居客戶端軟件,整個系統(tǒng)分為三層結構,如圖1所示。系統(tǒng)分為家庭內(nèi)部網(wǎng)絡和家庭外部網(wǎng)絡,內(nèi)網(wǎng)是指使用ZigBee協(xié)議建立的無線傳感控制網(wǎng)絡,它控制家用電器節(jié)點和家居環(huán)境采集傳感器節(jié)點;外網(wǎng)是指Wi-Fi熱點和Internet網(wǎng)絡,智能家居客戶端軟件與智能家居主機通過外網(wǎng)連接[2]。內(nèi)網(wǎng)和外網(wǎng)之間是由智能家居主機相連接并且進行信息的交互。
1.1 智能家居主機功能設計
智能家居主機是一個家庭內(nèi)部網(wǎng)關[3],是家庭環(huán)境監(jiān)測系統(tǒng)和控制系統(tǒng)的重要組成部分,主要連接由ZigBee組建的傳感控制網(wǎng)絡和Internet網(wǎng)絡,實現(xiàn)異構網(wǎng)絡之間數(shù)據(jù)的轉發(fā)和控制協(xié)議的解析。智能家居無線傳感網(wǎng)絡中所有傳感器采集到的數(shù)據(jù)和家用電器控制的相關信息都是先傳輸?shù)街悄芗揖又鳈C,PC客戶端軟件通過IP地址和端口訪問智能家居主機獲取用戶所需的家居信息,或者通過主機向家庭內(nèi)部的無線網(wǎng)絡中的控制設備和家用電器發(fā)送控制指令。ZigBee組建的網(wǎng)絡中本身有一套傳輸協(xié)議[4],但只適用于家庭內(nèi)部無線傳感網(wǎng)絡中數(shù)據(jù)的發(fā)送和接收,用戶要發(fā)送控制命令,就必須通過智能家居主機,實現(xiàn)協(xié)議的解析和轉發(fā)。智能家居主機需要能夠接入Internet網(wǎng)絡,此時需要使用gSOAP工具在智能家居主機上添加簡單對象訪問協(xié)議(Simple Object Access Protocol, SOAP);ZigBee與智能家居主機通信采用串口的方式,智能家居主機需要有串口通信的模塊;智能家居主機需要保存家庭內(nèi)部傳感器和家用電器的控制信息,就需要數(shù)據(jù)存儲模塊。綜合以上分析,本設計的智能家居主機必須包含以下幾個模塊:S3C2440最小系統(tǒng)、觸摸屏模塊、ZigBee控制協(xié)議收發(fā)模塊、嵌入式Web服務、因特網(wǎng)接入模塊、數(shù)據(jù)存儲模塊。
圖1 智能家居系統(tǒng)整體結構
1.2 智能家居內(nèi)部網(wǎng)絡設計
家庭環(huán)境監(jiān)測和控制網(wǎng)絡使用ZigBee來組建家庭內(nèi)部的傳感控制網(wǎng)絡;對于遠程的PC用戶采用Wi-Fi熱點或者Internet進行連接,實現(xiàn)客戶端用戶對家居環(huán)境進行遠程監(jiān)測和控制。ZigBee終端節(jié)點上可以搭載常用的控制設備和傳感器模塊(如窗簾、煙霧報警器、人體紅外感應、火焰?zhèn)鞲衅?、溫度傳感?,組成基于ZigBee的無線傳感控制網(wǎng)絡。
2.1 智能家居主機硬件電路設計
智能家居主機的硬件設計主要包括主控芯片S3C2440、電源模塊電路、串行通信接口電路、USB接口電路、FLASH存儲電路、LCD觸摸屏接口電路的設計,下面給出主控芯片S3C2440、串行通信接口電路、USB接口電路的設計。
2.1.1 主控芯片S3C2440
S3C2440是三星公司生產(chǎn)的一款小體積、低功耗、高性能的微處理器,采用ARM公司設計的16/32位的ARM920T 的RISC處理器。ARM920T采用了最新的高級微控制器總線架構并且自帶有內(nèi)存管理單元和具有高速的處理計算機能力,有效地降低了系統(tǒng)的功耗。S3C2440涵蓋了所有常用的硬件接口和總線,集成有LCD控制器,GPIO端口多達130個,中斷控制源有60個。S3C2440內(nèi)部集成的片內(nèi)資源非常豐富,具體硬件的結構如圖2所示。
2.1.2 串行通信接口電路
本設計的串口通信電路用于PC端的串口調(diào)試與智能家居主機進行全雙工串口通信,而智能家居主機和協(xié)調(diào)器之間的串口通信可以采用交叉串口線進行連接,系統(tǒng)采用的是USB轉串口與協(xié)調(diào)器進行連接。S3C2440提供三個通道的通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter,UART),編寫程序時,需要設定所使用的UART對CPU發(fā)送數(shù)據(jù)傳輸請求的方式是中斷還是直接存儲器訪問(Direct Memory Access, DMA),配置串口相關控制寄存器。本設計采用的串口通信芯片為MAX232,串口通信接口電路如圖3所示,其中所有電容的容值均為0.1 μF。
圖2 S3C2440的外圍硬件結構
圖3 串行通信接口電路
2.1.3 USB接口電路
本設計中USB端口主要用于下載程序和連接外部USB設備。S3C2440支持兩種USB接口[6]:一種是USB Host,它通過一個USB Hub芯片擴展為4個USB Host接口,擴展的USB接口是對等的,只需要在內(nèi)核中添加了對應設備的驅動程序,在擴展的USB接口上就可以正常地使用該設備;還有就是USB Slave接口,它主要用來下載軟件,將程序下載到目標板的NandFlash。USB接口的電路如圖4所示。
2.2 智能家居主機Linux操作系統(tǒng)移植
2.2.1 Bootloader移植
系統(tǒng)采用開源的U-Boot作為開機前的引導加載程序。U-Boot在引導和加載內(nèi)核之前,完成了對相關硬件的初始化,并且將內(nèi)核啟動需要的參數(shù)通過相關機制傳遞給內(nèi)核。U-Boot源碼的目錄結構主要分為與芯片有關的代碼目錄以及與芯片無關的代碼目錄,移植U-Boot所需要修改的源碼都在前者所包含的Board目錄和CPU目錄當中。具體的過程如圖5所示。
2.2.2 Linux內(nèi)核移植
系統(tǒng)采用友善之臂公司提供的arm-Linux-gcc-3.4.5。Linux內(nèi)核移植需要預先修改好頂層Makefile和Flash分區(qū)并且使用make menuconfig配置內(nèi)核從而修改.config文件[7]。Linux內(nèi)核中本身就支持S3C2410,就芯片的內(nèi)部設備而言差別不大,只需要在S3C2410代碼的基礎上作適當?shù)男薷募纯蛇m用于S3C2440。本設計中Linux內(nèi)核移植需改DM9000網(wǎng)卡驅動和LCD液晶觸摸屏驅動,另外要配置USB外設驅動使得內(nèi)核可以支持USB設備,并且使得內(nèi)核支持根文件系統(tǒng)。
圖4 USB接口電路
圖5 U-Boot啟動流程
2.2.3 制作根文件系統(tǒng)
文件系統(tǒng)的目錄結構如表1所示。目前適合使用在嵌入式Flash設備上的根文件系統(tǒng)的格式有yaffs、jffs2、ntfs、root_qtopia,系統(tǒng)選用yaffs格式的文件系統(tǒng)。構建根文件系統(tǒng)首先建立動態(tài)鏈接庫,隨后使用make menuconfig配置并且交叉編譯Bosybox。安裝完成Bosybox后,就會創(chuàng)建文件系統(tǒng)的常用目錄/bin、/sbin、/usr/bin,及其內(nèi)容。此時,就要手工建立etc目錄下的配置文件,需要使用vim編輯器修改etc/fstab、etc/profile、etc/init.d/rcS文件。最后使用命令解壓yaffs文件系統(tǒng)制作工具,并且使用chmod+x命令對yaffs2工具mkyaffs2image增加可執(zhí)行權限,至此就可以使用命令#mkyaffs2image fs_root_Smart_home fs_root_Smart_home.yaffs2生成yaffs2映象文件。將制作好的文件系統(tǒng)發(fā)在/work/nfs_root目錄下,通過操作U-Boot控制界就可以將根文件系統(tǒng)下載到ARM開發(fā)板Nandflash中。操作的命令如下:
1)Nfs 0x32000000 172.16.2.158:/work/nfs_root/Smart_Home_Version_1.yaffs;
2)nand erase.part root;
3)nand write.yaffs 0x32000000 0x560000 $filesize。
表1 文件系統(tǒng)的目錄結構
2.3 智能家居主機驅動程序設計
2.3.1 USB轉串口驅動
本設計使用的串口設備為/dev/USBttyS0。串口驅動程序的底層是終端tty_driver程序,由于Linux內(nèi)核已經(jīng)將tty核心層和tty驅動層給實現(xiàn)了,需要做的就是實現(xiàn)串口核心層的uart_ops、uart_ports、uart_driver等結構體實例[8]。串口設備的驅動程序框架如圖6所示。
為了方便連接,協(xié)調(diào)器直接使用PL2303芯片與智能家居主機進行通信,那么需要添加PL2303驅動。內(nèi)核文件目錄drivers/serial/中已經(jīng)提供了串口驅動程序,所以在使用內(nèi)核提供的串口tty_driver后,完成串口驅動的工作主要如下。
1)需要定義結構體:mini2440_uart_driver、mini2440_uart_ops、mini2440_uart_port,在適當?shù)奈恢贸跏蓟Y構體。
2)依據(jù)應用程序的要求,要實現(xiàn)mini2440_uart_ops中的功能函數(shù),這才是編寫串口驅動程序的主要工作。
2.3.2 USB無線網(wǎng)卡驅動
USB無線網(wǎng)卡驅動從實際的應用來看,包含兩部分驅動:USB驅動和網(wǎng)卡驅動。USB設備驅動結構從下往上依次是USB總線控制器、總線驅動、USB驅動;網(wǎng)絡設備驅動結構從底層到頂層依次為媒介層、網(wǎng)絡驅動層、設備接口層和協(xié)議層。由于USB設備需要支持熱插拔,USB驅動程序就會調(diào)用設備探測(probe)函數(shù)來檢測被傳遞進來的信息。USB設備驅動程序,通過URB(USB Request Block)調(diào)用數(shù)據(jù)傳輸函數(shù)實現(xiàn)USB接口和網(wǎng)卡之間的數(shù)據(jù)交換[9]。
圖6 Linux串口設備驅動程序架構
本設計使用較新的內(nèi)核Linux-3.4.2,已經(jīng)包含了常用的無線網(wǎng)卡驅動;為了提高開發(fā)的效率,選用TP-LINK公司的TL-WN721N無線網(wǎng)卡,其VID為0x148f,PID為0x3070,這樣不必從頭開始編寫無線網(wǎng)卡的驅動程序,只需要配置Linux內(nèi)核,使其支持無線網(wǎng)卡即可。配置內(nèi)核之前,需要配置開發(fā)環(huán)境,使得物理機、宿主機和目標機在同一個IP網(wǎng)段。進入到內(nèi)核目錄drivers/net/wireless/中,使用PID查找配置選項。經(jīng)grep "0x3070" * -nR命令搜索后,得到rtlWiFi/rtl8192cu/sw.c:273:{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK,0x3070,rtl92cu_hal_cfg)},打開rtlWiFi/rtl8192cu/Makefile確定需要配置的選項為CONFIG_RTL8192CU。配置成功后使用make uImage命令就可以生成需要的內(nèi)核鏡像文件。使用開源的無線網(wǎng)絡配置工具wpa_supplicant可以對無線網(wǎng)卡進行測試和配置。它可以用來掃描附近的無線網(wǎng)絡;開啟連接無線網(wǎng)絡;停止使用無線網(wǎng)絡;設置熱點。
3.1 ZigBee無線傳感控制網(wǎng)絡設計
ZigBee網(wǎng)絡采用的網(wǎng)絡拓撲為樹型結構,整個無線傳感網(wǎng)絡由1個ZigBee協(xié)調(diào)器、2個路由器節(jié)點、6個終端傳感器節(jié)點組成。其中終端節(jié)點主要是溫濕度采集節(jié)點、火焰檢測節(jié)點、人體紅外檢測節(jié)點、煙霧檢測節(jié)點、窗簾控制節(jié)點、燈光控制節(jié)點。
3.1.1 協(xié)調(diào)器節(jié)點軟件設計
協(xié)調(diào)器給終端節(jié)點發(fā)送命令數(shù)據(jù)采用的是廣播的方式,終端節(jié)點通過判斷發(fā)送命令的內(nèi)容,找到相對應的節(jié)點后,將傳感器采集到的信息以點播的方式傳送給協(xié)調(diào)器[10]。協(xié)調(diào)器中還需要添加與智能家居主機間的串口通信程序,能夠向智能家居主機發(fā)送和接收數(shù)據(jù)。在Z-Stack協(xié)議棧中,對于網(wǎng)絡的建立和管理是由操作系統(tǒng)抽象層(Operating System Abstraction Layer, OSAL)來對系統(tǒng)的初始化函數(shù)、掃描信道函數(shù)、網(wǎng)絡建立函數(shù)、數(shù)據(jù)的發(fā)送和接收函數(shù)進行統(tǒng)一調(diào)度,其具體的軟件流程如圖7所示。
3.1.2 路由節(jié)點軟件設計
路由器作為一種中介,其作用是增加協(xié)調(diào)器節(jié)點和所有的終端節(jié)點的通信距離,實現(xiàn)在多跳中的數(shù)據(jù)轉發(fā)。路由器節(jié)點發(fā)現(xiàn)網(wǎng)絡后會自動發(fā)出綁定申請加入網(wǎng)絡,綁定成功后協(xié)調(diào)器和終端節(jié)點發(fā)送信息會被路由器自動接收并且轉發(fā),路由器節(jié)點的軟件流程如圖8所示。
圖7 協(xié)調(diào)器節(jié)點軟件流程
圖8 路由器節(jié)點軟件流程
3.1.3 終端節(jié)點軟件設計
終端節(jié)點主要完成對智能家電設備的控制和傳感器數(shù)據(jù)的采集[11],包括電動窗簾控制、人體紅外檢測、火焰檢測、煙霧檢測、溫度檢測、濕度檢測。為了降低功耗,終端節(jié)點可以設置工作在睡眠模式,由需要執(zhí)行的事件喚醒,因此,終端節(jié)點就使用一塊電池供電。其程序工作流程如圖9所示。
3.2 智能家居傳感控制節(jié)點設計
下面以電動窗簾控制節(jié)點設計為例進行介紹。
電動窗簾由佳麗斯電機、同步帶靜音軌道、窗簾主體和墻上控制器組成。本設計中要實現(xiàn)對窗簾的智能控制,實際上就是設計智能家居主機控制電機的正轉和反轉,通過滑輪拉動窗簾自動打開或者關閉。佳麗斯電機有三個接線柱:公共端(M_Blue)、正轉(M_Brown)和反轉(M_Black)。公共端接入220 V交流的零線,正轉和反轉引腳分別通過繼電器接入到220 V交流的火線,具體的電路如圖10所示。
考慮到CC2530抗干擾性能,本設計采用外接單片機STC12C5A60S2進行輔助設計。智能家居主機對電動窗簾的控制命令,采用CC2530與STC12C5A60S2通過串口通信的方式來傳遞。為了能夠實時地查詢窗簾開合的狀態(tài),提高系統(tǒng)控制的可靠性,在電動窗簾節(jié)點處設計了窗簾開合度檢測模塊,利用紅外對管進行開合度檢測。開合度測量原理:每間隔一段距離在窗簾軌道上安裝一個紅外發(fā)射對管(發(fā)射接收距離小于10 cm),當有窗簾覆蓋時,紅外接收器收到信號,說明窗簾已經(jīng)合上,狀態(tài)為關閉。電動窗簾節(jié)點通過STC12C5A60S2上的3個引腳連接進行開合度的檢測,無窗簾覆蓋時紅外傳感器信號為空。除無線控制外,窗簾旁裝有手動開關,采用觸摸開關控制。有線控制可以任意控制窗簾的開合度,無線控制只能調(diào)整窗簾的開合度為預先設定的值。在有線控制和無線控制同時響應時優(yōu)先執(zhí)行有線控制。
圖9 終端節(jié)點軟件流程
圖10 電動窗簾電機控制原理
3.3 智能家居系統(tǒng)數(shù)據(jù)通信協(xié)議設計
在智能家居系統(tǒng)中常用的傳感器數(shù)據(jù)有很多,常用的執(zhí)行控制類數(shù)據(jù)也有很多。實際的應用中,按照常用設備的類型總體分為3個部分:感知型傳感器類(0x01)、執(zhí)行控制類(0x02)和多媒體類(0x03),占用一個字節(jié);按照通信數(shù)據(jù)的位數(shù)可以分為:開關量(0x01)和數(shù)據(jù)量(0x02),占用一個字節(jié)。所有的終端子節(jié)點加入傳感網(wǎng)絡時不僅協(xié)調(diào)器會為它分配一個地址,智能家居主機也會為它注冊一個節(jié)點編號。所以,對于ZigBee網(wǎng)絡中的任何一個節(jié)點可用ID號來表示,節(jié)點ID說明如表2所示。
表2 節(jié)點ID說明
3.3.1 智能家居主機和協(xié)調(diào)器數(shù)據(jù)通信協(xié)議
智能家居主機和ZigBee協(xié)調(diào)器之間通信方式有:SPI、IIC、串口。為了便于整個系統(tǒng)數(shù)據(jù)通信格式統(tǒng)一,本設計采用串行通信接口作為整個智能家居系統(tǒng)的數(shù)據(jù)通信方式。智能家居主機和協(xié)調(diào)器之間通信具體數(shù)據(jù)幀如表3。起始特征字的第1個字節(jié)固定為0xFFFA,它用來判定接收的數(shù)據(jù)是否在同一個網(wǎng)絡內(nèi);第2個數(shù)據(jù)有智能家居主機定義;第3個數(shù)據(jù)是協(xié)調(diào)器自動分配的16位段地址。
表3 智能家居主機和協(xié)調(diào)器通信數(shù)據(jù)幀結構
3.3.2 ZigBee無線網(wǎng)絡各節(jié)點數(shù)據(jù)通信
終端節(jié)點設定只能使用點對點通信方式,只有協(xié)調(diào)器有發(fā)起群發(fā)和廣播的權限,無線通信的數(shù)據(jù)幀結構如表4。
表4 ZigBee無線網(wǎng)絡各節(jié)點通信數(shù)據(jù)幀結構
3.3.3 擴展板與CC2530小系統(tǒng)串口通信協(xié)議
擴展板與CC2530小系統(tǒng)串口通信協(xié)議如表5所示。
表5 擴展板與CC2530小系統(tǒng)串口協(xié)議
3.3.4 智能家居數(shù)據(jù)通信協(xié)議實例應用分析
終端節(jié)點的類型主要有3類,選取了感知型傳感器類和控制類的節(jié)點進行分析,如表6所示。智能家居無線傳感和控制網(wǎng)絡中,數(shù)據(jù)通信方式主要有三種:廣播、點播和組播。本實例中點播用于終端子節(jié)點和協(xié)調(diào)器進行通信。廣播用于協(xié)調(diào)器節(jié)點發(fā)送數(shù)據(jù),網(wǎng)絡中其他的節(jié)點都可以接收到協(xié)調(diào)器發(fā)送來的數(shù)據(jù),所有的子節(jié)點設備根據(jù)發(fā)送的數(shù)據(jù)和命令判斷是否響應協(xié)調(diào)器節(jié)點。組播用于對預先選取的一部分節(jié)點發(fā)送數(shù)據(jù),只需要將這些節(jié)點標有相同的組號,進行數(shù)據(jù)發(fā)送時制定組號即可。
表6 終端節(jié)點數(shù)據(jù)通信協(xié)議
智能家居無線傳感控制網(wǎng)絡首先要測試每個節(jié)點能夠加入到ZigBee網(wǎng)絡中;其次協(xié)調(diào)器能夠通過廣播的方式對網(wǎng)絡中所有終端節(jié)點廣播命令消息,終端節(jié)點收到命令之后,能夠將采集到的信息以點播的方式傳給協(xié)調(diào)器;此外,協(xié)調(diào)器也能夠直接控制終端節(jié)點。對整個智能家居系統(tǒng)而言還需要對ZigBee的通信距離進行測量,合理地布局各個節(jié)點的位置。
4.1 智能家居內(nèi)部網(wǎng)絡組網(wǎng)測試
Z-Sensor Monitor是TI公司開發(fā)的網(wǎng)絡測試軟件,可以用于星型網(wǎng)絡、樹型網(wǎng)絡、Mesh網(wǎng)絡的測試。它與協(xié)調(diào)器之間數(shù)據(jù)的傳送是通過串口通信發(fā)送,協(xié)調(diào)器中本身就記錄有網(wǎng)絡中個節(jié)點的設備類型和地址,這樣整個ZigBee無線網(wǎng)絡的拓撲結構就會顯示在軟件的界面中。ZigBee無線網(wǎng)絡中,協(xié)調(diào)器工作后會自動創(chuàng)建傳感網(wǎng)絡,其他的子節(jié)點上電后,會自動地發(fā)送請求并加入到網(wǎng)絡中,測試程序將終端節(jié)點內(nèi)部的溫度傳感器采集的數(shù)據(jù)發(fā)送給協(xié)調(diào)器,路由節(jié)點完成數(shù)據(jù)的多跳傳輸,協(xié)調(diào)器節(jié)點連接串口后就會將網(wǎng)絡中各節(jié)點的信息發(fā)送給上位機軟件Z-Sensor Monitor,成功解析后的數(shù)據(jù)顯示在PC屏幕上。測試中,使用了1個協(xié)調(diào)器節(jié)點、1個路由節(jié)點和4個終端子節(jié)點。子節(jié)點可以將采集到的溫度數(shù)據(jù)傳輸?shù)絽f(xié)調(diào)器中,最終顯示在PC的上位機軟件Z-Sensor Monitor中。測試結果如圖11所示。
4.2 智能家居內(nèi)部網(wǎng)絡數(shù)據(jù)傳輸測試
主要測試協(xié)調(diào)器以廣播的形式發(fā)送命令消息,對應的終端節(jié)點收到消息后將采集到的溫度數(shù)據(jù)和段地址發(fā)送給協(xié)調(diào)器,在PC端的串口測試軟件中顯示。發(fā)送的命令中,第一位S代表發(fā)送,第二位數(shù)字代表自定義的終端節(jié)點,第三位代表傳輸?shù)臄?shù)據(jù)是溫度(T)。測試中僅以溫度為例將終端節(jié)點采集的溫度消息以點播的方式發(fā)送給協(xié)調(diào)器,協(xié)調(diào)器就會把各個終端節(jié)點的收到的命令數(shù)據(jù)、采集節(jié)點處溫度和節(jié)點入網(wǎng)時自動分配的地址發(fā)送給串口。測試結果如圖12所示。
圖11 ZigBee網(wǎng)絡組網(wǎng)傳輸測試結果
圖12 ZigBee網(wǎng)絡數(shù)據(jù)傳輸測試結果
客戶端要遠程地查詢家居環(huán)境和控制家電設備,就需要在智能家居主機中建立Web服務,而此系統(tǒng)則采用gSOAP工具包開發(fā)Web Service。gSOAP工具包能夠提供XML(Extensive Markup Language)到C/C++語言的映射,基于XML的數(shù)據(jù)結構,能夠跨越不同的操作系統(tǒng)和語言環(huán)境,對于開發(fā)者而言,只需要用C/C++編寫應用程序,而不需要知道細節(jié),就能夠實現(xiàn)一個Web Service程序和客戶端程序[12]。
整個系統(tǒng)平臺分為三個部分:ZigBee無線傳感控制網(wǎng)絡、智能家居主機(ARM開發(fā)板)和智能家居客戶端軟件。首先,配置ZigBee網(wǎng)絡,先選擇一個模塊作為協(xié)調(diào)器節(jié)點燒入?yún)f(xié)調(diào)器程序,之后依次打開其他的各終端節(jié)點模塊,當其加入到主協(xié)調(diào)器組建的ZigBee網(wǎng)絡時,自身的入網(wǎng)指示燈就會亮起,表明成功加入ZigBee網(wǎng)絡。協(xié)調(diào)器通過USB串口芯片PL2303與智能家居主機先連接,通過USB轉串口來完成智能家居主機與ZigBee網(wǎng)絡間的數(shù)據(jù)通信??蛻舳塑浖怯肣T編寫的,可以直接在PC上運行,通過網(wǎng)絡IP和端口如:172.20.46.230:8888與智能家居主機進行連接。在連接之前,還需要配置無線路由器的DMZ主機的IP為172.20.46.230,此時就把智能家居主機的IP和端口號映射到wan的端口上,當開啟智能家居主機Web Service,設置網(wǎng)絡端口、USB轉串口的設備名稱,具體命令:./smart_home_server/dev/ttyUSB0 8888。
打開PC上的QT客戶端軟件,輸入智能家居主機IP和端口號,連接成功后應用軟件就可以與智能家居主機通信。主界面可以顯示ZigBee網(wǎng)絡的傳感器數(shù)據(jù),還可以控制ZigBee網(wǎng)絡的終端設備。連接成功的主界面如圖13所示。
在室內(nèi)燈光控制功能中,可以對LED1~LED8共8盞燈實現(xiàn)開關控制,同時可以根據(jù)自己的需要同時打開所有的燈,關閉所有的燈。在窗簾控制功能中,可以控制電動窗簾的電機是正轉還是反轉,同時還可以預先設定窗簾的開合度為全開、全閉、1/3開、1/3關。在室內(nèi)溫濕度采集功能中,可以預先設定要采集設備的節(jié)點號,就會顯示對應節(jié)點的溫度,同樣濕度采集顯示界面中也可以顯示預先設定節(jié)點的濕度。實驗中還對人體檢測節(jié)點進行測試,檢測距離設定為3 m,廣角為100°,當檢測到有人進入感應區(qū)時,此時當房間照明比較暗的情況下燈會自動打開。
圖13 客戶端軟件主界面顯示結果
本文采用ZigBee技術組建的無線傳感控制網(wǎng)絡為家庭內(nèi)部網(wǎng)絡,以ARM平臺構建的智能家居主機為核心,使用QT技術編寫智能家居客戶端軟件,設計出一套實時性好、高智能化且易于擴展的智能家居無線控制系統(tǒng)方案,實現(xiàn)了家居生活的智能化,并經(jīng)過后期的實驗,驗證了該系統(tǒng)的可行性和實用性。但是整個系統(tǒng)在功能上還有待完善:
1)視頻監(jiān)控是整個智能家居的重要部分,本文在這方面涉及得比較少。后續(xù)還要增加視頻監(jiān)控功能,通過硬盤錄像機可以遠程地監(jiān)控和保存家居環(huán)境信息。
2)智能家居系統(tǒng)容易遭受到網(wǎng)絡通信干擾和外來入侵。對整個系統(tǒng)而言,必須有完善的安全機制,這方面是今后一個重要的研究方向。
3)在ZigBee無線傳感控制網(wǎng)絡中,可以增加一些功耗處理機制,提高終端節(jié)點電池的使用壽命。
References)
[1] LI B, YU J.Research and application on the smart home based on component technologies and Internet of things [J].Procedia Engineering, 2011, 15: 2087-2092.
[2] 郭穩(wěn)濤,何怡剛.智能家居遠程監(jiān)控系統(tǒng)的研究與設計[J].計算機測量與控制,2011,19(9):2109-2112.(GUO W T, HE Y G.Smart home remote monitoring system of research and design [J].Computer Measurement and Control, 2011, 19(9): 2109-2112.)
[3] 滿莎,楊恢先,彭友,等.基于ARM9的嵌入式無線智能家居網(wǎng)關設計[J].計算機應用,2010,30(9):2541-2544.(MAN S, YANG H X, PENG Y, et al.Design of embedded wireless smart home gateway based on ARM9 [J].Journal of Computer Applications, 2010, 30(9): 2541-2544.)
[4] LI P F, LI J K, NIE L H, et al.Research and application of ZigBee protocol stack [C]// ICMTMA 2010: Proceedings of the 2010 International Conference on Measuring Technology and Mechatronics Automation.Piscataway, NJ: IEEE, 2010: 1031-1034.
[5] 羅景泉,鄢萍,張研,等.一種B/S模式下車間層數(shù)據(jù)傳輸方案的研究與應用[J].重慶大學學報:自然科學版,2012,35(S1):6-10.(LUO J Q, YAN P, ZHANG Y, et al.Research and application of a B/S mode to get off the layer data transmission scheme [J].Journal of Chongqing University (Natural Science Edition), 2012, 35(S1): 6-10.)
[6] JIANG T, YANG Z.Research on mine safety monitoring system based on WSN [J].Procedia Engineering, 2011, 26: 2146-2151.
[7] 李佳佳,馬永杰.Linux系統(tǒng)在S3C2440上移植的分析與實現(xiàn)[J].計算機系統(tǒng)應用,2012,21(10):214-216.(LI J J, MA Y J.The analysis and implementation of Linux system on S3C2440 system [J].Computer Systems & Applications, 2012, 21(10): 214-216.)
[8] 周峰華,潘文亮,劉軍亮,等.Linux下ARM和單片機的串口通信設計[J].儀表技術,2011,32(8):27-32.(ZHOU F H, PAN W L, LIU J L, et al.The design of serial communication of ARM and single chip microcomputer under Linux [J].Instrumentation Technology, 2011, 32(8): 27-32.)
[9] 趙秋亮,李良兒,劉玉良.USB無線網(wǎng)卡的Linux驅動移植[J].單片機與嵌入式系統(tǒng)應用,2012,12(1):66-68.(ZHAO Q L, LI L E, LIU Y L.USB wireless network card Linux driver porting [J].Microcontrollers & Embedded Systems, 2012, 12(1): 66-68.)
[10] 任珍文,黃玉清.基于CC2530的無線傳感器網(wǎng)絡監(jiān)控平臺[J].電子技術應用,2012,38(10):122-125.(REN Z W, HUANG Y Q.Monitoring platform of WSN based on CC2530 [J].Application of Electronic Technique, 2012, 38(10): 122-125.)
[11] 楊松,胡國榮,徐沛成.基于CC2530的ZigBee協(xié)議MAC層設計與實現(xiàn)[J].計算機工程與設計,2013,34(11):3840-3844.(YANG S, HU G R, XU P C.Design and implementation of MAC layer in ZigBee based on CC2530 [J].Computer Engineering and Design, 2013, 34(11): 3840-3844.)
[12] BERTRAM J, KLEINER C.Secure Web service clients on mobile devices [J].Procedia Computer Science, 2012, 10: 696-704.
[13] BLANCHETTE J, SUMMERFIELD M.C++ GUI Programming with Qt4 [M].2nd ed.Upper Saddle River, NJ: Prentice Hall, 2008: 415-416.
[14] DALHEIMER M K.Programming with QT: Writing Portable GUI Applications on UNIX and Win32 [M].Sebastopol, CA: O’ Reilly, 2010: 318-319.
[15] 楊柳,岳坤,龐和明,等.QT/Embedded及嵌入式Linux在智能監(jiān)控系統(tǒng)控制中的應用[J].計算機應用,2010,30(S1):289-291.(YANG L, YUE K, PANG H M, et al.Application of Qt/Embedded and embedded Linux in intelligent monitoring system [J].Journal of Computer Applications, 2010,30(S1): 289-291.)
This work is partially supported by the National Natural Science Foundation of China (61262075), Guangxi Universities Major Science and Technology Research Projects (201201ZD012), Guangxi Universities Science and Technology Research Projects (ZD2014065), Project Foundation of Guangxi Experiment Center of Information Science, Guilin University of Electronic Technology (20130206).
DENG Yun, born in 1980, M.S., associate professor.His research interests include Internet of things, embedded system.
LI Chaoqing, born in 1993, M.S.candidate.His research interests include Internet of things, embedded system.
CHENG Xiaohui, born in 1961, professor.His research interests include Internet of things, embedded system.
Design of remote wireless monitoring system for smart home based on Internet of things
DENG Yun, LI Chaoqing, CHEN Xiaohui*
(InstituteofInformationScience&Engineering,GuilinUniversityofTechnology,GuilinGuangxi541004,China)
Based on ARM920T kernel S3C2440, embedded Web services, QT technology and wireless networking technology, a smart home monitoring system was designed.The system was composed of a host of smart home, ZigBee/Wi-Fi wireless sensor control network and smart home client software.The hardware and software design of the host of smart home was completed: the embedded Linux operating system was transplanted in the ARM platform; the embedded Web services were established by using gSOAP tool; USB to serial driver and Wi-Fi wireless LAN (Local Area Network) driver were configured; ZigBee wireless sensor control network was formed, the program design of the coordinator node and terminal node was completed, the data communication protocol was made, and the client program was designed by using QT technology.Finally, the tests of establishment of ZigBee network, terminal nodes joining the network and sensor node data transmission were done.The test results show that the sensor nodes in the network can transmit the detection information to the coordinator, and the smart home client software can complete the remote monitoring and control of home environment through the host of smart home.
smart home monitoring system; host of smart home; ZigBee wireless sensor and control network; embedded Web service; data communication protocol
2016-07-29;
2016-08-05。 基金項目:國家自然科學基金資助項目(61262075);廣西高等學校重大項目(201201ZD012);廣西高等學校重點科研資助項目(ZD2014065);廣西信息科學實驗中心經(jīng)費資助項目(20130206)。
鄧昀(1980—),男,湖南祁陽人,副教授,碩士,CCF會員,主要研究方向:物聯(lián)網(wǎng)、嵌入式系統(tǒng); 李朝慶(1993—),男,湖南邵陽人,碩士研究生,主要研究方向:物聯(lián)網(wǎng)、嵌入式系統(tǒng); 程小輝(1961—),男,江西贛州人,教授,CCF會員,主要研究方向:物聯(lián)網(wǎng)、嵌入式系統(tǒng)。
1001-9081(2017)01-0159-07
10.11772/j.issn.1001-9081.2017.01.0159
TP212.9
A