申志強 趙天翔

摘要:設計了基于阿里云的實時天氣狀況監測裝置,裝置由ESP32開發板、OLED顯示屏、DHT11溫濕度模塊、GY-30數字光強度模塊、UVI紫外線檢測模塊、YL-83雨水檢測模塊組成。裝置采集并監測設備周圍的實時環境數據,控制板調用各傳感器模塊采集周圍其他天氣數據,最后將采集到的天氣數據在本地使用OLED顯示屏顯示。同時通過ESP32內部集成的WiFi模塊連接網絡,可以使用便攜的網頁配網實現WiFi連接變更。最后使用MQTT協議上傳至阿里云端,配合移動端App實現便捷的實時天氣信息獲取。
關鍵詞:嵌入式;物聯網;基于阿里云;實時天氣;監測裝置
中圖分類號:TP302.1? ? ?文獻標識碼:A
文章編號:1009-3044(2021)36-0160-02
開放科學(資源服務)標識碼(OSID):
Design of Real-time Weather Condition Monitoring Device Based on Alicloud
SHEN Zhi-qiang, ZHAO Tian-xiang
(Nanyang Institute of Technology, Nanyang 473000, China)
Abstract: The real-time weather monitoring device based on Alicloud is designed. The device is composed of ESP32 development board, OLED display, DHT11 temperature and humidity module, GY-30 digital light intensity module, UVI ultraviolet detection module and YL-83 rain detection module. The device collects and monitors the real-time environmental data around the device. The control board calls each sensor module to collect other weather data around the device. Finally, the collected weather data is displayed on the local OLED display screen. At the same time, the WiFi module integrated in ESP32 is used to connect to the network, and the portable web distribution network can be used to realize the WiFi connection change. Finally, the MQTT protocol is used to upload to Alicloud, and the mobile App is used to achieve convenient real-time weather information acquisition.
Key words: embedded; internet of things; based on Alicloud; real-time weather; monitoring device
1 引言
隨著經濟發展和科技的進步,地球環境進行著復雜的變化。人們對于環境、氣象的關注度越來越高。對環境和氣候的監測成了一項重點的實際性問題研究,尤其是短時臨近氣候預報和區域氣候變化、波動的監測和預測研究[8]。針對目前免費泛用型天氣預報服務的非實時、不能精確監測于指定區域環境、穩定性不足等缺點以及應用于大型智能化生產用監測裝置的高成本、低靈活、配置繁雜等缺點,提出通過無線網絡的基于云端存儲的小型天氣監測裝置設計,為人們的生活、出行或是小型農業生產提供小區域實時準確的天氣信息[2]。
2 硬件設計
設計的目標是:實時天氣監測裝置需要實現可手動配網的網絡連接,能夠實時收集環境數據傳輸給阿里云平臺并通過移動App展示數據。實現更優人性化功能,包括簡單易懂的配網界面、自動連接歷史WiFi、可以脫離網絡等。移動App功能增強,包括主動定位、生活指數等。
選用ESP32開發板作為天氣監測裝置的主控制板,通過板載ESP32芯片的WiFi功能來連接網絡[3]。通過MQTT協議連接阿里云平臺,將天氣監測數據實時傳送給云平臺。主控制板調用溫濕度模塊采集范圍溫濕度數據,調用光強度、紫外線等模塊采集周圍其他天氣數據[4]。然后,將采集到的天氣數據在本地使用OLED顯示屏顯示。同時,通過網絡傳送給云平臺。最后,通過App展示云端數據。設計整體構架如圖1所示。
裝置整體組成以兩塊面板和四個可用螺絲固定的塑料螺母柱作為核心支撐件,以半透明塑料板作為外圍支撐件和底板,用熱熔膠連接固定各支撐件。
3 軟件設計
3.1 主控系統程序設計
主控系統程序設計流程為設備上電;連接WiFi;WiFi連接失敗開啟AP模式配置WiFi信息;連接WiFi成功后連接阿里云;阿里云連接成功后主控板獲取各傳感器數據;屏幕顯示數據;數據上報阿里云。
同時,在未連接上WiFi后系統也能成功進入數據展示界面,并提示未連接WiFi,此時如果手動配置連接上WiFi,系統可以在不發生主進程變動的情況下連接上阿里云通信[5]。
3.2 阿里云物聯網平臺設置
(1)注冊阿里云。
(2)打開“控制臺”->“物聯網平臺”->“公共實例”。
(3)打開左側工具欄中的“設備管理”->“產品”->“創建產品”。
(4)填寫產品名稱,下拉頁面,點擊“確認”后,點擊左側工具欄“設備管理”->“產品”選擇剛創建的產品點擊“查看”->“功能定義”->“編輯草稿”。
(5)“添加自定義功能”->“屬性”->點擊確認,并以此類推添加溫度、亮度、開關值、紫外線指數、雨水監測指數這些屬性類自定義功能。確認自定義功能數量和參數設置無誤后,點擊右上角的發布,后續可以點擊產品的編輯草稿再次發布以修改功能[6]。
(6)點擊“設備”->“添加設備”,選擇剛創建的產品,并設置DeviceName,點擊“確認”。至此,產品的物模型就建立完成了。
(7)記錄阿里云三元組(ProductKey,DeviceName,ProductSecret)。
(8)使用“阿里云物聯平臺配置工具”生成公共實例的接入域名。
(9)使用MQTT.fx進行連接阿里云通信調試,在MQTT Broker Profile Settings中的Broker Address欄填寫生成的連接域名,Broker Port默認1883,Client ID填寫生成的Clientid。在User Credentials中填寫阿里云物聯平臺配置工具生成的用戶名和密碼[7]。點擊OK,連接成功后顯示綠色提示圖標。
(10)測試屬性發布。云端接收到屬性上報,設備物模型數據對應改變則調試成功。
(11)測試訂閱設備屬性設置,改變幾項屬性參數,點擊調試后,在MQTT.fx的Subscribe欄能接收到阿里云的消息則為調試成功。
3.3 移動端App程序設計
打開App后,直接進入主界面,主界面分為三個部分。第一部分展示主溫度、天氣、空氣質量、時間和定位選擇器。第二部分展示濕度、光強度、紫外線指數和經過計算的體感溫度、降雨概率。第三部分展示通過和風天氣API和設置的定位信息獲取的生活指數。
4 集成測試
將編寫好的程序使用Arduino IDE編譯并燒寫入ESP32內部。然后將ESP32開發板安裝至正確的位置,使用USB電源線上電,發現開發板電源指示LED燈正常發光。打開Arduino IDE工具選項的串口監視器,按下ESP32開發板上的EN鍵重啟系統。能在串口監視器上看到正確的開發板系統重啟信息,并在8秒左右后提示開啟AP模式準備配網,顯示配網IP和設備MAC地址。
連接名為ESP32_Config的WiFi后在登錄IP地址為192.168.4.1的網頁配置調試用的WiFi網絡,點擊“連接”,系統自動進入連接WiFi模式并連接剛配置的調試WiFi,能在串口監視器上顯示連接上WiFi網絡和MQTT。
ESP32主控模塊功能調試正常后,將設備斷電,將所有傳感器模塊正確安裝后上電,能發現OLED顯示WiFi搜索動畫,DHT11溫濕度傳感器、YL-83雨水傳感器、工作LED燈正常亮起,在串口監視器能每隔兩秒發送一次各傳感器檢測的環境參數,即為硬件測試正常。
登錄阿里云平臺,打開“控制臺”->“物聯網平臺”->“公共實例”->“設備”,選擇“物模型數據”,在 “默認模塊”欄能看到各屬性數據,點擊實時刷新后就能看到實時刷新的天氣數據信息。
打開手機天氣App,進入主界面,點擊定位圖標,選擇當地的城市名。可以在App界面上看到實時溫度、天氣、實用的氣象信息數據以及人性化生活指數信息。數據能夠依據天氣監測裝置所處環境在云端和App上實時改變。
5 結束語
設計首先需要先清楚地完成對裝置整體結構組成的構思和梳理。將各可能使用到的傳感器模塊進行功能劃分和布局劃分,然后確定好需要使用到的各種元器件材料等,完成主控開發板和各傳感器模塊的設計。設計實現了天氣監測裝置的軟硬件設計、實時天氣數據監測以及云端以及App的通信。還有一些將來可以提高改進的功能,例如攝像頭掃描、深度睡眠、觸摸式開關、藍牙配網、模擬數據曲線圖輸出等[8]。
參考文獻:
[1] 夏中凱,葉泓麟.氣象為農服務中的短時臨近天氣預報的意義探究[J].南方農業,2020,14(35):158-159.
[2] 王麗娟,徐搏.淺談自動站與人工站的數據采集[J].農業開發與裝備,2014(9):103.
[3] 王浩.基于ESP32平臺和MQTT協議的遠程控制系統設計[J].軟件工程,2020,23(8):38-41.
[4] 鄭玲玲,張金,劉芳,等.基于LabVIEW和Arduino的溫濕度采集系統設計[J].中國科技信息,2021(6):81-83.
[5] 林倩.DHT11數字溫濕度傳感器通信協議的IO模擬[J].信息通信,2017,30(1):206-207.
[6] 李琳杰,趙偉博,齊鍇亮,等.基于阿里云的智能大棚遠程監控系統研究[J].自動化與儀表,2021,36(1):28-30,35.
[7] 孟麗榮,趙海天.基于MQTT協議的數據監測系統在設施農業中的應用[J].遼寧師專學報(自然科學版),2020,22(4):82-86.
[8] 劉紅欣,穆璐,李強,等.基于WAP端氣象產品設計與可視化研究[J].科技傳播,2020,12(2):124-125.
【通聯編輯:梁書】