,,
(貴州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,貴陽 550000)
基于FreakZ協(xié)議棧與開源操作系統(tǒng)的智能家居設(shè)計(jì)*
嚴(yán)凱,姚凱學(xué),何勇
(貴州大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,貴陽 550000)
為了解決以傳統(tǒng)綜合布線為主要技術(shù)的家居監(jiān)控的局限性,設(shè)計(jì)了基于FreakZ的智能遠(yuǎn)程監(jiān)控系統(tǒng)。采用WiFi、FreakZ技術(shù)將攝像頭、家電、傳感器模塊等組成一個(gè)物聯(lián)網(wǎng)。智能網(wǎng)關(guān)集成了STM32F103ZET6嵌入式微處理器、WiFi模塊、協(xié)調(diào)器模塊 ,實(shí)現(xiàn)了協(xié)調(diào)器與終端節(jié)點(diǎn)的遠(yuǎn)程通信。通過μC/OS-II操作系統(tǒng)和contiki操作系統(tǒng)將各個(gè)模塊有機(jī)結(jié)合在一起,實(shí)現(xiàn)了對電器的遠(yuǎn)程監(jiān)控。智能家居PC端由C#語言編寫,目前可以成功獲取家庭環(huán)境數(shù)據(jù)以及準(zhǔn)確控制家用電器。通過SmartRF Studio 7獲取網(wǎng)關(guān)與節(jié)點(diǎn)的信號強(qiáng)度與丟包率,實(shí)驗(yàn)證明本智能家居遠(yuǎn)程監(jiān)控系統(tǒng)安全可靠。
智能家居;FreakZ 協(xié)議棧;STM32F103ZET6;WiFi;μC/OS-II
隨著嵌入式技術(shù)發(fā)展與物聯(lián)網(wǎng)時(shí)代的到來,人們越來越追求家庭的物聯(lián)和智能化。在智能家居系統(tǒng)中,利用計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)技術(shù)、控制技術(shù)以及人工智能等家庭環(huán)境的監(jiān)控[1-2],實(shí)現(xiàn)了家具設(shè)備的安全和可控。目前,市場上已經(jīng)出現(xiàn)了一些智能家居系統(tǒng),如智能視頻監(jiān)控系統(tǒng)、智能安防預(yù)警系統(tǒng)、智能可視對講系統(tǒng)、智能門鎖聯(lián)動(dòng)系統(tǒng)、智能家庭影院系統(tǒng)、智能廚房安防系統(tǒng)、智能家庭管控系統(tǒng)、智能照明窗簾系統(tǒng)、智能背景音樂系統(tǒng)等[3-4]。以上市場化的智能家居系統(tǒng)價(jià)格較高、功能單一、多為綜合布線系統(tǒng)且安裝麻煩。為此,本文基于WiFi、FreakZ等無線通信技術(shù),建立了安全可靠的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)。
系統(tǒng)總體設(shè)計(jì)主要由三部分組成:集成了協(xié)調(diào)器模塊和STM32F103ZET6的智能網(wǎng)關(guān)、遠(yuǎn)程PC端和手機(jī)端、環(huán)境監(jiān)測和家電控制子系統(tǒng)[5]。整個(gè)系統(tǒng)如圖1所示。
圖1 系統(tǒng)總體框架圖
系統(tǒng)工作流程:智能家居采用星型網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),智能家居電器狀態(tài)數(shù)據(jù)(電視機(jī)、窗簾、電燈、空調(diào)等)、異常圖片和環(huán)境數(shù)據(jù)(溫度、濕度、紅外、PM2.5等)運(yùn)用FreakZ協(xié)議棧和無線網(wǎng)絡(luò)傳輸?shù)骄W(wǎng)關(guān)的協(xié)調(diào)器中,協(xié)調(diào)器將數(shù)據(jù)傳輸?shù)絊TM32F103ZET6,經(jīng)過調(diào)度和處理,通過WiFi將數(shù)據(jù)傳輸?shù)皆贫耍脩敉ㄟ^PC機(jī)和手機(jī)讀取環(huán)境數(shù)據(jù)、監(jiān)控圖片和控制電器,家庭控制命令經(jīng)協(xié)調(diào)器傳輸?shù)浇K端節(jié)點(diǎn),F(xiàn)reakZ節(jié)點(diǎn)執(zhí)行命令控制電器。
系統(tǒng)硬件主要包括兩部分:智能網(wǎng)關(guān)硬件設(shè)計(jì)和FreakZ終端節(jié)點(diǎn)硬件設(shè)計(jì)。
2.1 智能網(wǎng)關(guān)硬件設(shè)計(jì)
網(wǎng)關(guān)作為智能家具的核心,實(shí)現(xiàn)了家電節(jié)點(diǎn)與PC/手機(jī)端的有效通信。STM32F103ZET6芯片通過SPI接口與WiFi模塊連接,通過串口與FreakZ協(xié)調(diào)器連接。其硬件電路結(jié)構(gòu)框圖如圖2所示。
圖2 網(wǎng)關(guān)硬件結(jié)構(gòu)圖
系統(tǒng)將μC/OS-II系統(tǒng)移植到STM32F103ZET6中,STM32F103ZET6 MCU采用的內(nèi)核為Cortex-M3,最高工作頻率為72 MHz[6];SRAM高達(dá)64 KB,帶4個(gè)片選的靜態(tài)存儲器控制器;支持2.0~3.6 V供電和I/O引腳;帶校準(zhǔn)功能的32 kHz RTC振蕩器;支持定時(shí)器、ADC、DAC、SDIO、I2C、I2S和USART等外設(shè)[7]。協(xié)調(diào)器負(fù)責(zé)創(chuàng)建和管理網(wǎng)絡(luò),收集終端節(jié)點(diǎn)的數(shù)據(jù)。
WiFi模塊實(shí)現(xiàn)網(wǎng)關(guān)與Internet連接。本系統(tǒng)采用WM-G-MR-09 WiFi無線通信模組,該WiFi芯片支持802.11b/g無線網(wǎng)絡(luò)模式,芯片體積小,休眠功耗為0.6 mA,接收數(shù)據(jù)功耗為170 mA,最高視頻傳輸速率可達(dá)54 Mb/s。本系統(tǒng)通過WiFi將傳感器數(shù)據(jù)、家電狀態(tài)數(shù)據(jù)和異常圖片數(shù)據(jù)傳入到Internet,供給用戶使用。
2.2 FreakZ終端節(jié)點(diǎn)硬件設(shè)計(jì)
FreakZ無線節(jié)點(diǎn)采用的是CC2530芯片,CC2530是2.4 GHz、IEEE802.15.4兼容RF收發(fā)器[8],具有極高的接收靈敏度和抗干擾性能。它十分適合需要超低功耗的系統(tǒng),不同的運(yùn)行模式間轉(zhuǎn)換時(shí)間短更加保證了低功耗。它將協(xié)調(diào)器與終端節(jié)點(diǎn)緊密聯(lián)系在一起,是智能家居系統(tǒng)重要組成部分。
視頻監(jiān)控模塊通過一些比較算法(開元motion程序)識別異常情況(在特定時(shí)間段家里有異常動(dòng)靜)并取出該幀,傳輸?shù)骄W(wǎng)關(guān),圖片解壓后通過WiFi傳輸?shù)絀nternet,從而用戶可以及時(shí)發(fā)現(xiàn)異常情況并做出處理。
智能網(wǎng)關(guān)主要由控制器模塊(STM32F103ZET6)、FreakZ模塊(協(xié)調(diào)器)、WiFi模塊組成。軟件設(shè)計(jì)主要在硬件平臺移植μC/OS-II操作系統(tǒng)、FreakZ協(xié)議棧以及WiFi驅(qū)動(dòng)。
μC/OS-II是一個(gè)具有可裁剪性、可剝奪性的實(shí)時(shí)多任務(wù)內(nèi)核[9],每個(gè)任務(wù)類似線程一樣,都處于死循環(huán)狀態(tài),根據(jù)優(yōu)先級來分時(shí)得到MCU的控制權(quán)。μC/OS-II源碼包括三個(gè)文件夾(CONFIG、CORE、PORTS),將源碼添加到Keil uVision5工程中去。CORE文件夾(與處理器無關(guān)的代碼)里面的os_core.c、os_flag.c、os_mbox.c、os_mem.c、os_mutex.c、os_q.c、os_sem.c、os_task.c、os_time.c、os_tmr.c、ucos_ii.h均無需修改,主要對PORTS文件夾下的os_cpu.h、os_cpu_c.c、os_cpu_a.asm三個(gè)文件進(jìn)行修改。
os_cpu.h文件主要用來定義操作系統(tǒng)與硬件平臺兼容的一些數(shù)據(jù)類型和函數(shù)。OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()這兩個(gè)函數(shù)用來保護(hù)任務(wù)的臨界代碼免于中斷程序的破壞。堆棧設(shè)置為從高地址向低地址生長的,OS_STK_GROWTH定義為1U。
os_cpu_c.c中定義了OSInitHookBegin()、OSTaskCreateHook()、OSTaskDelHook()、OSTaskIdleHook()、OSTaskReturnHook()、OSTaskStatHook()、OSTaskStkInit()、OSTaskSwHook()、OSTCBInitHook()、OSTCBInitHook()這些函數(shù),只用修改任務(wù)堆棧初始化函數(shù)OSTaskStkInit()。
os_cpu_a.asm的多個(gè)函數(shù)都需要修改,達(dá)到修改對應(yīng)的優(yōu)先級寄存器地址和中斷控制寄存器地址的目的,如OSStart HighRdy() 運(yùn)行最高優(yōu)先級的就緒任務(wù)。
μC/OS-II最多可以創(chuàng)建256個(gè)任務(wù),每個(gè)任務(wù)執(zhí)行具體的應(yīng)用功能,在智能家居遠(yuǎn)程監(jiān)控系統(tǒng)中,任務(wù)分配如表1所列。
表1 任務(wù)分配表
3.2 在協(xié)調(diào)器和終端節(jié)點(diǎn)上移植FreakZ協(xié)議棧
鑒于無線傳感器網(wǎng)絡(luò)ZigBee協(xié)議棧產(chǎn)品價(jià)格昂貴且代碼封閉[1],本文將云峰物聯(lián)科技勘誤后的FreakZ進(jìn)行二次改寫和添加功能,利用基于IDE集成管理的IAR移植到協(xié)調(diào)器和終端節(jié)點(diǎn)中。FreakZ是一個(gè)徹底開源的ZigBee協(xié)議,而其自身攜帶的contiki也是個(gè)徹底開源的操作系統(tǒng),contiki短小精悍,非常適合物聯(lián)網(wǎng)的智能家居設(shè)備。
圖3為FreakZ數(shù)據(jù)處理流程。智能家居多個(gè)FreakZ終端節(jié)點(diǎn)將節(jié)點(diǎn)數(shù)據(jù)傳入到tx隊(duì)列中,Smarthome_af_tx_handler()函數(shù)從tx隊(duì)列取出一幀數(shù)據(jù)傳遞到APS層;若重復(fù)表不存在該數(shù)據(jù),則通過Smarthome_aps_data_req()從綁定表中取出數(shù)據(jù)的目的ip地址和端口,經(jīng)過Smarthome_aps_tx()構(gòu)造NWK層的數(shù)據(jù)包并傳遞到NWK層;Smarthome_nwk_data_req()將數(shù)據(jù)傳遞到Smarthome_nwk_fwd(),執(zhí)行路由算法,如果目的地址為廣播地址則直接廣播,如果目的地址在路由表中且存在下一條路由,則轉(zhuǎn)發(fā)下一跳,如果目的地不在路由表且允許路由發(fā)現(xiàn),則緩沖信息并開啟路由發(fā)現(xiàn)再發(fā)送,如果以上三種方式均失敗,則進(jìn)行樹路由,如果仍失敗則停止轉(zhuǎn)發(fā),若獲取下一跳,則將智能家居節(jié)點(diǎn)信息通過Smarthome_nwk_tx()函數(shù)傳遞到MAC層;MAC層調(diào)用Smarthome_data_req()、Smarthome_tx_handler()和Smarthome_mac_out()三個(gè)函數(shù)將數(shù)據(jù)傳輸?shù)骄W(wǎng)卡,通過radio傳輸?shù)浇邮斩说膮f(xié)調(diào)器[2]。
圖3 FreakZ數(shù)據(jù)處理流程
FreakZ協(xié)調(diào)器的MAC層接收到信息發(fā)送到接收數(shù)據(jù)隊(duì)列,Smarthome_mac_eventhandler()取出一幀數(shù)據(jù)并解析報(bào)頭,判斷其為命令幀、信標(biāo)幀、ACK幀還是數(shù)據(jù)幀,如果是數(shù)據(jù)幀,則將節(jié)點(diǎn)信息傳輸?shù)絽f(xié)調(diào)器的NWK層。Smarthome_mac_eventhandler()從NWK層rx隊(duì)列中取出一幀數(shù)據(jù)并解析報(bào)頭,此時(shí)只有兩種類型的幀,即命令幀和數(shù)據(jù)幀,命令幀將被解析并路由到相應(yīng)的命令功能處理程序,數(shù)據(jù)幀則有目的地被轉(zhuǎn)發(fā)到協(xié)調(diào)器的APS層。Smarthome_nwk_data_ind()解析由NWK層傳遞來的幀,如果它在重復(fù)拒絕表中則丟棄,如果是應(yīng)答幀,則把應(yīng)答幀發(fā)送到APS應(yīng)答處理機(jī)制進(jìn)行處理[3],如果是數(shù)據(jù)幀且需要ACK應(yīng)答則立刻ACK,之后發(fā)送到AF層。Smarthome_af_rx_handler()從rx隊(duì)列中取出數(shù)據(jù)并解析,最后調(diào)用相應(yīng)的接收回調(diào)函數(shù),將數(shù)據(jù)傳輸?shù)綌帱c(diǎn),此時(shí)數(shù)據(jù)從智能家居終端節(jié)點(diǎn)完全到達(dá)協(xié)調(diào)器。
CC2530移植了contiki,contiki支持8位、16位、32位的幾乎所有處理器類型,支持IAR編輯,支持6lowpan和802.15.4協(xié)議[10],是一種無線網(wǎng)絡(luò)協(xié)議棧的小型操作系統(tǒng),非常符合智能家居小型低功耗的要求。
3.3 基于FreakZ的視頻監(jiān)控模塊
本視頻監(jiān)控模塊負(fù)責(zé)對智能家居異常(一定時(shí)間段)圖像(以圖片方式)的采集、傳輸與處理。本視頻監(jiān)控模塊主要由S3C2440微處理器和CC2530兩個(gè)芯片集成的。視頻監(jiān)控模塊的架構(gòu)如圖4所示。
圖4 視頻監(jiān)控子模塊硬件結(jié)構(gòu)圖
本監(jiān)控系統(tǒng)的運(yùn)動(dòng)圖像檢測原理:當(dāng)移動(dòng)物體在規(guī)定的時(shí)間內(nèi)(家庭規(guī)定的時(shí)間段)進(jìn)入攝像頭監(jiān)控范圍且攝像頭的當(dāng)前幀與前一幀的不同像素點(diǎn)點(diǎn)數(shù)超過規(guī)定的閾值,此時(shí)認(rèn)為出現(xiàn)異常,S3C2440微處理器在存儲器模塊中取出異常的圖片,通過RS232接口傳輸?shù)紺C2530,由CC2530終端子模塊運(yùn)用FreakZ協(xié)議棧和網(wǎng)絡(luò)通信將異常圖片傳輸?shù)骄W(wǎng)關(guān)內(nèi)的協(xié)調(diào)器,再由WiFi模塊傳輸?shù)絀nternet。監(jiān)控系統(tǒng)規(guī)定:若兩分鐘內(nèi)圖像連續(xù)變化次數(shù)超過15次,則監(jiān)控系統(tǒng)休眠一個(gè)小時(shí),一個(gè)小時(shí)后自動(dòng)開啟監(jiān)控。由于基于FreakZ的網(wǎng)絡(luò)是短距離低速率的傳輸,所以在視頻監(jiān)控子節(jié)點(diǎn)的S3C2440微處理器需要調(diào)用H.264編碼庫對圖片進(jìn)行壓縮再傳輸,PC端的顯示程序?qū)D片數(shù)據(jù)解碼并顯示。
智能家居PC端是由C#編寫,基本功能包括數(shù)據(jù)收發(fā)、數(shù)據(jù)存儲、數(shù)據(jù)顯示等。無線路由器與計(jì)算機(jī)相連,終端節(jié)點(diǎn)通過控制器與家電相連,用戶可以從PC端、手機(jī)端對家電設(shè)備進(jìn)行遠(yuǎn)程控制。運(yùn)行系統(tǒng)軟件界面如圖5所示。當(dāng)WiFi設(shè)備和協(xié)調(diào)器設(shè)備連接上之后,室內(nèi)溫度是17.87 ℃,濕度為61.53%,PM2.5為53.66 μg/m3,此時(shí)有人進(jìn)入,熱源為滿格,異常情況圖片顯示區(qū)顯示圖片,將電視機(jī)、空調(diào)、窗簾設(shè)置為開啟狀態(tài)。
本實(shí)驗(yàn)采用SmartRF Studio 7應(yīng)用程序測試智能家居的節(jié)點(diǎn)與網(wǎng)關(guān)之間的信號強(qiáng)度與丟包率,數(shù)據(jù)如表2所列。
從實(shí)驗(yàn)可以看出,隨著通信距離的增加,節(jié)點(diǎn)與網(wǎng)關(guān)之間的信號強(qiáng)度會(huì)變差,丟包率也會(huì)慢慢增加,在無障礙物的情況下,5米以內(nèi)丟包率為0,10米之后便出現(xiàn)丟包。由于墻體的存在信號強(qiáng)度會(huì)變得比較差,丟包率也相對很大。實(shí)驗(yàn)證明本系統(tǒng)收發(fā)較好,性能穩(wěn)定,滿足正常家居的通信需要。
表2 可靠性測試
[1] 申斌.基于物聯(lián)網(wǎng)的智能家居設(shè)計(jì)與實(shí)現(xiàn)[J].自動(dòng)化與儀表,2013,28(2):6-10.
[2] 郭穩(wěn)濤,何怡剛.智能家居遠(yuǎn)程監(jiān)控系統(tǒng)的研究與設(shè)計(jì)[J].計(jì)算機(jī)測量與控制,2011,19(9):2109-2113.
[3] 楊堤.基于物聯(lián)網(wǎng)的智能家居控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].電子世界,2012(21):16-17.
[4] 何勉,楊明飛.基于STM32的智能家居網(wǎng)關(guān)設(shè)計(jì)[J].機(jī)械工程與自動(dòng)化,2016(5):78-80.
[5] 張玉,姚凱學(xué),何勇,等.基于S3C6410的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2016,39(10):159-161,166.
[6] 洪樹亮.基于STM32F103住宅智能防火防盜報(bào)警系統(tǒng)的設(shè)計(jì)[D].蘭州:蘭州交通大學(xué),2014.
[7] 劉志龍,吳昊.STM32F103ZET6芯片在LED顯示屏控制應(yīng)用中的探索[J].科技創(chuàng)新與應(yīng)用,2014(4):30-31.
[8] 尹紀(jì)庭,袁佳,焦志曼,等.基于ARM和ZigBee的智能家居控制系統(tǒng)研究與開發(fā)[J].計(jì)算機(jī)測量與控制,2013,21(9):2451-2454.
[9] 楚紅雨,李磊民,黃玉清,等.實(shí)時(shí)操作系統(tǒng)μC/OS-II在ARM9上移植的實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2005,31(20):226-228.
[10] 張春園,劉興長,張偉偉,等.基于Contiki的無線傳感器網(wǎng)絡(luò)平臺設(shè)計(jì)與實(shí)現(xiàn)[J].后勤工程學(xué)院學(xué)報(bào),2014,30(6):90-96.
嚴(yán)凱(碩士研究生),主要研究方向?yàn)榍度胧綉?yīng)用技術(shù)。
IntelligentHomeDesignBasedonFreakZProtocolStackandOpen-sourceOperatingSystem
YanKai,YaoKaixue,HeYong
(College of Computer Science and Technology,Guizhou University,Guiyang 550000,China)
In order to solve the limitation of home monitoring system with traditional integrated wiring as the main technology,the intelligent remote monitoring system based on FreakZ is designed.The camera,the home appliances and the sensor modules are composed of IoT by WiFi and FreakZ technology.The smart gateway integrates STM32F103ZET6 embedded microprocessor,the WiFi module and the coordinator module.The remote communication between the coordinator and the terminal node is realized.Through the μC/OS-II operating system and contiki operating system,each module can be organically combined to achieve the purpose of the remote monitoring of electrical appliances.The PC side of smart home is written by the C# language,which can now successfully access the home environment data and accurate control of household appliances.The gateway and node signal strength and packet loss rate can obtained through SmartRF Studio 7.The experiment results show that the intelligent home remote monitoring system is safe and reliable.
smart home;FreakZ protocol stack;STM32F103ZET6;WiFi;μC/OS-II
面向智慧健康服務(wù)的物聯(lián)網(wǎng)關(guān)鍵技術(shù)示范應(yīng)用(黔科合成轉(zhuǎn)字[2015]5115) 。
TP393;TP273
A
2017-08-11)