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