基于 Arduino 與 OneNET 云平臺的簡易智能家居系統(tǒng)設計
引 言
目前,智能家居的研究主要以搭載 STM32 芯片 [1] 的硬件設備為中心控制器。同時,智能家居云平臺大都建立在YeeLink 云 [2] 上, 而對于基于 OneNET 云平臺 [3] 的研究仍然相對較少??紤]到成本和操作簡易程度等方面的因素,本文以 Arduino 單片機 [4] 為中心控制器設計系統(tǒng),將 OneNET 作為數(shù)據(jù)處理平臺,該程序能夠跨平臺運行,具有較好的開放性。
1 系統(tǒng)總體設計
本文智能家居系統(tǒng)以 Arduino Sensor Sheild V2.0 單片機為主控模塊,各類傳感器作為數(shù)據(jù)采集模塊,在單片機中處理數(shù)據(jù)后經(jīng)ESP8266 無線模塊發(fā)送至OneNET 云平臺進行數(shù)據(jù)處理,以 Android 的智能手機作為 APP 的展現(xiàn)平臺。具體系統(tǒng)結構如圖 1 所示。
圖 1 簡易智能家居系統(tǒng)結構
系統(tǒng)主要包括四個部分。
(1) 數(shù)據(jù)采集。該部分主要依靠各類傳感器(如溫濕度傳感器、煙霧傳感器等)采集環(huán)境數(shù)據(jù),同時將采集到的數(shù)據(jù)傳輸?shù)脚c之相連的單片機中。
(2)云平臺數(shù)據(jù)傳輸。單片機將采集到的數(shù)據(jù)進行處理,同時向 OneNET傳輸數(shù)據(jù),在云平臺中可以控制已經(jīng)搭載的模塊。
(3)APP。手機通過與無線模塊 ESP8266 相連,接收到網(wǎng)站傳來的數(shù)據(jù),將其顯示在 APP 上。
(4)指令執(zhí)行。在接收到指令數(shù)據(jù)時對傳感器或相應的模塊進行操作。
2 系統(tǒng)硬件設計
2.1 Arduino Sensor SheildV2.0
Arduino Sensor Shield V2.0 專用傳感器擴展板集市面上各種擴展板優(yōu)點于一體,采用 PCB 沉金工藝加工,主板不僅將全部數(shù)字與模擬接口以舵機線序形式擴展出來,還特設藍牙模塊通信接口、SD 卡模塊通信接口、APC220 無線射頻模塊通信接口,以及 RB URF V1.1 超聲波傳感器接口,獨立擴出,更加易用方便。在本文系統(tǒng)中作為中心處理器,連接LED、繼電器模塊、煙霧傳感器、紅外傳感器、溫濕度傳感器、ESP8266、LCD 顯示模塊。各類傳感器實時采集數(shù)據(jù),單片機將處理好的數(shù)據(jù)傳輸?shù)?OneNET 云平臺上處理,由其返回控制信號從而控制相應的傳感器或其他模塊。
2.2 溫濕度傳感器 DHT11
DHT11 數(shù)字溫濕度傳感器是一款含有已校準數(shù)字信號輸出的溫濕度復合傳感器。傳感器上電后要等待 1 s,以越過不穩(wěn)定狀態(tài),在此期間無需發(fā)送任何指令 [5]。庫文件中擁有非常完善的函數(shù)控制塊,可以非常方便地采集到當前室內的溫濕度信息,免去了手動解析的麻煩,并且修改起來也非常方便。
2.3 紅外傳感器
本文系統(tǒng)選用 HC-SR501 熱釋電紅外傳感器,采用可重復觸發(fā)的工作方式(即感應輸出高電平后,在延時時間段內, 如果有人體在其感應范圍活動,其輸出將一直保持高電平, 直到人離開后才延時將高電平變?yōu)榈碗娖剑?,具有感應封鎖時間等特點 [6]。當感應到有人經(jīng)過時向單片機傳輸信號,再由單片機控制蜂鳴器報警。
2.4 煙霧傳感器 MQ-2
MQ-2 型煙霧傳感器是多種氣體探測器,探測范圍極其廣泛,具有靈敏度高、響應快、穩(wěn)定性好、壽命長、驅動電路簡單等優(yōu)點 [7]。在本文系統(tǒng)中,MQ-2 煙霧傳感器主要用于測量各種氣體的總閾值,當有害氣體達到一定濃度時才會進行蜂鳴報警。
2.5 繼電器模塊和 LED 燈
繼電器模塊的作用是傳遞信號或同時控制多個電路,也可直接控制小容量電動機或其他電氣執(zhí)行元件 [8]。
發(fā)光二極管(Light Emitting Diode,LED)是一種能夠將電能轉化為可見光的固態(tài)半導體器件,它可以直接把電轉化為光 [9]。
這兩個模塊都可以在手機APP 上進行控制,由 OneNET 網(wǎng)站發(fā)送控制指令,單片機在接收到數(shù)據(jù)以后,經(jīng)過解析, 判斷控制信號,從而控制這兩個模塊。在家用的情況下,用手機遠程控制這些小型模塊非常方便。
2.6 ESP8266
ESP8266是由上海樂鑫信息科技有限公司開發(fā)的集成無線芯片,支持二次開發(fā),具有超高的性價比。目前多家廠商在做 ESP8266 芯片的開發(fā)與服務工作,且其服務已經(jīng)較為全面,利于開發(fā)者以較低的成本開發(fā)出個性的智能產品,因價格較低、性能穩(wěn)定等受到較大關注 [10]。該芯片可工作于 AP 模式、Station 模式以及混合模式,本文系統(tǒng)中利用 AT指令進行控制,使用 ESP8266的 Station模式,ESP8266模塊連接到由接入點建立的WiFi網(wǎng)絡,用于向OneNET云平臺傳輸、接收數(shù)據(jù)。
3 系統(tǒng)軟件設計
3.1 系統(tǒng)流程
Arduino Sensor Sheild V2.0 通過串口發(fā)送 AT 指令來控制ESP8266 WiFi 模塊的各項操作。模塊在開機啟動后自動搜索附近網(wǎng)絡,搜索到對應的在程序中定義過名稱和密碼的網(wǎng)絡后進行連接,連接上 WiFi 后,與 OneNET 網(wǎng)站進行TCP 連接, 將傳感器采集到的數(shù)據(jù)進行打包及 JSON 數(shù)據(jù)格式化后發(fā)送至 OneNET 網(wǎng)站。OneNET 網(wǎng)站將上傳的數(shù)據(jù)進行可視化處理,且添加了發(fā)送控制指令的功能,單片機接收到控制指令的同時控制模塊進行響應。系統(tǒng)初始化如圖 2 所示。
3.2 數(shù)據(jù)流程
(1) 使用 DHT11溫濕度傳感器的庫 <dht11.h>,讀取溫濕度值。
(2) 使用定時器 <TimerOne.h>庫監(jiān)控 AT指令發(fā)送和獲取返回數(shù)據(jù)的時間。
(3) 使 用 OneNET提 供 的 <HttpPacket.h>庫, 合 成POST 請求的HTTP 頭。
(5)使用 ESP8266 連接路由器,將數(shù)據(jù)發(fā)送到 OneNET服務器。
傳感器數(shù)據(jù)上傳流程如圖 3 所示。
4 系統(tǒng)測試結果
首先將單片機與 PC 機用數(shù)據(jù)線相連,然后打開手機熱點,設定好熱點名稱與密碼,連接成功后,在程序中設定延遲500 ms發(fā)送一次數(shù)據(jù),因此單片機每500 ms更新一次數(shù)據(jù),并將數(shù)據(jù)上傳至 OneNET 云平臺,同時 APP 同步更新數(shù)據(jù)。 將 LED 與繼電器開關打向 OFF,由于網(wǎng)絡的傳輸造成一定的時間延遲(約為 3 s),單片機上的 LED 燈熄滅且繼電器紅燈亮起表示已經(jīng)關閉。同樣,打開開關,發(fā)現(xiàn)單片機上的LED 燈亮起,且繼電器上的綠燈亮起表示繼電器已經(jīng)打開。開關關閉如圖 4 所示,LED 燈和繼電器關閉如圖 5 所示,開關打開如圖 6 所示,LED 燈和繼電器開啟如圖 7 所示。
連接至 Arduino 主控模塊的各類硬件外設如圖 8 所示, 從左到右分別是 MQ-2 煙霧傳感器,ESP8266,DHT11 溫濕度傳感器、人體紅外傳感器。
圖 8 連接至 Arduino 主控模塊的各類硬件外設
5 結 語
從實驗的測試結果來看,本文所設計的系統(tǒng)能夠實時監(jiān)控室內的各項指標,并且能夠通過紅外傳感器、溫濕度傳感器、煙霧傳感器等獲取數(shù)據(jù),實時傳輸?shù)?APP 上。用戶可以通過 APP 上可視化的數(shù)據(jù)查看室內狀況。該系統(tǒng)結構簡單, 數(shù)據(jù)查詢方便,具有一定的可擴展性,可以實現(xiàn)基本的智能家居環(huán)境監(jiān)測功能和簡單的控制功能。