ESP8266及物聯網技術分析

時間:2022-06-13 11:42:17

導語:ESP8266及物聯網技術分析一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

ESP8266及物聯網技術分析

摘要:基于esp8266模塊,以智能家居為例,對物聯網技術應用進行了研究和開發,構建了一種便捷可行的智能家居控制系統。ESP8266對室內溫度、濕度、人體等傳感器數據進行采集,通過WiFi將數據上傳到云平臺;移動端通過云平臺與ESP8266進行數據和指令交互,完成對家居的實時監控。研究結果表明,該系統能穩定實時地對室內家居設備進行智能控制和數據采集。

關鍵詞:物聯網;智能家居;傳感器;云平臺;智能控制

近年來,隨著互聯網和電子科學技術的迅猛發展,一種新型的網絡———物聯網應運而生。隨著我國物聯網的快速普及和發展,物聯網迅速被人們所廣泛接受并快速融入人們的生活和日常生產中。物聯網通過物品上的嵌入式設備采集、處理并發送周圍的環境數據,從而實現人與物、物與物之間的信息交流和數據交換。因此,物聯網形成了一個巨大的萬物互聯網絡。尤其在智能家居方面應用極為廣泛,將物聯網技術應用于智能家居的目的是將家庭中的電器和生活設施連接起來,實現視頻監控、智慧安防、智能照明、智能電器控制、智能門窗控制等功能[1]。用戶可以通過計算機、便攜式移動設備等實時對家庭燈光、窗簾、電器等進行遠程控制。物聯網技術的應用將為人們提供更加便捷的家居生活體驗[2],使人們的美好生活更加舒適、智能。

1系統總體設計

本設計的系統由傳感層、網絡層和應用層組成,其結構示意圖如圖1所示。其中:傳感層以ESP8266模塊為核心形成控制節點,其上裝有監控室內的環境傳感器;網絡層使用家庭路由器組網并使用MQTT協議通信;應用層以阿里云物聯網平臺作為整個系統的服務器,由移動端開發的應用服務程序能跨平臺展示和控制系統信息[3]。系統的工作流程如下:控制節點通過各種家用傳感器采集數據,經家用路由器傳輸到消息隊列遙測傳輸(MessageQueuingTelemetryTransport,MQTT)服務器;MQTT服務器將數據整理后發送到移動應用端;移動端將控制指令經服務器轉發給控制節點,進而實現用戶隨時隨地對家居設備進行監控。

2系統硬件設計

2.1控制節點結構設計

系統的控制節點主要包括ESP8266模塊、輸入輸出接口、供電電源三大部分。ESP8266是一個無線傳輸模塊,以低成本提供最大的實用性。輸入輸出部分主要包括DHT11溫濕度傳感器模塊、繼電器模塊和OLED顯示屏模塊。供電部分采用UPS供電,使用鋰電池和USB接口以保證節點一直運行??刂乒濣c硬件結構圖如圖2所示。

2.2控制節點原理圖設計

控制節點的核心是ESP8266模塊。它是一個完整且自成體系的WiFi解決方案,能夠獨立運行,具有單獨的編程功能,不依靠單片機,可直接將程序寫入模塊內,因而整體質量輕巧,攜帶方便。同時內置高速緩沖存儲器以利于提高系統性能,并減少內存需求,具有最高160MHz主頻,使用UART0串口作為下載程序接口??刂乒濣c將外設資源對應的IO引出,包括4路IO控制輸出:溫濕度傳感器、人體傳感器、電源電壓、OLED的I2C接口。ESP8266原理圖如圖3所示。ESP8266模塊使用3.3V供電電源,通過TP4056芯片給鋰電池充電。在USB掉電情況下,系統可切換實行鋰電池供電。鋰電池通過AMA1117-3.3穩定地輸出3.3V電壓,確保系統持續工作。

3系統軟件設計

3.1服務器軟件設計

服務器采用MQTT服務器,其作用是接收控制節點和應用端的數據,將這些數據流匯總并進行可視化顯示和操作,以保證智能家居系統傳感網正常工作和方便用戶登錄服務器查看所連接的設備并進行管理。MQTT是一種基于發布/訂閱范式的“輕量級”消息協議,其最大優點在于可以用極少的代碼和有限的帶寬為連接到的遠程設備提供實時可靠的消息服務。作為一種低開銷、低帶寬占用的即時通信協議,MQTT在物聯網、小型設備、移動應用等方面得到了廣泛應用。MQTT協議有3種身份:發布者(Publish)、代理(Broker)和訂閱者(Subscribe)。如圖4所示,在本系統中,消息的發布者和訂閱者是各控制節點,消息代理是云控制臺,消息的發布者同時也可以是消息的訂閱者。

