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