黨長青,陳昌盛,周恒
(貴州大學電氣工程學院,貴州貴陽,550025)
物聯網技術的快速發展,使得智能家居遍地開花,所以在實驗室搭建一個基于物聯網的智能家居實驗技術平臺供學生實驗研究顯得異常的重要。本系統將結合ATMEGA 2560-16AU開發板與ESP8266Wifi模塊搭建一個簡單實用、使用方便、價格低廉、便于擴展的智能家居實驗平臺,方便學生通過智能家居實驗平臺感受互聯網的發展對人們日常生活的沖擊,也便于教師的實驗教學。
本實驗技術平臺主要由DHT11溫濕度傳感器模塊、BH1750光照強度傳感器模塊、土壤濕度傳感器模塊、水位傳感器模塊、煙霧濃度傳感器模塊、OLED顯示模塊、ESP8266WiFi無線傳輸模塊、控制器與處理器模塊、繼電器模塊、電機模塊以及YS-M3語音播放模塊構成[1]。該實驗平臺以Arduino MEGA2560單片機作為核心控制器,通過上述傳感器模塊對家居環境參數進行采集,然后通過Arduino單片機的AD模塊對傳感器采集的模擬量數據進行數據轉換,其中將土壤濕度、光照強度、蓄水池液位以及環境溫濕度等重要環境數據通過顯示模塊進行數據顯示,以便用戶更加直觀的觀察到家居環境的實時數據。同時通過ESP8266Wifi模塊將采集到的傳感器數據上報至云端服務器,服務器再將傳感器所采集到的相關數據轉發給客戶端,客戶端接收到云端服務器發送的狀態信息后更新相關數據并通過本文設計的手機APP平臺進行顯示。當傳感器檢測到的數據低于所設定閾值時,語音播放模塊將會播放報警信息,實現現場報警;同時Arduino單片機將該警告信息通過ESP8266WIFI模塊及機智云服務器發送至Android客戶端進行顯示,實現遠程報警。該智能家居實驗技術平臺能夠實現對智能設備的遠程操作控制,便于實驗室教師開展各類相關的實驗教學,實用性價值比較高。
智能家居控制系統硬件系統框圖如圖1所示,該控制系統以ATMEGA2560-16UA芯片為核心處理器,通過各個傳感器對環境參數進行檢測。將傳感器輸出的電信號接入單片機的A/D轉換模塊,轉換成單片機能夠處理的數字信號然后再通過單片機進行處理。Arduino單片機將各個傳感器數據進行中值濾波后將部分數據進行歸一化處理,然后通過ESP8266WIFI模塊發送至機智云服務器,并將部分重要參數值發送至OLED顯示屏進行顯示。

圖1 智能家居實驗技術平臺硬件系統框圖
2.2.1 MCU選擇
由于本設計中使用了多個傳感器,而ArduinoMega2560核心板具有多個IO接口正好滿足本設計對多個IO口的需求,因此本設計選擇ArduinoMega2560作為本系統的核心控制板。ArduinoMega2560核心板如圖2所示。

圖2 ArduinoMega2560核心板
2.2.2 WIFI模塊選擇
WIFI模塊選擇ESP8266WIFI模塊。這款芯片使用3.3V的直流電源,體積小,功耗低,支持透傳,數據收發穩定。ESP8266可以通過AT命令來設置芯片的大部分參數和設置為透傳模式[2]。ESP8266也可以采集一些溫濕度傳感器的數據,然后發送到互聯網上。ESP8266模塊如圖3所示。

圖3 ESP8266模塊
本設計配置網絡時使用的是SmartConfig模式,采用UDP廣播模式(UDP接收IP地址是255.255.255.255)ESP8266WIFI模塊先掃描所在環境的AP(AccessPoint),得到AP的相關信息,如工作的channel,然后配置wifi芯片工作在剛才掃描到的channel上去接收UDP包,如果沒有接收到相應的UDP包,則繼續配置ESP8266工作在另外的channel上,如此往復循環,直到收到UDP包為止。
2.2.3 OLED屏幕的選擇
本設計中只需查看部分重要數據,選擇0.96寸OLED顯示屏足以滿足需求。
2.2.4 語音模塊
YS-M3模塊具備9個觸發口,其觸發方式為低電平觸發。為了更方便的實現語音播報的功能,本設計選擇單片機的IO口觸發。以A1-A5為編碼端口、二進制的反碼進行編碼。編碼格式如表1所示。

表1 語音模塊編碼方式
根據以上表格的輸出形式,0代表輸出低電平,1代表輸出高電平,在單片機IO口輸出編碼后,等待200ms以上恢復默認值(高電平),即可進行播放語音。主控板收到手機APP的指令之后,語音模塊會同時播報手機發送的指令,用于提醒用戶。其部分實現代碼如下:


2.2.5 穩壓電路設計
該智能家居實驗技術平臺整體采用7.2V鋰電池供電,而OLED顯示模塊、ESP8266WiFi模塊均采用 3.3V電源進行供電。傳感器以及單片機最小系統需采用5V電源供電。因此需進行穩壓電路設計將7.2V的電源通過相應的穩壓芯片降至本系統所需的5V以及3.3V電源。在穩壓電路設計中本設計采用LM1117-3.3、LM1117-5.0和TPS7350穩壓芯片對電源電壓進行降壓處理,降至3.3V和5V,考慮到穩壓芯片在進行降壓處理后會有較大的紋波,因此在設計電路時采用10μF的電解電容濾除低頻信號,采用0.1μF的瓷片電容濾除高頻信號,對穩壓芯片輸出的電壓進行濾波處理,得到一個穩定的直流電源。其電路設計如圖4所示。

圖4 穩壓電路設計
該智能家居實驗技術平臺的軟件設計步驟主要有:(1)控制器通過傳感器對環境參數的采集和處理;(2)控制器采集處理后的家居環境數據發送至OLED顯示;(3)控制系統配置入網;(4)控制器通過ESP8266WiFi模塊上報數據;
(5)接收客戶端下發的控制命令并執行相應的操作[3]。
智能家居實驗技術平臺的主程序流程圖如圖5所示。

圖5 智能家居實驗技術平臺程序流程圖
智能家居實驗技術平臺配網流程圖如圖6所示。

圖6 智能家居實驗技術平臺配網流程圖
將各個模塊通電,智能家居控制系統配置入網,連接機智云服務器。打開Android客戶端應用程序便可查看相關傳感器檢測到的環境參數值,同時OLED顯示屏也會顯示當前數據。如圖7、8所示,分別為手機APP顯示的各個傳感器參數值和OLED顯示屏顯示的重要參數值;如圖7所示,通過Android客戶端應用程序還可實現對家居設備的控制,當傳感器檢測到的環境參數小于所設定的閾值時,在Android客戶端應用程序還可查看到相關警告信息,如圖9所示。

圖7 手機APP顯示各個傳感器檢測到的數值

圖9 警告信息顯示
本智能家居實驗技術平臺將Arduino單片機通過WiFi模塊和物聯網結合起來,設計了一個能夠通過Android客戶端應用程序實時監測花盆的土壤濕度、室內環境溫濕度、煙霧濃度、光照強度,并且能夠遠程控制家居設備的實驗平臺。本實驗技術平臺可以實現數據的可視化、智能化,可以滿足不同用戶的客戶體驗。

圖8 OLED顯示的重要環境參數值