鄭文君 羅 倩 羅 森
(1.福建省災(zāi)害天氣重點(diǎn)實(shí)驗(yàn)室,福建 福州 350003;2.福建省三明市氣象局,福建 三明 365000;3.河南省固始縣氣象局,河南 信陽 354500)
普及氣象科學(xué)知識(shí),提高全民科學(xué)素質(zhì),是實(shí)施國家創(chuàng)新驅(qū)動(dòng)發(fā)展戰(zhàn)略的必然要求。近年來,氣象部門與學(xué)校共同努力,將氣象科普工作融入校園教學(xué),依托校園氣象站和氣象探測裝備展館廣泛組織開展了氣象觀測和探測儀器裝備實(shí)操教育活動(dòng),全國已建立校園氣象站2000多個(gè),全年參加氣象科普100萬人次。學(xué)生在校園氣象站科普教育活動(dòng)中動(dòng)手操作觀測設(shè)備,體驗(yàn)氣象數(shù)據(jù)觀測的過程。達(dá)月珍等針對校園氣象站功效進(jìn)行分析,指出了完善校園氣象站軟件和硬件,能夠真正實(shí)現(xiàn)氣象科學(xué)知識(shí)宣傳平臺(tái)的科普功效[1]。在現(xiàn)階段,大部分校園氣象站通常采用的是人工氣象觀測儀器(溫、濕度計(jì),自記紙等)或者由華云公司生產(chǎn)的自動(dòng)氣象站(CAWS系列),但是此類設(shè)備存在以下幾方面問題:一是不易維護(hù)保養(yǎng),缺少備用的零部件,儀器設(shè)備價(jià)格昂貴;二是配套要求高,需要配備電腦采集數(shù)據(jù),要有一定面積的活動(dòng)場地;三是部分儀器有一定危險(xiǎn)性(220V交流供電、水銀溫度計(jì)碎裂中毒)等問題。隨著微機(jī)電系統(tǒng)技術(shù)、傳感器技術(shù)、無線通信技術(shù)的進(jìn)步,物聯(lián)網(wǎng)得到了極大的普及應(yīng)用,如在科研、教育方面將物聯(lián)網(wǎng)和氣象站進(jìn)行融合應(yīng)用。實(shí)際應(yīng)用成果中有很多基于STM 32、51單片機(jī)等技術(shù)的小型自動(dòng)氣象站,如黃飛龍等設(shè)計(jì)的ZigBee、WiFi和5G等物聯(lián)網(wǎng)技術(shù)深度融合的自動(dòng)氣象站[2],張李元等基于NB-IoT技術(shù)設(shè)計(jì)的小型自動(dòng)氣象站監(jiān)測系統(tǒng)[3],但是還沒有針對物聯(lián)網(wǎng)校園氣象教育需求開發(fā)的科普產(chǎn)品。本文提出了一種使用Arduino平臺(tái)搭建的小型物聯(lián)網(wǎng)氣象站系統(tǒng),硬件方面包含了核心單片機(jī)、風(fēng)向、風(fēng)速、雨量、溫度、濕度、氣壓傳感器,軟件方面包含了Arduino程序開發(fā)、HTML網(wǎng)頁編寫,能夠解決普通氣象站在氣象科普教育工作中面臨的困境和問題。
針對氣象科普教育的需求,本系統(tǒng)核心單片機(jī)采用的是Arduino平臺(tái)系統(tǒng),包含硬件(各種型號的Arduino板)和軟件(Arduino IDE),選擇該單片機(jī)系統(tǒng)主要有以下原因:僅需具有基礎(chǔ)的電路知識(shí)及簡單的C語言即可;Arduino的開源理念讓很多常用的I/O 設(shè)備都已經(jīng)帶有成熟穩(wěn)定的庫文件或者樣例程序,在此基礎(chǔ)上進(jìn)行簡單的修改,即可編寫出比較復(fù)雜的程序,完成功能多樣化的作品; Arduino 及周邊產(chǎn)品功能齊全、質(zhì)廉價(jià)優(yōu),開發(fā)成本低[4]。
本系統(tǒng)架構(gòu)使用結(jié)構(gòu)化程序設(shè)計(jì),將其分成了鏈路層、核心層、應(yīng)用層,如圖1所示。具體功能設(shè)計(jì)如下:
圖1 氣象科普小型物聯(lián)網(wǎng)氣象站系統(tǒng)總體架構(gòu)
應(yīng)用層設(shè)計(jì):采集氣象要素節(jié)點(diǎn)實(shí)時(shí)數(shù)據(jù),包括溫度、濕度、氣壓、風(fēng)向、風(fēng)速、雨量、電池電壓,與核心單片機(jī)Uno R3進(jìn)行數(shù)據(jù)交互。
核心層設(shè)計(jì):檢查氣象要素實(shí)時(shí)數(shù)據(jù),對數(shù)據(jù)進(jìn)行過濾、篩選,異常數(shù)據(jù)告警采集,生成統(tǒng)一的格式化數(shù)據(jù)。
鏈路層設(shè)計(jì):Uno R3通過UART異步傳輸串口通道向ESP 8266發(fā)送數(shù)據(jù),在ESP 8266和客戶端之間提供了Web文檔和數(shù)據(jù)的請求與傳送,將格式化的實(shí)時(shí)數(shù)據(jù)呈現(xiàn)在Web頁面上,展示當(dāng)前環(huán)境的氣象狀況。
由于科普教育面向的主體是學(xué)生,本系統(tǒng)的核心單片機(jī)選擇了Arduino平臺(tái)的ESP 8266和Uno R3兩塊開發(fā)板,具體功能如下。
Uno R3開發(fā)板是基于ATmega328P的微控制器板,具有14個(gè)數(shù)字輸入/輸出引腳(其中6個(gè)可用作PWM輸出),6個(gè)模擬輸入,16MHz晶振時(shí)鐘,USB連接,電源插孔,ICSP接頭和復(fù)位按鈕,支持在線串行編程和復(fù)位按鍵[5]。本系統(tǒng)中需要使用到Uno R3的I2C接口,連接溫、濕、氣壓傳感器模組,4個(gè)PWM引腳連接雨量、風(fēng)向、風(fēng)速傳感器及5號電池組,實(shí)現(xiàn)溫度、濕度、雨量、風(fēng)向、風(fēng)速、氣壓、電池電量等數(shù)據(jù)的采集,并且根據(jù)科普教育的需要拓展連接土壤水分、日照、地面溫度等氣象要素傳感器。
ESP 8266開發(fā)板是樂鑫推出的集成了WiFi功能并內(nèi)置有32bit MCU的SoC 芯片,是一款超低功耗的UART-WiFi的透傳模塊,具有微型的封裝尺寸和超低能耗技術(shù),本系統(tǒng)將ESP 8266作為一個(gè)可以實(shí)現(xiàn)基本網(wǎng)絡(luò)服務(wù)功能的服務(wù)器,將程序、網(wǎng)頁文件及系統(tǒng)配置等文件存儲(chǔ)在開發(fā)板上的25Q32 4M(32mbit)閃存芯片中,用戶通過終端設(shè)備上的瀏覽器連接訪問Arduino系統(tǒng)所建立的網(wǎng)頁,實(shí)現(xiàn)對實(shí)時(shí)氣象要素?cái)?shù)據(jù)的訪問。
溫度、濕度、氣壓數(shù)據(jù)采集節(jié)點(diǎn):采用由奧松新型數(shù)字溫濕度傳感器與AHT20和博世BPM280傳感器組成的模塊,利用I2C輸出,供電電壓為2.8~5V(DC),其中,AHT20模塊配有一個(gè)ASIC專用芯片、一個(gè)經(jīng)過改進(jìn)的MEMS半導(dǎo)體電容式濕度傳感元件和一個(gè)標(biāo)準(zhǔn)的片上溫度傳感元件[6],具有電路簡單、溫測點(diǎn)準(zhǔn)確、傳輸速度穩(wěn)定快速等優(yōu)點(diǎn)。
風(fēng)向、風(fēng)速數(shù)據(jù)采集節(jié)點(diǎn):采用由聚碳酸酯復(fù)合材料外殼和內(nèi)部高性能進(jìn)口軸承組成的模擬量型傳感器,具有體積小、重量輕、精度高、量程寬、抗干擾等優(yōu)點(diǎn)。風(fēng)向、風(fēng)速供電電壓均使用10~30V(DC),輸出傳統(tǒng)模擬量電壓信號0~5V,風(fēng)速傳感器的量程為0~30m/s,風(fēng)向傳感器的量程為8個(gè)指示方向,標(biāo)配兩路獨(dú)立的模擬量輸出,同時(shí)適應(yīng)三線制與四線制。
雨量采集節(jié)點(diǎn):采用高品質(zhì)50mm×40mm的FR-04雙面復(fù)合材料的雨滴傳感器模塊,表面使用鍍鎳處理,具有對抗氧化、導(dǎo)電性及壽命方面更優(yōu)越的性能等優(yōu)點(diǎn)。輸出模擬量電壓信號0~5V。
供電模塊節(jié)點(diǎn):Uno R3和ESP 8266采用4節(jié)5號鎳氫充電電池(6V)供電,風(fēng)向、風(fēng)速傳感器使用4節(jié)18650電池(16V)供電,兩套電池組具有體積小、重量輕、容量適中、壽命長、安全性能高等優(yōu)點(diǎn),本系統(tǒng)在實(shí)際應(yīng)用中能夠保證穩(wěn)定運(yùn)行2天以上,系統(tǒng)硬件接線情況如圖2所示。
圖2 硬件接線圖
2.3.1 Uno R3單片機(jī)采集程序設(shè)計(jì)
使用Arduino開發(fā)軟件環(huán)境(IDE)進(jìn)行程序的編譯、調(diào)試和下載等操作,導(dǎo)入
圖3 Uno R3流程圖
2.3.2 ESP 8266單片機(jī)程序設(shè)計(jì)
程序設(shè)計(jì)思路:將ESP 8266設(shè)置為服務(wù)器端,路由器設(shè)為網(wǎng)關(guān),終端設(shè)備設(shè)為客戶端,ESP 8266和終端設(shè)備接入同一個(gè)WiFi路由,建立二者之間的TCP通信,詳細(xì)流程如圖4所示。在Arduino IDE中,導(dǎo)入
圖4 ESP 8266流程圖
2.3.3 Web設(shè)計(jì)
氣象站系統(tǒng)的Web網(wǎng)頁設(shè)計(jì)開發(fā)使用了HTML、CSS、JavaScript三種前端語言,設(shè)計(jì)完成的網(wǎng)頁效果如圖5所示,網(wǎng)頁的基本布局使用了HTML語言設(shè)計(jì),頁面的圖片、字體、顏色、背景和其他效果屬性使用CSS語言進(jìn)行美化設(shè)計(jì)[7],在CSS文件中使用“@media (max-width:320px){.widget-left {width:100%;}”語句,可以實(shí)現(xiàn)網(wǎng)頁代碼根據(jù)不同終端設(shè)備的分辨率條件做出不同樣式尺寸的調(diào)整,方便用戶使用不同終端設(shè)備查看氣象站系統(tǒng)數(shù)據(jù);使用JavaScript語言創(chuàng)建new Date()對象,從ESP 8266單片機(jī)獲取當(dāng)前時(shí)間,并且在設(shè)計(jì)中考慮到EPS8266單片機(jī)的性能較低,在JavaScript語言中采用AJAX異步交互技術(shù),創(chuàng)建XMLHttpRequest函數(shù)對象,在游覽器上無需刷新整個(gè)頁面就能將當(dāng)前時(shí)間戳和氣象數(shù)據(jù)傳輸?shù)骄W(wǎng)頁中,有效減少客戶端和服務(wù)器之間的流量傳輸,提高了用戶訪問網(wǎng)頁的性能和速度。
圖5 氣象站W(wǎng)eb網(wǎng)頁
為驗(yàn)證本系統(tǒng)的可應(yīng)用性,在福建省三元區(qū)氣象觀測站中安裝了本系統(tǒng)進(jìn)行測試,測試連接距離在10m左右的外網(wǎng)WiFi路由器,同時(shí)使用5臺(tái)不同型號手機(jī)和電腦終端進(jìn)行連接讀取數(shù)據(jù),測試時(shí)間為7天,每日隨機(jī)4次連接測試及讀取氣象實(shí)時(shí)數(shù)據(jù),測試結(jié)果表明,在測試期間小型物聯(lián)網(wǎng)氣象站系統(tǒng)運(yùn)行穩(wěn)定,5臺(tái)終端設(shè)備均能夠正常連接讀取數(shù)據(jù),采集的氣象數(shù)據(jù)完整、準(zhǔn)確。在2022年氣象日活動(dòng)中組織學(xué)生操作小型物聯(lián)網(wǎng)氣象站系統(tǒng),通過組裝設(shè)備,觀測氣象數(shù)據(jù),較好完成了氣象知識(shí)科普,在活動(dòng)結(jié)束后有80%以上使用者表達(dá)了對學(xué)習(xí)開發(fā)小型物聯(lián)網(wǎng)氣象站系統(tǒng)的興趣,整體反映良好,在實(shí)際應(yīng)用中驗(yàn)證了本系統(tǒng)的可靠性與實(shí)用性。
小型物聯(lián)網(wǎng)氣象站在校園科普教育活動(dòng)中,可以讓參與者學(xué)習(xí)物聯(lián)網(wǎng)和氣象科普知識(shí),參與“基礎(chǔ)知識(shí)+模塊實(shí)驗(yàn)+項(xiàng)目實(shí)戰(zhàn)”的科普教學(xué),通過學(xué)生自己動(dòng)手組裝、連接設(shè)備,操作氣象站,將動(dòng)手與動(dòng)腦、知識(shí)與實(shí)踐、學(xué)習(xí)與實(shí)操結(jié)合起來,讓科普活動(dòng)充滿知識(shí)性、科學(xué)性、趣味性,激發(fā)學(xué)生探索氣象奧秘的興趣,提高科普教學(xué)的效果,樹立起科學(xué)思想和精神。