余云飛,朱得元,章 平
(1.蕪湖職業技術學院電氣工程學院,安徽蕪湖241006;2.安徽工程大學計算機與信息學院,安徽蕪湖241000)
隨著網絡技術、人工智能、傳感器技術的發展,輔以安防和人性化功能需求的智能家居逐步受到家庭用戶的喜愛,迎來新的發展機遇。物聯網的出現使智能家居系統功能更加個性化,可實現對家電的遠程控制、安防監控等,為家居生活提供全方位的信息交互和資源共享功能。目前國內外關于智能家居的研究及技術解決方案層出不窮。文獻[1-2]利用協議棧Z-Stack技術,采用無線模塊進行開發。但當節點數量較多、環境復雜時,難以實現節點的精確定位。文獻[3]采用基于BP神經網絡的PID控制算法進行仿真分析,當測量與理想值有偏差時,PLC就會命令相關的執行器動作。在文獻[4-5]中以STM 32微控制器為核心,通過手機和紅外遙控作為家居控制終端,數據通信采用藍牙技術,受控終端接收到紅外指令后執行指定的操作,系統功能較為單一。文獻[6]以智能家居系統的ARRM為核心,以Cortex微控制器通過nRF24L01射頻模塊與終端設備進行數據通信,再通過以太網模塊與Internet連接,實現智能家居的遠程控制。以上智能家居系統的無線控制設計方案總體結構兼容性不強,不能滿足多種模式的信息傳輸需求。本文主要利用交互式可擴展的開源硬件平臺Arduino[7],以及多種配套傳感器,配合使用范圍最廣的Android手機操作系統,搭建個性化的家居中控平臺,利用智能手機對智能家居進行控制。
系統整體架構如圖1所示。系統分為Arduino數據采集端和移動端兩塊。系統采用的開發板是Arduino UNOR3,主控微處理器型號是ATmega328p。Arduino數據采集主要包括Arduino交互式硬件平臺和可擴展硬件;移動端層面主要是移動智能手機端上的微信公眾號和小程序以及Web端的開發使用。
控制程序采用Arduino IDE軟件編寫。Arduino IDE具有良好的跨平臺兼容性,可以分別在W indows、Macintosh OSX和Linux等多操作系統運行。應用層開發借助貝殼物聯網云平臺來實現,用戶可通過USB接口上傳至存儲器中,直接進行編程和通信。
對ESP8266進行透傳設置,使用USB轉TTL模塊的外接引腳與ESP8266相連,如圖2所示。通過串口助手進行固件燒寫,完成透傳設置固件腳本后,重啟,自動進入透傳模式,連接無線網并登錄貝殼物聯服務器。
智能控制系統涉及的傳感器較多,其軟件子系統流程也較為復雜,具體流程:當載有多種傳感器模塊電路的Arduino控制板采集到環境變量參數后,通過ESP8266W i-Fi模塊實時上傳。智能家居系統根據用戶的實際需要,由系統主控制板進行實時信號處理,用戶在手機Android客戶端可以清晰了解當前房屋信息。傳感器數據與云平臺通信流程圖如圖3所示。ESP8266芯片采用電源管理技術由邏輯系統降低非必需功耗,在特定需要時可通過編程進行自動喚醒[8]。

圖1 系統整體架構圖

圖2 ESP8266Wi-Fi模塊硬件連接圖

