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