申志強 趙天翔

摘要:設(shè)計了基于阿里云的實時天氣狀況監(jiān)測裝置,裝置由ESP32開發(fā)板、OLED顯示屏、DHT11溫濕度模塊、GY-30數(shù)字光強度模塊、UVI紫外線檢測模塊、YL-83雨水檢測模塊組成。裝置采集并監(jiān)測設(shè)備周圍的實時環(huán)境數(shù)據(jù),控制板調(diào)用各傳感器模塊采集周圍其他天氣數(shù)據(jù),最后將采集到的天氣數(shù)據(jù)在本地使用OLED顯示屏顯示。同時通過ESP32內(nèi)部集成的WiFi模塊連接網(wǎng)絡(luò),可以使用便攜的網(wǎng)頁配網(wǎng)實現(xiàn)WiFi連接變更。最后使用MQTT協(xié)議上傳至阿里云端,配合移動端App實現(xiàn)便捷的實時天氣信息獲取。
關(guān)鍵詞:嵌入式;物聯(lián)網(wǎng);基于阿里云;實時天氣;監(jiān)測裝置
中圖分類號:TP302.1? ? ?文獻標(biāo)識碼:A
文章編號:1009-3044(2021)36-0160-02
開放科學(xué)(資源服務(wù))標(biāo)識碼(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 引言
隨著經(jīng)濟發(fā)展和科技的進步,地球環(huán)境進行著復(fù)雜的變化。人們對于環(huán)境、氣象的關(guān)注度越來越高。對環(huán)境和氣候的監(jiān)測成了一項重點的實際性問題研究,尤其是短時臨近氣候預(yù)報和區(qū)域氣候變化、波動的監(jiān)測和預(yù)測研究[8]。針對目前免費泛用型天氣預(yù)報服務(wù)的非實時、不能精確監(jiān)測于指定區(qū)域環(huán)境、穩(wěn)定性不足等缺點以及應(yīng)用于大型智能化生產(chǎn)用監(jiān)測裝置的高成本、低靈活、配置繁雜等缺點,提出通過無線網(wǎng)絡(luò)的基于云端存儲的小型天氣監(jiān)測裝置設(shè)計,為人們的生活、出行或是小型農(nóng)業(yè)生產(chǎn)提供小區(qū)域?qū)崟r準(zhǔn)確的天氣信息[2]。
2 硬件設(shè)計
設(shè)計的目標(biāo)是:實時天氣監(jiān)測裝置需要實現(xiàn)可手動配網(wǎng)的網(wǎng)絡(luò)連接,能夠?qū)崟r收集環(huán)境數(shù)據(jù)傳輸給阿里云平臺并通過移動App展示數(shù)據(jù)。實現(xiàn)更優(yōu)人性化功能,包括簡單易懂的配網(wǎng)界面、自動連接歷史WiFi、可以脫離網(wǎng)絡(luò)等。移動App功能增強,包括主動定位、生活指數(shù)等。
選用ESP32開發(fā)板作為天氣監(jiān)測裝置的主控制板,通過板載ESP32芯片的WiFi功能來連接網(wǎng)絡(luò)[3]。通過MQTT協(xié)議連接阿里云平臺,將天氣監(jiān)測數(shù)據(jù)實時傳送給云平臺。主控制板調(diào)用溫濕度模塊采集范圍溫濕度數(shù)據(jù),調(diào)用光強度、紫外線等模塊采集周圍其他天氣數(shù)據(jù)[4]。然后,將采集到的天氣數(shù)據(jù)在本地使用OLED顯示屏顯示。同時,通過網(wǎng)絡(luò)傳送給云平臺。最后,通過App展示云端數(shù)據(jù)。設(shè)計整體構(gòu)架如圖1所示。
裝置整體組成以兩塊面板和四個可用螺絲固定的塑料螺母柱作為核心支撐件,以半透明塑料板作為外圍支撐件和底板,用熱熔膠連接固定各支撐件。
3 軟件設(shè)計
3.1 主控系統(tǒng)程序設(shè)計
主控系統(tǒng)程序設(shè)計流程為設(shè)備上電;連接WiFi;WiFi連接失敗開啟AP模式配置WiFi信息;連接WiFi成功后連接阿里云;阿里云連接成功后主控板獲取各傳感器數(shù)據(jù);屏幕顯示數(shù)據(jù);數(shù)據(jù)上報阿里云。
同時,在未連接上WiFi后系統(tǒng)也能成功進入數(shù)據(jù)展示界面,并提示未連接WiFi,此時如果手動配置連接上WiFi,系統(tǒng)可以在不發(fā)生主進程變動的情況下連接上阿里云通信[5]。
3.2 阿里云物聯(lián)網(wǎng)平臺設(shè)置
(1)注冊阿里云。
(2)打開“控制臺”->“物聯(lián)網(wǎng)平臺”->“公共實例”。
(3)打開左側(cè)工具欄中的“設(shè)備管理”->“產(chǎn)品”->“創(chuàng)建產(chǎn)品”。
(4)填寫產(chǎn)品名稱,下拉頁面,點擊“確認”后,點擊左側(cè)工具欄“設(shè)備管理”->“產(chǎn)品”選擇剛創(chuàng)建的產(chǎn)品點擊“查看”->“功能定義”->“編輯草稿”。
(5)“添加自定義功能”->“屬性”->點擊確認,并以此類推添加溫度、亮度、開關(guān)值、紫外線指數(shù)、雨水監(jiān)測指數(shù)這些屬性類自定義功能。確認自定義功能數(shù)量和參數(shù)設(shè)置無誤后,點擊右上角的發(fā)布,后續(xù)可以點擊產(chǎn)品的編輯草稿再次發(fā)布以修改功能[6]。
(6)點擊“設(shè)備”->“添加設(shè)備”,選擇剛創(chuàng)建的產(chǎn)品,并設(shè)置DeviceName,點擊“確認”。至此,產(chǎn)品的物模型就建立完成了。
(7)記錄阿里云三元組(ProductKey,DeviceName,ProductSecret)。
(8)使用“阿里云物聯(lián)平臺配置工具”生成公共實例的接入域名。
(9)使用MQTT.fx進行連接阿里云通信調(diào)試,在MQTT Broker Profile Settings中的Broker Address欄填寫生成的連接域名,Broker Port默認1883,Client ID填寫生成的Clientid。在User Credentials中填寫阿里云物聯(lián)平臺配置工具生成的用戶名和密碼[7]。點擊OK,連接成功后顯示綠色提示圖標(biāo)。
(10)測試屬性發(fā)布。云端接收到屬性上報,設(shè)備物模型數(shù)據(jù)對應(yīng)改變則調(diào)試成功。
(11)測試訂閱設(shè)備屬性設(shè)置,改變幾項屬性參數(shù),點擊調(diào)試后,在MQTT.fx的Subscribe欄能接收到阿里云的消息則為調(diào)試成功。
3.3 移動端App程序設(shè)計
打開App后,直接進入主界面,主界面分為三個部分。第一部分展示主溫度、天氣、空氣質(zhì)量、時間和定位選擇器。第二部分展示濕度、光強度、紫外線指數(shù)和經(jīng)過計算的體感溫度、降雨概率。第三部分展示通過和風(fēng)天氣API和設(shè)置的定位信息獲取的生活指數(shù)。
4 集成測試
將編寫好的程序使用Arduino IDE編譯并燒寫入ESP32內(nèi)部。然后將ESP32開發(fā)板安裝至正確的位置,使用USB電源線上電,發(fā)現(xiàn)開發(fā)板電源指示LED燈正常發(fā)光。打開Arduino IDE工具選項的串口監(jiān)視器,按下ESP32開發(fā)板上的EN鍵重啟系統(tǒng)。能在串口監(jiān)視器上看到正確的開發(fā)板系統(tǒng)重啟信息,并在8秒左右后提示開啟AP模式準(zhǔn)備配網(wǎng),顯示配網(wǎng)IP和設(shè)備MAC地址。
連接名為ESP32_Config的WiFi后在登錄IP地址為192.168.4.1的網(wǎng)頁配置調(diào)試用的WiFi網(wǎng)絡(luò),點擊“連接”,系統(tǒng)自動進入連接WiFi模式并連接剛配置的調(diào)試WiFi,能在串口監(jiān)視器上顯示連接上WiFi網(wǎng)絡(luò)和MQTT。
ESP32主控模塊功能調(diào)試正常后,將設(shè)備斷電,將所有傳感器模塊正確安裝后上電,能發(fā)現(xiàn)OLED顯示W(wǎng)iFi搜索動畫,DHT11溫濕度傳感器、YL-83雨水傳感器、工作LED燈正常亮起,在串口監(jiān)視器能每隔兩秒發(fā)送一次各傳感器檢測的環(huán)境參數(shù),即為硬件測試正常。
登錄阿里云平臺,打開“控制臺”->“物聯(lián)網(wǎng)平臺”->“公共實例”->“設(shè)備”,選擇“物模型數(shù)據(jù)”,在 “默認模塊”欄能看到各屬性數(shù)據(jù),點擊實時刷新后就能看到實時刷新的天氣數(shù)據(jù)信息。
打開手機天氣App,進入主界面,點擊定位圖標(biāo),選擇當(dāng)?shù)氐某鞘忻?梢栽贏pp界面上看到實時溫度、天氣、實用的氣象信息數(shù)據(jù)以及人性化生活指數(shù)信息。數(shù)據(jù)能夠依據(jù)天氣監(jiān)測裝置所處環(huán)境在云端和App上實時改變。
5 結(jié)束語
設(shè)計首先需要先清楚地完成對裝置整體結(jié)構(gòu)組成的構(gòu)思和梳理。將各可能使用到的傳感器模塊進行功能劃分和布局劃分,然后確定好需要使用到的各種元器件材料等,完成主控開發(fā)板和各傳感器模塊的設(shè)計。設(shè)計實現(xiàn)了天氣監(jiān)測裝置的軟硬件設(shè)計、實時天氣數(shù)據(jù)監(jiān)測以及云端以及App的通信。還有一些將來可以提高改進的功能,例如攝像頭掃描、深度睡眠、觸摸式開關(guān)、藍牙配網(wǎng)、模擬數(shù)據(jù)曲線圖輸出等[8]。
參考文獻:
[1] 夏中凱,葉泓麟.氣象為農(nóng)服務(wù)中的短時臨近天氣預(yù)報的意義探究[J].南方農(nóng)業(yè),2020,14(35):158-159.
[2] 王麗娟,徐搏.淺談自動站與人工站的數(shù)據(jù)采集[J].農(nóng)業(yè)開發(fā)與裝備,2014(9):103.
[3] 王浩.基于ESP32平臺和MQTT協(xié)議的遠程控制系統(tǒng)設(shè)計[J].軟件工程,2020,23(8):38-41.
[4] 鄭玲玲,張金,劉芳,等.基于LabVIEW和Arduino的溫濕度采集系統(tǒng)設(shè)計[J].中國科技信息,2021(6):81-83.
[5] 林倩.DHT11數(shù)字溫濕度傳感器通信協(xié)議的IO模擬[J].信息通信,2017,30(1):206-207.
[6] 李琳杰,趙偉博,齊鍇亮,等.基于阿里云的智能大棚遠程監(jiān)控系統(tǒng)研究[J].自動化與儀表,2021,36(1):28-30,35.
[7] 孟麗榮,趙海天.基于MQTT協(xié)議的數(shù)據(jù)監(jiān)測系統(tǒng)在設(shè)施農(nóng)業(yè)中的應(yīng)用[J].遼寧師專學(xué)報(自然科學(xué)版),2020,22(4):82-86.
[8] 劉紅欣,穆璐,李強,等.基于WAP端氣象產(chǎn)品設(shè)計與可視化研究[J].科技傳播,2020,12(2):124-125.
【通聯(lián)編輯:梁書】