圖3 傳感器數據與云平臺通信流程圖
設計中利用Arduino開發板和傳感器等模塊搭建的硬件平臺子系統主要有溫濕度控制系統、火情監控系統、煙霧監控系統。
(1)系統電源供電。電路中采用AMS1117-5和LP2985兩款電源管理芯片,固定輸出電壓調制器工作電路如圖4上方所示,LP2985電源電路的輸入電壓為+5 V,輸出電壓為+3.3 V,用來給數字電路部分提供+3.3 V電壓,如ESP8266模塊。AMS1117-5封裝為SOT223,為+5 V穩壓塊。Arduino UNO采用了ATmega16U2單片機來提供USB轉串口功能,芯片內置Boot-Loader功能。
(2)溫濕度控制系統及Web端測試。圖4是基于Arduino和ESP8266設計的溫濕度控制系統。電路中溫濕度傳感器[9]采用DHT11。當系統初始化時,單片機ATmega328P的PB2腳高電平,三極管Q1截止。當超過設定溫濕度值時,聲光報警,PNP三極管Q1的基極為低電平,U4繼電器HK4100F-DC5V的線圈得電,動合觸點閉合,此時外接風扇轉動,進行抽濕降溫。溫濕度控制系統實物圖如圖5所示。
登錄進入貝殼物聯網站后,進入使用界面。添加智能設備并進行信息標注,系統自動生成一個“ID”和一個“APIKEY”,程序代碼中須將“SSID”改為自己設備的“ID”,“APIKEY”改為自己設備的“APIKEY”,系統根據這兩個關鍵的信息來識別設備。代碼燒寫成功經ESP8266上傳后,可看到平臺界面主要包括智能設備、數據接口、報警提示內容。圖6數據接口一覽表中,“在線狀態”一列中可看到當前“在線”的自主設備,表示溫濕度監測設備已經連接上貝殼物聯,之后便可以通過設備對話界面對設備進行操控。如果想在移動端查看外接傳感器的數據,可以添加數據接口,系統會自動生成相應的接口“ID”號。連接好電路,通過Arduino IDE,重新燒寫代碼經ESP8266上傳后,在“控制模式”選擇“圖表”,這樣就可以實時查看連接上貝殼物聯新添加的接口數據。
(3)室內火情監控系統及Web端測試。采用火焰傳感器及煙霧氣體傳感器MQ135來監測火情,顯示器為0.96英寸黃藍雙色OLED屏。OLED屏控制芯片是SSD1306,它采用IIC接口,電源VCC兼容+3.3 V,其兩根數據線SCL、SDA分別接Arduino板上ATmega328P芯片的15腳、14腳。火情監控系統電路實物如圖7(a)、(b)所示。煙霧氣體傳感器MQ135與火焰傳感器模擬輸出口分別接到Arduino開發板的模擬端口A0和A1[10]。檢測到火焰時,輸出信號的電壓會迅速升高[11],當超過設定閾值,則繼電器的線圈得電,控制高速風扇等執行元件進行滅火。用戶還能及時收到報警的提示信息,體現人性化的終端設計。系統編譯成功后,也可在IDE點擊串口監視器,查看COM口端的模擬數據輸出。

圖4 系統電路原理圖

圖5 溫濕度控制系統實物圖

圖6 智能設備及數據接口一覽表

圖7 火情監控系統電路圖
(4)微信端及手機App測試。平臺可以關聯微信小程序,進行微信接口測試,綁定用戶信息,按照平臺要求輸入相應命令,測試通過。它還可以與Web端同步,登錄系統后,同樣能實現對傳感器數據的查看和對傳感器的遠程控制。在Android手機上安裝貝殼物聯App,綁定相應信息,登錄后,打開手機設置的網絡熱點,添加完設備及接口后,ESP8266的Wi-Fi模塊上傳數據到服務器,采集到的數據以數字或者折線圖形式直觀地展現出來。手機上可看到相應設備連接情況,如圖8所示。點擊連接的設備,可查看兩個接口對應的傳感器數據,如圖9所示。點擊火焰強度接口,可查看實時數據,如圖10所示。系統設置火情報警,當發生火災時,系統可通過QQ郵箱或微博將警報信息發送給用戶,并及時采取措施處理。

圖8 手機上設備連接情況

圖9 接口對應的傳感器數據

圖10 火焰傳感器數據
本文提出了以Arduino為基礎的多終端智能云端家居設計。通過對多種傳感器采集的數據進行處理,實現感知和掌控周圍環境;同時通過網站和手機的移動終端實現對在線設備的及時控制。在系統開啟運行后,Arduino開發板將通過傳感器實時監測數據,同時通過ESP8266W i-Fi模塊實時將數據信息發送給云平臺。由于采用開源環境,系統的搭建過程簡單快捷,穩定性及效果可達到商用系統。系統利用Wi-Fi無線通信技術,免去了傳統的智能家居的復雜布線,解決了設備接口兼容性差的問題。今后還將探索更強大的Wi-Fi模塊,實現一對多傳感器數據的處理。