3.2控制節點軟件設計

控制節點首先進行服務器連接,ESP8266上電后,初始化UART、I2C等外設,從EPROM中讀取要連接的WiFi賬號和密碼并進行WiFi聯網,連接完成后創建MQTT客戶端,連接MQTT服務器,并開始訂閱和發布與其連接的傳感器相關的主題和消息。若連接WiFi未成功,則進入SmartConfig模式,等待用戶使用SmartConfig配網,從而重新連接WiFi[4]。其運行流程圖如圖5所示??刂乒濣c連接MQTT服務器,將節點的傳感器數據和繼電器狀態信息打包成JSON數據包,并向服務器發送該數據包,同時更新OLED顯示屏顯示相應的傳感器數據。當服務器發現某個節點訂閱的主題有數據變化時,會將數據包發送給該節點,經過解析后,執行相應的指令,并更新OLED屏顯示的圖標和文字信息,完成服務器與節點之間的消息通信,實現服務器與節點之間的控制與數據處理。MQTT數據發送接收流程圖如圖6所示。

3.3移動應用端軟件設計

移動端應用使用Android開發,可以實現實時遠程監控室內環境數據。界面有顯示溫濕度、人體數據的文本框,自動或手動單選按鈕和繼電器的控制開關按鈕。移動端連接服務器后,訂閱消息并收到訂閱的消息;解析JSON數據包,將溫濕度、人體信息顯示在相應的文本框內,并更新繼電器相應控制按鈕的狀態。移動端默認控制模式是自動模式。在此模式下,用戶不能對按鈕進行控制,當切換到手動模式后,點擊繼電器控制按鈕,移動端將向服務器發送控制指令,在控制的同時,也會發送按鈕狀態更新指令,服務器接收到指令后,將會更新界面上的按鈕顯示狀態,以達到硬件的實際工作狀態與控制界面顯示一致的效果,從而對相應設備進行遠程控制[5]。移動端設計流程圖如圖7所示。

4系統調試

4.1系統控制節點調試

如圖8所示,ESP8266模塊作為控制節點的“大腦”位于右下角,上方使用繼電器控制家居設備,左邊OLED屏顯示環境狀態信息,再向左為溫濕度傳感器,最左邊是3.3V穩壓模塊。其中,ESP8266模塊的IO0和IO1管腳為傳感器輸入的AD值。另外,在上位機(移動端)上顯示了溫濕度信息、本地實時天氣信息及時間信息??刂乒濣c連接到阿里云MQTT服務器上,把節點的狀態信息上傳到服務器,同時指示燈由閃爍變為常亮。

4.2系統服務器調試

MQTT服務器還能通過后臺管理界面對連入的節點、設備的數據進行整理和展示。圖9顯示的客戶端分別有3個控制節點和1個移動設備成功接入,之后可以進行數據統計和分析。

4.3系統移動應用端調試

如圖10所示,移動設備作為MQTT客戶端連接到MQTT服務器上,選擇要訂閱系統中其他設備和節點(圖中名為“智能家居”的設備),即可獲取其監測到的數據。如圖11所示,該頁面成功地獲取并顯示控制節點溫濕度的數值和人體傳感器的狀態數據。上面兩個狀態按鈕可以控制位于控制節點上的繼電器的開關狀態。

5結語

初步的調試運行結果表明:本設計的基于物聯網的智能裝置能夠較好地完成對家居設備的控制任務,其所要實現的功能是可行的。后期,設計者們還將針對其他家居的智能化處理、智能化故障診斷以及檢測精度的提升等進行更為深入的研究。

參考文獻:

[1]王飛.物聯網技術在智能家居系統中的應用分析[J].信息通信,2018(1):148-150.

[2]錢烺,羅小娟,宋璐璐,等.基于物聯網的智能家居安防監控系統設計[J].物聯網技術,2021,11(3):28-30.

[3]吳思楠,基于物聯網的智能家居控制系統設計與實現[D].揚州:揚州大學,2016.

[4]毛浩龍,艾紅.基于ESP32的智能家居項目設計與實現[J].工業儀表與自動化裝置,2021(2):126-130.

[5]黃興,李文金,蘇凱雄.一種基于安卓與云平臺的智能家居系統設計[J].電腦知識與技術,2021,17(7):5-8.

作者:張恒強 安霆 王乙涵 胡傲 劉文靜 單位:臨沂大學自動化與電氣工程學院