王 華
(河南工業(yè)貿(mào)易職業(yè)學(xué)院信息工程學(xué)院,河南 鄭州 450012)
隨著生活水平的不斷提高,人們對(duì)日常生活自動(dòng)化的需求不斷增加,因而需要找到一種可以在所有類型家庭中實(shí)施的,基于物聯(lián)網(wǎng)設(shè)備管理的可行性方案[1]。本文提出了一種節(jié)能的家庭自動(dòng)化系統(tǒng)解決方案,以實(shí)現(xiàn)對(duì)日常生活中基本操作的自動(dòng)化控制。該系統(tǒng)利用動(dòng)態(tài)地址、各種傳感器和機(jī)器學(xué)習(xí)算法等技術(shù),實(shí)現(xiàn)系統(tǒng)功能優(yōu)化。同時(shí)考慮到房屋安全方面的問題,該系統(tǒng)通過基于云的交互式網(wǎng)絡(luò)界面即時(shí)地為用戶提供監(jiān)測(cè)和控制服務(wù)。以下將從硬件、軟件和云界面等方面進(jìn)行詳細(xì)描述。
本文提出的智能家居自動(dòng)化系統(tǒng)分為3 個(gè)主要部分:硬件接口模塊、軟件通信模塊和一個(gè)基于云的用戶界面模塊。該系統(tǒng)的中心是一個(gè)Arduino Mega 2560 微控制器。該微控制器連接設(shè)備和傳感器之間的所有通信,以實(shí)現(xiàn)系統(tǒng)的自動(dòng)化功能。該系統(tǒng)可提供各種不同的功能,如溫度控制、使用風(fēng)扇/空調(diào)、自動(dòng)照明、使用運(yùn)動(dòng)傳感器等,以及多種安全功能,如激光線、煙霧和火災(zāi)探測(cè)和使用NFC 的用戶認(rèn)證。所有功能都可以使用一個(gè)專門的基于云的網(wǎng)絡(luò)界面手動(dòng)控制。用戶可以使用智能手機(jī)或其他設(shè)備在本地或遠(yuǎn)程訪問該系統(tǒng),且遠(yuǎn)程訪問基于云的軟件系統(tǒng)可以不是靜態(tài)IP,這點(diǎn)是非常方便的。軟件系統(tǒng)和硬件模塊的整合,使用戶不需要具備專業(yè)知識(shí)就能在系統(tǒng)中添加任何設(shè)備。整個(gè)系統(tǒng)通過太陽能供電,可再生能源的使用有效降低了建筑能耗。目前家庭自動(dòng)化系統(tǒng)已經(jīng)成為一種必要的需求,用戶希望通過智能手機(jī)或者其他設(shè)備動(dòng)動(dòng)手指就實(shí)現(xiàn)對(duì)設(shè)備的控制,以獲得智能化、安全可靠、易操作的體驗(yàn)[1]。
現(xiàn)在多數(shù)系統(tǒng)都依托在Arduino 模塊上,這對(duì)系統(tǒng)的全面發(fā)展造成了限制。通常情況下,基于Arduino 模塊的系統(tǒng)與互聯(lián)網(wǎng)連接,需要一個(gè)靜態(tài)IP 地址,而目前多數(shù)家庭使用的是動(dòng)態(tài)IP 地址,這就給系統(tǒng)的使用造成了很大的困難。
為了解決現(xiàn)有系統(tǒng)的問題,本文提出了一種基于Arduino Mega 2560 微控制器的安全智能家居自動(dòng)化系統(tǒng)。由于使用了微控制器,該系統(tǒng)可以通過無線網(wǎng)絡(luò)和藍(lán)牙實(shí)現(xiàn)各個(gè)模塊的單獨(dú)化控制與管理,在云控制端實(shí)現(xiàn)整體化設(shè)置,即使沒有連線也能獨(dú)立運(yùn)行。該系統(tǒng)還可根據(jù)使用情況進(jìn)行自動(dòng)控制。系統(tǒng)中不同功能的傳感器用以完成相應(yīng)的功能,在房屋入口處安裝一個(gè)NFC 讀卡器用來驗(yàn)證用戶進(jìn)入房屋的認(rèn)證。如果有人在屋內(nèi),除了安全系統(tǒng)之外,整個(gè)系統(tǒng)都是關(guān)閉的。房屋內(nèi)各房間的照明由PIR 傳感器的運(yùn)動(dòng)檢測(cè)來控制,當(dāng)PIR 運(yùn)動(dòng)傳感器檢測(cè)到房間內(nèi)有運(yùn)動(dòng)物體時(shí)就會(huì)打開相應(yīng)房間的燈;檢測(cè)到房間內(nèi)沒有運(yùn)動(dòng)物體時(shí),燈光就會(huì)自動(dòng)關(guān)閉。溫度傳感器用來測(cè)量環(huán)境溫度、控制風(fēng)扇和空調(diào)的運(yùn)行,以保持溫度在特定范圍內(nèi)。LDR 傳感器檢測(cè)進(jìn)入房屋的光線,并控制窗簾的開合。如果雨水傳感器檢測(cè)到有降雨發(fā)生,系統(tǒng)就會(huì)控制可伸縮屋頂覆蓋陽臺(tái)或者露臺(tái),以防止雨水進(jìn)入。車庫門的閉合通過一個(gè)壓力傳感器來檢測(cè),當(dāng)汽車出現(xiàn)時(shí)車庫門打開,并在設(shè)定的時(shí)間段后自動(dòng)關(guān)閉。
基于機(jī)器學(xué)習(xí)原理的一個(gè)重要安全功能是人臉識(shí)別。實(shí)現(xiàn)這個(gè)功能需要使用K-鄰近(KNN)算法。該算法和它支持的功能被上傳到Raspberry Pi微控制器,網(wǎng)絡(luò)攝像頭連接在微控制器上,用于捕捉人臉圖像。當(dāng)用戶抵達(dá)房門時(shí),按下按鈕激活面部識(shí)別系統(tǒng),在獲得認(rèn)證與授權(quán)后方可進(jìn)入房屋。網(wǎng)絡(luò)攝像頭拍攝的圖像被加載到Raspberry Pi中,并通過Haar 級(jí)聯(lián)分類器進(jìn)行預(yù)處理以提取相關(guān)面部特征,然后設(shè)置好的KNN 對(duì)圖像進(jìn)行處理,并給出一個(gè)二進(jìn)制的輸出,用于驗(yàn)證或拒絕認(rèn)證用戶。
此外,還可以在房屋所有可能的入口處使用激光線來防止盜竊行為發(fā)生。當(dāng)房屋設(shè)置為安全模式或里面沒人時(shí),分布在各處的激光器就會(huì)開啟,任何一個(gè)激光器被觸發(fā)都會(huì)響起警報(bào),并通過軟件和電話通知房主或警察。除了激光線,也可以使用安裝在入口處的PIR 運(yùn)動(dòng)傳感器檢測(cè)可疑運(yùn)動(dòng),以提高安全性。該系統(tǒng)還有一個(gè)煙霧/火災(zāi)探測(cè)器,如有意外情況,將自動(dòng)通知房主和消防部門。值得一提的是,該系統(tǒng)利用太陽能供電,不會(huì)增加房屋的用電量;在停電的情況下,還有一個(gè)備用電池組可用;蓄電池可以使用太陽能以及外部電源進(jìn)行充電,以防止電力故障[2]。
Arduino 是一個(gè)開源的微控制器,可用來開發(fā)交互式平臺(tái),從各種開關(guān)或傳感器獲取數(shù)據(jù),并控制各種燈、電機(jī)和其他部件的輸出。Arduino 可以是獨(dú)立的,也可以與運(yùn)行在電腦上的軟件進(jìn)行通信。本系統(tǒng)中使用的所有傳感器都與Arduino 進(jìn)行了連接,這些傳感器向Arduino 提供特定類型的輸入,Arduino 在接收到這些輸入后,通過Arduino 編程執(zhí)行某些命令。
Raspberry Pi 3 Model B 是第三代Raspberry Pi,是一個(gè)和信用卡差不多大小的單板計(jì)算機(jī),可用于許多應(yīng)用。Raspberry Pi 可以實(shí)現(xiàn)無線局域網(wǎng)和藍(lán)牙連接,這使它成為大多數(shù)項(xiàng)目設(shè)計(jì)的理想選擇。
1)NFC 模塊。NFC 指的是近場(chǎng)通信,用于諸如智能手機(jī)或NFC 卡等設(shè)備建立無線通信。這是一種短距離的無線通信,可以在設(shè)備之間進(jìn)行非接觸點(diǎn)的數(shù)據(jù)傳輸。該系統(tǒng)在SPI 模式下使用該模塊,它安裝在入口處供用戶驗(yàn)證身份,用戶只需將卡靠近NFC 模塊,就可得到認(rèn)證。
2)PIR 傳感器。PIR 傳感器內(nèi)有一個(gè)熱釋電傳感器,被一個(gè)圓頂形的菲涅爾透鏡所覆蓋。傳感器的延遲和靈敏度可以通過傳感器底部的電位器進(jìn)行調(diào)節(jié)。當(dāng)探測(cè)到人體出現(xiàn)在傳感器范圍內(nèi)時(shí)輸出“高”,否則輸出“低”。這一原理在系統(tǒng)中被用來檢測(cè)人是否在房間內(nèi),以打開/關(guān)閉各個(gè)房間的燈,達(dá)到節(jié)省能源的目的。
3)溫度傳感器。LM35 傳感器的輸出電壓與溫度成正比,用于測(cè)量房間的溫度,并控制風(fēng)扇/空調(diào)的運(yùn)行,以確保房間溫度保持在指定范圍內(nèi)。當(dāng)環(huán)境溫度超過閾值時(shí),風(fēng)扇/空調(diào)被打開;當(dāng)溫度恢復(fù)到設(shè)定溫度時(shí),風(fēng)扇/空調(diào)被關(guān)閉。該系統(tǒng)僅在需要時(shí)驅(qū)動(dòng)這些設(shè)備,有助于節(jié)省能源。
4)LDR 傳感器。LDR 傳感器用于檢測(cè)或測(cè)量周圍環(huán)境的光強(qiáng)度。該傳感器在有光的情況下輸出“高”,在沒光的情況下輸出“低”。傳感器上的電位器用來調(diào)整傳感器的靈敏度,以精確測(cè)量光強(qiáng)度,控制窗簾的狀態(tài)(關(guān)閉/打開),優(yōu)化室內(nèi)光線強(qiáng)弱。通過RTC 可設(shè)置時(shí)間自動(dòng)控制窗簾狀態(tài),以獲得舒適的照明[3]。
5)壓力傳感器。壓力傳感器用于測(cè)量施加在傳感器上的力,力越大,阻力越小。該系統(tǒng)用來確定是否有汽車接近車庫,當(dāng)有車接近時(shí),系統(tǒng)會(huì)自動(dòng)打開車庫門,讓用戶進(jìn)入并停放汽車,并在設(shè)定的時(shí)間段后自動(dòng)關(guān)閉車庫門。
6)激光模塊和接收器。KY-008 激光模塊用于發(fā)射激光束,檢測(cè)器感應(yīng)到激光的存在并給出數(shù)字輸出。該模塊用于檢測(cè)激光束的跳動(dòng),以進(jìn)行盜竊檢測(cè)并發(fā)出警報(bào)。
該系統(tǒng)軟件分為兩個(gè)部分,第一部分是運(yùn)行在Arduino 板上的軟件代碼,第二部分是基于云的應(yīng)用平臺(tái)。Arduino Studio 用于實(shí)現(xiàn)系統(tǒng)的邏輯和管理它們的運(yùn)行,代碼被上傳到Arduino 板上,該板充當(dāng)傳感器、設(shè)備和托管在云端的用戶界面之間的協(xié)調(diào)人。用戶界面托管在云上,所有的自動(dòng)化功能都被單獨(dú)輸入到Arduino 板上,這些功能包括自動(dòng)照明、溫度控制和安全功能。
一個(gè)ESP32 Wi-Fi 模塊被連接到Arduino,以便與云平臺(tái)連接。ESP32 模塊承載了一個(gè)本地網(wǎng)絡(luò)服務(wù)器,它將作為一個(gè)API(應(yīng)用編程接口)接到云界面。該API 包含一些選項(xiàng),用于手動(dòng)覆蓋每個(gè)功能,也可改變涉及安全的設(shè)置。本地網(wǎng)絡(luò)服務(wù)器將定期ping 云平臺(tái)以監(jiān)聽任何遠(yuǎn)程請(qǐng)求。云平臺(tái)是一個(gè)網(wǎng)絡(luò)應(yīng)用,可使用個(gè)人電腦、智能電話等智能設(shè)備遠(yuǎn)程和本地操作、訪問整個(gè)系統(tǒng);訪問云平臺(tái)需要使用用戶名和密碼來驗(yàn)證,系統(tǒng)所有者可以添加或刪除訪問用戶和NFC 卡授權(quán)。當(dāng)盜竊檢測(cè)系統(tǒng)激活時(shí),如果檢測(cè)到任何入侵警報(bào)會(huì)被觸發(fā),云平臺(tái)將首先得到通知,然后按照所有者的指示執(zhí)行必要行動(dòng)。此外,還提供了添加或刪除面部識(shí)別功能,可以將新的信息上傳到RaspBerry Pi 設(shè)備數(shù)據(jù)庫,作為用戶驗(yàn)證的有效憑證[4]。
該系統(tǒng)借助物聯(lián)網(wǎng)設(shè)備和傳感器建立了完整的家庭自動(dòng)化系統(tǒng),如溫度傳感器(LM35),壓力傳感器,LDR,PIR,NFC/RFID 閱讀器,煙霧/火災(zāi)傳感器,雨水傳感器等。這些傳感器與Arduino Mega 2560 微控制器連接,并根據(jù)它們各自不同的功能被安裝在合適的位置。
NFC/RFID 模塊安裝在房屋入口處,以確保只有被授權(quán)的用戶才可以進(jìn)入。NFC 芯片中包含一個(gè)特定的十六進(jìn)制值,當(dāng)該十六進(jìn)制值與用戶卡上的值相吻合,就能獲得授權(quán)允許進(jìn)入房屋。為了增強(qiáng)安全性,在入口處設(shè)置了人臉識(shí)別系統(tǒng);該人臉識(shí)別系統(tǒng)基于Raspberry Pi 使用哈爾級(jí)聯(lián)算法來檢測(cè)人的面孔,如果人臉匹配,Arduino 就會(huì)打開房門;為實(shí)現(xiàn)人臉識(shí)別功能,還需要將一個(gè)攝像頭連接到Raspberry Pi上,將捕捉到的數(shù)據(jù)與數(shù)據(jù)庫中的人臉進(jìn)行匹配、識(shí)別。在車庫門前適當(dāng)位置安裝了壓力傳感器,當(dāng)力的參數(shù)滿足時(shí),車庫門將自動(dòng)打開。溫度傳感器用于檢測(cè)周圍溫度,如果溫度超過了特定閾值,風(fēng)扇將自動(dòng)打開。煙霧/火災(zāi)傳感器用來檢測(cè)火情,在火災(zāi)發(fā)生時(shí)可立即通知房主;這個(gè)裝置大多安裝在廚房,因?yàn)閺N房是最有可能發(fā)生火災(zāi)或類似火災(zāi)事件的地方。另外,光傳感器可以感知進(jìn)入房屋的光強(qiáng)度,如果光強(qiáng)度低于設(shè)定的閾值,房間窗簾會(huì)自動(dòng)打開,使光線進(jìn)入。雨水傳感器檢測(cè)到降雨后,可自動(dòng)開啟雨蓬以保護(hù)免受雨淋。PIR 運(yùn)動(dòng)傳感器有兩個(gè)作用,一個(gè)是安裝在房間的適當(dāng)位置實(shí)現(xiàn)自動(dòng)照明,當(dāng)它檢測(cè)到有運(yùn)動(dòng)物體時(shí)將自動(dòng)開啟照明;二是安裝在房屋入口處檢測(cè)房屋入侵情況,防止盜竊發(fā)生。此外,為了增加安全性,在所有可能的地方使用激光傳感器模塊進(jìn)行監(jiān)測(cè),并設(shè)置報(bào)警器,任何企圖破壞房屋的行為都能被輕易發(fā)現(xiàn)[5]。
每一個(gè)設(shè)備都與Arduino 微控制器連接,并通過跳線將其相應(yīng)的數(shù)字或引腳連接起來。Arduino板連接到一個(gè)Wi-Fi模塊(ESP32)上,它將接收來自基于云的交互式網(wǎng)絡(luò)界面,用于手動(dòng)控制所有硬件。
太陽能是一種可再生能源,該系統(tǒng)使用太陽能電池板為Arduino 系統(tǒng)供電。太陽能電池板可作為鋰離子電池的充電器和一個(gè)直流轉(zhuǎn)換器,為Arduino 提供所需的5 V 電壓,并有連接器用于電池輸入、輸出。一個(gè)迷你USB 端口和兩個(gè)太陽能電池板連接器(6 V 和12 V)用于給電池充電,迷你USB 接口可在需要時(shí)用任何外部電源為電池充電;一個(gè)太陽能電池板由6 V 電池組成,可以積累足夠的能量給電池充電。6 V 的太陽能電池板與太陽能板上相應(yīng)的6 V 輸入連接器連接,通過這樣的設(shè)置,并有足夠的陽光照射,太陽能電池板能夠?yàn)殡姵爻潆姟?/p>
本文設(shè)計(jì)并實(shí)施了一種低成本、高能效的智能家居自動(dòng)化系統(tǒng),該系統(tǒng)使用Arduino 和基于云的用戶界面?;谠频木W(wǎng)絡(luò)服務(wù)器進(jìn)行遠(yuǎn)程訪問,本地網(wǎng)絡(luò)服務(wù)器作為API,使用Wi-Fi 802.11n 標(biāo)準(zhǔn)作為通信媒介,任何有能力訪問互聯(lián)網(wǎng)的智能設(shè)備都可以訪問用戶界面。系統(tǒng)利用多種傳感器提供用戶認(rèn)證,提高了使用的安全性。