劉 晉,張 帆,馮佳玉,鄧 彤,崔 璨
(遼寧師范大學(xué)計(jì)算機(jī)與信息技術(shù)學(xué)院,遼寧 大連 116081)
智能家居是“建筑自動(dòng)化”在個(gè)人住宅領(lǐng)域的擴(kuò)展[1]。隨著物聯(lián)網(wǎng)的飛速發(fā)展,基于物聯(lián)網(wǎng)的智能家居逐漸吸引消費(fèi)者的眼球。但由于智能家居的成本過高,其關(guān)聯(lián)設(shè)備又過于繁雜,用戶不大可能一次性購買所有關(guān)聯(lián)設(shè)備,如何科學(xué)地配備智能家居就成為了值得探討的問題[2-3]。智能家居在安裝后的調(diào)試與維護(hù)也比較復(fù)雜,這些也都是成本投入。同時(shí)現(xiàn)在仍舊存在很多智能家具設(shè)備需要通過計(jì)算機(jī)端來控制,這也讓“智能化”大打折扣。
針對(duì)以上問題,設(shè)計(jì)了一款極具性價(jià)比的物聯(lián)網(wǎng)智能家居系統(tǒng)。它使用了物聯(lián)網(wǎng)WiFi芯片ESP8266進(jìn)行無線通信,其通信范圍更廣、成本更低、更便于開發(fā)[4]。采用此款WiFi芯片進(jìn)行物聯(lián)網(wǎng)家居設(shè)計(jì)開發(fā)更具實(shí)際價(jià)值。借助云平臺(tái)進(jìn)行數(shù)據(jù)的中轉(zhuǎn)儲(chǔ)存,在云端進(jìn)行相關(guān)接口功能維護(hù)及狀態(tài)查看的方式也更為智能、便捷。選擇計(jì)算機(jī)作為控制終端,其不可移動(dòng)性也會(huì)給用戶帶來不便。在本系統(tǒng)中,使用手機(jī)應(yīng)用程序(application,APP)控制操縱設(shè)備的方式,移動(dòng)性更強(qiáng)也更顯智能[5]。
智能家居網(wǎng)關(guān)的硬件設(shè)計(jì)很大程度上決定了整個(gè)智能家居性能。設(shè)計(jì)網(wǎng)關(guān)的硬件時(shí)則必須遵循安全、穩(wěn)定、低成本的設(shè)計(jì)原則。
在本文設(shè)計(jì)的物聯(lián)網(wǎng)智能家居系統(tǒng)中,使用以STM32F103RCT6芯片為核心的STM32單片機(jī)作為主控制器,它主要有以下4個(gè)優(yōu)勢(shì)。
①成本低。此款單片機(jī)市場(chǎng)價(jià)位非常低,但卻能滿足本系統(tǒng)設(shè)計(jì)的相關(guān)功能,符合本文研發(fā)價(jià)格低廉、簡單實(shí)用智能家居系統(tǒng)的定位。
②功能強(qiáng)大。該款單片機(jī)芯片主頻頻率達(dá)到72 MHz,具有48 KB SRAM、256 KB的Flash、51個(gè)I/O接口、及豐富的通信接口可供功能擴(kuò)展。其工作電壓為2到3.6 V,具有多種省點(diǎn)模式保證其低功耗運(yùn)轉(zhuǎn);同時(shí),其-40~+105 ℃的工作環(huán)境保證了設(shè)備一年四季的穩(wěn)定運(yùn)行。
③功耗低。系統(tǒng)使用的Cortex-M3內(nèi)核非常節(jié)省功耗。
④開發(fā)便捷。該款單片機(jī)為意法半導(dǎo)體主流產(chǎn)品之一,可節(jié)約開發(fā)成本。
在STM32外圍電路則搭載煙霧檢測(cè)模塊(MQ-2)、溫濕度采集模塊(DHT11)、紅外感應(yīng)模塊(D-SUN)、WIFI模塊(ESP8266)、步進(jìn)電機(jī)驅(qū)動(dòng)模塊、LED驅(qū)動(dòng)模塊及報(bào)警電路進(jìn)行相關(guān)功能的設(shè)計(jì)。系統(tǒng)硬件架構(gòu)框圖如圖1所示。
圖1 系統(tǒng)硬件架構(gòu)圖
傳統(tǒng)的智能家居系統(tǒng)以家庭網(wǎng)關(guān)為核心,設(shè)備均與家庭網(wǎng)關(guān)相連,并接收其指令。而在本文設(shè)計(jì)的智能家居系統(tǒng)中,家庭網(wǎng)關(guān)只是連接傳感器、家電等硬件終端和云數(shù)據(jù)中心的中介,而非系統(tǒng)中樞[6]。
相較于傳統(tǒng)的以家庭網(wǎng)關(guān)為核心的家居系統(tǒng),通過借助接入云平臺(tái)的方式控制管理家居設(shè)備則更具有優(yōu)勢(shì)。首先,它減少了家居網(wǎng)關(guān)設(shè)計(jì)時(shí)的復(fù)雜度,降低了組網(wǎng)管理帶來的設(shè)計(jì)成本;其次,云服務(wù)器對(duì)大量數(shù)據(jù)進(jìn)行儲(chǔ)存統(tǒng)籌,也更有利于發(fā)現(xiàn)智能家居領(lǐng)域大家的需求量在哪,為整個(gè)領(lǐng)域更好的發(fā)展帶來幫助;最后,云服務(wù)器高性能的計(jì)算能力和儲(chǔ)存能力可以接收來自各方的大量智能家居系統(tǒng)上傳數(shù)據(jù),在更大的范圍內(nèi)進(jìn)行管理安排。
該智能家居系統(tǒng)將云平臺(tái)作為核心,借助機(jī)智云平臺(tái)搭建出以應(yīng)用域、網(wǎng)絡(luò)域、設(shè)備域組成的云物聯(lián)系統(tǒng)基本架構(gòu),把嵌入式技術(shù)、傳感器技術(shù)、無線通信技術(shù)進(jìn)行充分融合,充分做到“以人為中心”[7-8]。云平臺(tái)系統(tǒng)架構(gòu)如圖2所示。
圖2 云平臺(tái)系統(tǒng)架構(gòu)圖
同時(shí)將手機(jī)作為移動(dòng)控制終端使用,通過使用機(jī)智云平臺(tái)進(jìn)行數(shù)據(jù)的儲(chǔ)存與中轉(zhuǎn),最終實(shí)現(xiàn)APP與智能設(shè)備間的通信,完成遠(yuǎn)程家居控制和監(jiān)測(cè)。
μC/OS-III是一個(gè)可剪裁、可固化、可剝奪型的實(shí)時(shí)內(nèi)核,管理任務(wù)的數(shù)目不受限制[9]。
它包括了資源管理、任務(wù)管理、中斷管理、時(shí)間管理、定時(shí)器管理、內(nèi)存管理等多種實(shí)時(shí)內(nèi)核所需要的功能,同時(shí)具有很好的移植性,可讀性很強(qiáng)。其內(nèi)核最小可以剪裁到4 KB,消耗程序儲(chǔ)存器資源極少,并具有很高的執(zhí)行效率[10]。
在μC/OS-III嵌入式操作系統(tǒng)中,可以創(chuàng)建無數(shù)多個(gè)任務(wù),讓這些任務(wù)并發(fā)運(yùn)行,就如同有多個(gè)主函數(shù)在運(yùn)行一樣。正是利用這樣的特點(diǎn),在該家居系統(tǒng)中使用μC/OS-III系統(tǒng)對(duì)ApptaskLed、ApptaskMotor、ApptaskDht11、ApptaskMQ-2、ApptaskD-SUN等任務(wù)進(jìn)行并發(fā)運(yùn)行,并通過任務(wù)信號(hào)量協(xié)調(diào)管理如門禁端紅外探測(cè)器與LED等特定任務(wù)之間的關(guān)系。同時(shí),通過使用內(nèi)存管理的方式,盡量減少內(nèi)存在分配與釋放過程造成的內(nèi)存碎片,避免了內(nèi)存的浪費(fèi)。
系統(tǒng)通過無線進(jìn)行通信,使用的WiFi芯片為ESP8266。它是由樂鑫公司生產(chǎn)的超低功耗WIFI芯片,其工作電壓為2.5~3.6 V,工作電流為80 mA,內(nèi)置32位CPU;同時(shí),它支持CloudServerDevelopment、固件燒寫及SDK開發(fā),故廣泛應(yīng)用在智能家居領(lǐng)域[11]。ESP8266硬件接口豐富,可支持UART、IIC、PWM、GPIO和ADC接口。該系統(tǒng)中使用ESP8266模塊的TXD和RXD引腳與MCU進(jìn)行串口傳透的方式通信[12]。
設(shè)備端作為客戶端運(yùn)行,只具有私網(wǎng)的IP地址,只能主動(dòng)去訪問外部服務(wù)器,而不能由外部服務(wù)器主動(dòng)去訪問設(shè)備本身。因此,需要通過“ESPFlashDownloadTool”軟件向WiFi芯片ESP8266燒寫機(jī)智云固件程序GAgent。GAgent的主要作用是讓ESP8266模塊主動(dòng)連接云服務(wù)器,并實(shí)與云端的TCP/UDP通信。
在向WIFI芯片成功燒取固件后,只要在集成控制板MCU上集成WIFI模塊ESP8266,并實(shí)現(xiàn)它們之間的串口通信,即可接入云端完成設(shè)備端與云端通信。設(shè)備端與云端通信如圖3所示。
圖3 設(shè)備端與云端通信圖
本系統(tǒng)使用Android原生SDK進(jìn)行APP的開發(fā)。通過對(duì)該SDK中進(jìn)行相關(guān)業(yè)務(wù)邏輯處理的編寫及封裝即可實(shí)現(xiàn)和設(shè)備端及云端進(jìn)行通信。
APP與設(shè)備端的具體傳透數(shù)據(jù)方法如下。
①在云平臺(tái)創(chuàng)建傳感器、步進(jìn)電機(jī)等相關(guān)的數(shù)據(jù)點(diǎn)。
②微處理單元(micro computer unit,MCU)按照數(shù)據(jù)點(diǎn)的定義格式進(jìn)行數(shù)據(jù)傳透,下載設(shè)備的串口通信協(xié)議文檔查看MCU上報(bào)數(shù)據(jù)格式,上報(bào)數(shù)據(jù)由包頭、包長度、命令、包序號(hào)、flags、類型、校驗(yàn)和組成。上報(bào)數(shù)據(jù)格式如表1所示。
表1 上報(bào)數(shù)據(jù)格式
③APP端接收到MCU上報(bào)數(shù)據(jù),并通過didReceiveData接收接口查看。APP端接收到一個(gè)叫“kuozhan”的key,其對(duì)應(yīng)的值即為傳透的數(shù)據(jù)。同時(shí)在GizWIFIDevice類的write接口中,APP按照數(shù)據(jù)點(diǎn)定義發(fā)送的相關(guān)數(shù)據(jù)。至此就可以完成APP與MCU之間的具體數(shù)據(jù)傳透。
具體實(shí)現(xiàn)SDK開發(fā)包括了加載、初始化、用戶注冊(cè)、登陸、設(shè)備配置、設(shè)備界面優(yōu)化、設(shè)備發(fā)現(xiàn)、設(shè)備連接、掃碼綁定設(shè)備、WiFi綁定設(shè)備、設(shè)備控制等功能。其詳細(xì)開發(fā)流程如圖4所示。
圖4 SDK開發(fā)流程圖
該系統(tǒng)使用的移動(dòng)終端為Android智能手機(jī),開發(fā)使用的APP框架為機(jī)智云安卓APP開源框架,開發(fā)語言為Java,編譯環(huán)境為Eclipse,旨在創(chuàng)建良好的圖形界面進(jìn)行人機(jī)交互,帶來更好的用戶體驗(yàn)[13]。
首先,在云平臺(tái)處創(chuàng)建設(shè)備功能相關(guān)的數(shù)據(jù)點(diǎn)后,云端則根據(jù)創(chuàng)建的數(shù)據(jù)點(diǎn)生成相應(yīng)的APP參考代碼;然后,進(jìn)行工程配置信息、控制頁面、界面UI設(shè)計(jì)、頁面布局、控制邏輯代碼的開發(fā)。
在完成APP開發(fā)后,即可使用手機(jī)連接無線網(wǎng)或局域網(wǎng)登錄APP并連接設(shè)備,實(shí)現(xiàn)對(duì)門禁端門鎖的控制及室內(nèi)溫度濕度的監(jiān)測(cè)。
①LED驅(qū)動(dòng)模塊與人體感應(yīng)模塊D-SUN。
該智能家居系統(tǒng)中,LED模塊和紅外模塊配合使用于門禁端。LED模塊作為門口的照明燈來使用;D-SUN為人體紅外感應(yīng)模塊,它具有靈敏度高、強(qiáng)穩(wěn)定性、低功耗、超低壓的工作特性,在本系統(tǒng)中D-SUN使用于門禁端進(jìn)行人體感應(yīng)工作。
②電控鎖。
門禁端的鎖具采用的是電控鎖,電控鎖是一個(gè)由繼電器控制的機(jī)械鎖裝置。該智能家居系統(tǒng)中的電控鎖使用的是12 V步進(jìn)電機(jī),通過它產(chǎn)生角位移的方式打開門鎖。脈沖信號(hào)的頻率和脈沖數(shù)決定了步進(jìn)電機(jī)的當(dāng)前狀態(tài),給電機(jī)加一個(gè)脈沖信號(hào),電機(jī)便轉(zhuǎn)過一個(gè)步距角。該智能家居系統(tǒng)中,當(dāng)設(shè)備端接收到APP相關(guān)指令后作出響應(yīng),控制電控鎖轉(zhuǎn)動(dòng)打開門鎖。
③門禁端功能。
門禁端功能實(shí)現(xiàn):當(dāng)有訪客按下門鈴時(shí),設(shè)備端KEY按鍵被按下,按鍵中斷服務(wù)程序激活,門鈴Beep程序無線循環(huán),門鈴持續(xù)發(fā)出響聲;住戶聽到門鈴聲后,使用APP向設(shè)備發(fā)送開鎖指令,設(shè)備端接到指令后打開門鎖;當(dāng)訪客進(jìn)門后,觸發(fā)設(shè)備端的紅外感應(yīng)模塊D-SUN,開啟LED燈完成門口的照明工作。
①溫濕度傳感器模塊DHT11。
DHT11是一款含有已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器,其功耗非常低,在5 V電源電壓下,工作電流平均值僅為0.5 mA。 DHT11通信時(shí)序如圖5所示。
圖5 DHT11通信時(shí)序圖
DHT11是通過單總線與微處理器通信,只需要一根線,一次傳輸40位數(shù)據(jù),高位先出。
STM32向 DHT11發(fā)送起始信號(hào), DHT11由低功耗模式切換至高速模式,等待主機(jī)開始信號(hào)結(jié)束。結(jié)束后,DHT11響應(yīng)輸出拉高并準(zhǔn)備輸出,之后發(fā)送40位的數(shù)據(jù),觸發(fā)信號(hào)采集。最終將采集溫度的高8位數(shù)據(jù)及濕度的高8位數(shù)據(jù)上傳到云平臺(tái),實(shí)現(xiàn)對(duì)環(huán)境溫度和濕度的監(jiān)測(cè)。
②煙霧氣敏傳感器模塊MQ-2。
該系統(tǒng)采用的氣體傳感器為MQ-2,MQ-2的氣敏材料為二氧化錫。它是一種透明導(dǎo)電材料,在空氣中具有極低的導(dǎo)電性。當(dāng)MQ-2傳感器監(jiān)測(cè)到可燃?xì)怏w時(shí),導(dǎo)電率會(huì)隨可燃?xì)怏w濃度不斷增大,使用簡單電路及可將導(dǎo)電率轉(zhuǎn)換為氣體濃度的輸出信號(hào)。同時(shí),由于其高靈敏度、穩(wěn)定性高、壽命長、快速響應(yīng)恢復(fù)等特點(diǎn),MQ-2尤其適合家庭和工廠對(duì)可燃?xì)怏w的監(jiān)測(cè)[14]。
該智能家居系統(tǒng)中的MQ-2模塊采用AO模擬信號(hào)輸出口,通過ADC來讀取MQ-2輸出模擬電壓值。設(shè)備端采集相關(guān)數(shù)據(jù),并由APP顯示當(dāng)前環(huán)境下氣體濃度值。
③室內(nèi)監(jiān)測(cè)功能。
設(shè)備端通過DHT11及MQ-2傳感器采集溫濕度、氣體濃度等數(shù)據(jù),之后通過云平臺(tái)將數(shù)據(jù)上傳給手機(jī)APP,手機(jī)APP接收到傳感器采集的信息完成進(jìn)行室內(nèi)監(jiān)測(cè)工作。如果房間內(nèi)溫濕度、氣體濃度大于設(shè)定值,設(shè)備端發(fā)出警報(bào),同時(shí)手機(jī)接收警報(bào)信息,住戶聽到報(bào)警后即可采取相應(yīng)措施處理。
該智能家居系統(tǒng)可以在PC端通過登錄機(jī)智云平臺(tái)進(jìn)行虛擬設(shè)備模擬的方式判斷APP與設(shè)備間的通信情況及驗(yàn)證接口相關(guān)功能。通過這種方式對(duì)APP及設(shè)備檢查維護(hù)也更為便捷。經(jīng)測(cè)試,由虛擬設(shè)備端向APP上報(bào)數(shù)據(jù)及APP向虛擬設(shè)備端下達(dá)指令數(shù)據(jù)均一切正常,說明APP相關(guān)功能接口及設(shè)備端功能接口也都正確,具備相互通信的能力。
同時(shí),通過串口調(diào)試助手進(jìn)一步測(cè)試觀察WiFi模式配置數(shù)據(jù)、MCU與WiFi之間的通信數(shù)據(jù)、相關(guān)控制指令數(shù)據(jù)、接收數(shù)據(jù)及手機(jī)與云端和設(shè)備的連接狀態(tài)、信號(hào)強(qiáng)度等。經(jīng)過測(cè)試發(fā)現(xiàn),手機(jī)端與設(shè)備端、云端連接一切正常。
當(dāng)使用APP向設(shè)備發(fā)送指令,通過串口調(diào)試助手即可觀察相關(guān)指令數(shù)據(jù)交換,確定設(shè)備狀態(tài);同時(shí)也可以觀察設(shè)備端采集的各傳感器采集到的數(shù)據(jù)情況。
在測(cè)試中,通過APP向設(shè)備端發(fā)送相關(guān)控制指令,觀察設(shè)備狀態(tài)及串口打印的數(shù)據(jù)。通過測(cè)試發(fā)現(xiàn),對(duì)設(shè)備端相關(guān)控制數(shù)據(jù)及相關(guān)傳感器采集到的相關(guān)數(shù)據(jù)均一切正常。
在APP對(duì)設(shè)備施加遠(yuǎn)程控制的同時(shí),根據(jù)串口打印數(shù)據(jù)顯示情況,對(duì)相關(guān)傳感器的數(shù)據(jù)采集情況及遠(yuǎn)程設(shè)備的控制情況進(jìn)行了記錄。數(shù)據(jù)測(cè)試情況如表2所示。
表2 數(shù)據(jù)測(cè)試情況
本文主要進(jìn)行的是設(shè)備端與移動(dòng)控制端間的通信距離與抗干擾能力的測(cè)試。因?yàn)樵撓到y(tǒng)主要使用在家庭中做智能控制,故進(jìn)行通信測(cè)試的距離選取100 m作為測(cè)試的最遠(yuǎn)距離。
①傳輸距離的測(cè)試。固定設(shè)備將作為移動(dòng)控制端的手機(jī)與設(shè)備之間隔開100 m的距離,之后使用手機(jī)APP向設(shè)備端發(fā)送指令。此時(shí),發(fā)送方會(huì)給出消息序列號(hào)sn,接收方響應(yīng)命令時(shí)會(huì)將sn返回給發(fā)送方。最終通過串口助手觀察得到發(fā)送的控制指令及設(shè)備端的應(yīng)答指令數(shù)據(jù)一切正常。
②信號(hào)抗干擾能力的測(cè)試。這里的抗干擾能力主要指的是信號(hào)的“穿墻能力”。首先將設(shè)備端固定在6樓的高度;之后將手機(jī)控制端帶到1樓的位置進(jìn)行設(shè)備控制。經(jīng)測(cè)試發(fā)現(xiàn),在有障礙的情況下,在6層樓這個(gè)高度內(nèi),設(shè)備端與手機(jī)端的通信情況仍然穩(wěn)定性正常。
通過串口助手打印的數(shù)據(jù)可知,在兩種測(cè)試情況下,控制設(shè)備傳輸數(shù)據(jù)時(shí)的丟包率也極低,完全達(dá)到了本系統(tǒng)低成本、穩(wěn)定的設(shè)計(jì)要求。
本研究設(shè)計(jì)的基于機(jī)智云平臺(tái)的智能家居系統(tǒng)APP端與設(shè)備端之間通信穩(wěn)定,在家庭中這個(gè)范圍內(nèi)使用基本不存在數(shù)據(jù)掉包的情況;μC/OS-III操作系統(tǒng)的引入讓系統(tǒng)更加穩(wěn)定;WiFi芯片ESP8266及相關(guān)性價(jià)比極高的傳感器模塊也降低了成本;所借助的機(jī)智云平臺(tái)提供了智能的信息中轉(zhuǎn)環(huán)境,使設(shè)計(jì)者在云平臺(tái)上通過控制虛擬設(shè)備的方式即可進(jìn)行APP與設(shè)備相關(guān)接口維護(hù)。整個(gè)系統(tǒng)運(yùn)行穩(wěn)定,具備一定的市場(chǎng)價(jià)值和研究價(jià)值。