傅桂霞,萬 隆,宋 愷,姜殿波,宿寶臣
(1.山東理工大學(xué)電氣與電子工程學(xué)院,淄博 255049;2.南京郵電大學(xué)物聯(lián)網(wǎng)學(xué)院,南京 210023)
氣象數(shù)據(jù)作為人類日常生活的重要因素,與人類生產(chǎn)和生活的相關(guān)性越來越密切[1-2]。目前,氣象數(shù)據(jù)獲取的主渠道是氣象預(yù)報網(wǎng)或媒體周期性發(fā)布的監(jiān)測信息,但國家氣象監(jiān)測站點建設(shè)成本高、覆蓋范圍有限、數(shù)據(jù)采集靈活性差,且監(jiān)測和預(yù)報具有區(qū)域性和滯后性。因此,作為大型氣象監(jiān)測站點的有效補充,局部定點區(qū)域的智能化、小型化氣象監(jiān)測系統(tǒng)研究越來越受到關(guān)注[3],成為氣象數(shù)據(jù)精細化監(jiān)測和預(yù)報研究領(lǐng)域的熱點。
近年來,傳感器技術(shù)、信息處理技術(shù)和云計算的發(fā)展為局部定點區(qū)域的實時氣象監(jiān)測系統(tǒng)開發(fā)提供了新思路。文獻[4]基于51單片機設(shè)計了一種小型綜合氣象系統(tǒng),用于溫濕度、氣壓和風速檢測。文獻[5]設(shè)計了一套適用于多類監(jiān)測站點的海洋信息自動監(jiān)測數(shù)據(jù)采集系統(tǒng),能兼容連接水文、氣象、浪流等檢測儀表,實現(xiàn)多類數(shù)據(jù)信息的集中存儲管理及系統(tǒng)狀態(tài)監(jiān)控。文獻[6]基于ZigBee技術(shù)設(shè)計了一種無線組網(wǎng)的微型氣象站,實現(xiàn)溫濕度、降雨、風力、風向等環(huán)境參數(shù)監(jiān)測。文獻[7]提出基于LoRa的遠程溫室大棚環(huán)境監(jiān)測系統(tǒng)設(shè)計方案,可用于多個農(nóng)業(yè)大棚環(huán)境監(jiān)測數(shù)據(jù)的智能化和集約化管理。文獻[8]設(shè)計了基于云平臺的智慧農(nóng)業(yè)大棚監(jiān)控系統(tǒng),實現(xiàn)大棚氣象參數(shù)和土壤狀態(tài)的檢測與控制。文獻[9]設(shè)計了針對架空輸電線路的環(huán)境氣象監(jiān)測裝置,為電力生產(chǎn)運行管理和調(diào)度提供氣象信息支持。文獻[10]針對空氣質(zhì)量監(jiān)測網(wǎng)絡(luò)精細化水平較低的問題,設(shè)計了開放式空氣質(zhì)量監(jiān)測系統(tǒng),并提出基于距離權(quán)重因子的空氣質(zhì)量信息融合算法,實現(xiàn)空氣質(zhì)量參數(shù)預(yù)報。
綜上分析,小型化智能氣象監(jiān)測系統(tǒng)在海洋氣象監(jiān)測、智慧農(nóng)業(yè)、智慧電網(wǎng)等領(lǐng)域應(yīng)用廣泛,但其功能相對單一,且不具備氣象大數(shù)據(jù)的綜合管理和圖形化顯示功能。因此,針對現(xiàn)有小型氣象監(jiān)測系統(tǒng)的不足,現(xiàn)提出一種基于樹莓派的微型氣象監(jiān)測系統(tǒng)設(shè)計方案。該系統(tǒng)由前端氣象信息采集系統(tǒng)和后端數(shù)據(jù)管理系統(tǒng)組成。前端采集系統(tǒng)是基于樹莓派搭建的平臺,主要實現(xiàn)溫度、濕度、氣壓、海拔、風速、風向、紫外線、降雨等多個參數(shù)的實時監(jiān)測和無線傳輸。后端管理系統(tǒng)是基于Qt框架開發(fā)的運行于PC機上的圖形化界面顯示系統(tǒng),主要實現(xiàn)氣象數(shù)據(jù)收集、存儲、管理和圖形化顯示。該系統(tǒng)將氣象數(shù)據(jù)采用圖形化方式顯示,提高氣象數(shù)據(jù)的可讀性和系統(tǒng)美觀度。另外,設(shè)計氣象大數(shù)據(jù)的存儲和管理模塊,為數(shù)據(jù)共享、聯(lián)合分析和未來氣象數(shù)據(jù)的預(yù)測提供基礎(chǔ)數(shù)據(jù)源。
微型氣象監(jiān)測系統(tǒng)設(shè)計包括前端采集系統(tǒng)和后端管理系統(tǒng)。前端采集系統(tǒng)是以樹莓派為核心的微型氣象站數(shù)據(jù)采集端,主要涉及前端硬件采集裝置設(shè)計,以及與硬件匹配的軟件功能開發(fā),實現(xiàn)氣象數(shù)據(jù)的采集、處理、打包發(fā)送和簡要顯示。后端管理系統(tǒng)是實現(xiàn)氣象數(shù)據(jù)接收、存儲、管理和圖形化顯示的服務(wù)端。系統(tǒng)總體框架如圖1所示。
圖1 微型氣象監(jiān)測系統(tǒng)總體框架Fig.1 The general framework of micro meteorological monitoring system
前端數(shù)據(jù)采集系統(tǒng)選擇樹莓派Raspberry Pi 4B作為主控芯片,其他硬件包括氣象參數(shù)檢測傳感器、輔助芯片、供電電路和外殼輔助材料等,系統(tǒng)硬件電路關(guān)系如圖2所示。前端采集系統(tǒng)的軟件設(shè)計是基于Raspbian Linux操作系統(tǒng),采用C語言開發(fā)的各功能程序。
圖2 前端采集系統(tǒng)硬件結(jié)構(gòu)關(guān)系圖Fig.2 Hardware structure diagram of front-end acquisition system
樹莓派Raspberry Pi 4B的規(guī)格信息如表1所示。其他檢測傳感器模塊包括DHT11溫濕度傳感器、BMP180氣壓傳感器、模擬量風速傳感器、自制風向傳感器、GY-ML8511紫外線傳感器、自制降雨傳感器模塊,以及PCF8591模數(shù)轉(zhuǎn)換器(analog-digital converter,ADC),前端簡易數(shù)據(jù)顯示采用SSD1306-I2C 有機發(fā)光二極管(organic light-emitting diode,OLED)顯示屏。Raspberry Pi 4B可通過I2C數(shù)字總線與各類數(shù)字傳感器進行通信;對于模擬傳感器的檢測數(shù)據(jù),則需要通過ADC轉(zhuǎn)換后傳輸至樹莓派。樹莓派接收氣象數(shù)據(jù)后,經(jīng)過進一步處理和打包,通過Wi-Fi網(wǎng)絡(luò),采用用戶數(shù)據(jù)報協(xié)議(user datagram protocol,UDP)將數(shù)據(jù)實時發(fā)送至服務(wù)端。
表1 Raspberry Pi 4B規(guī)格信息Table 1 Specifications for the Raspberry Pi 4B
(1)插線板設(shè)計。由于各傳感器工作時需共用Raspberry Pi 4B某些接口,如3.3 V接口、電線接地端(ground,GND)接口、I2C通信的串行數(shù)據(jù)線(serial data line,SDA)和串行時鐘線(serial clock line,SCL)接口等,僅用樹莓派自帶接口難以滿足共用需求。因此,在硬件設(shè)計過程中,焊接制作了一個包含多排排針的插線板,其中每排排針與樹莓派常用接口連接在一起。該設(shè)計不僅達到擴展共用接口的目的,也使系統(tǒng)后續(xù)維護和改進更加便捷。
(2)DHT11溫濕度傳感器電路設(shè)計。DHT11是一款數(shù)字式溫濕度復(fù)合傳感器,可同時實現(xiàn)溫度和濕度檢測。其測量精度如下:相對濕度±5%,溫度±2 ℃;量程范圍:相對濕度5%~95%,溫度-20~60 ℃,滿足氣象站設(shè)計需求。DHT11模塊包含3個端口,供電電壓(volt current condenser,VCC)、GND端口分別與插線板3.3 V和GND接口連接,串行半雙工數(shù)字通信接口SIG輸出已校準數(shù)字信號,連接至樹莓派的GPIO-0端口。
(3)BMP180氣壓傳感器電路設(shè)計。BMP180是一款多功能、超小體積高精度數(shù)字氣壓傳感器,可同時實現(xiàn)氣壓、海拔、溫度檢測,該模塊功耗低,轉(zhuǎn)換速度快,可通過I2C接口與樹莓派主控單元實現(xiàn)集成。BMP180輸出氣壓(海拔高度)的測量分辨率為0.03 hPa(0.25 m),在低功耗模式下的分辨率為0.06 hPa(0.5 m)。BMP180氣壓檢測電路原理如圖3所示,其中時鐘接口SCL、數(shù)據(jù)接口SDA通過I2C總線與樹莓派連接,BMP180的I2C地址在芯片內(nèi)部固化為0x77(十六進制),無法通過外接電路改變。該模塊可通過外接3.3 V電源直接供電;也可外接5 V電源,采用模塊自帶穩(wěn)壓電路產(chǎn)生3.3 V的穩(wěn)壓直流電源,供BMP180工作。采用了直接接入3.3 V電源的統(tǒng)一供電方式。
圖3 BMP180大氣壓檢測傳感器模塊原理圖Fig.3 Schematic diagram of BMP180 air pressure detection sensor module
(4)PCF8591模數(shù)轉(zhuǎn)換器電路設(shè)計。PCF8591是8位CMOS模數(shù)/數(shù)模轉(zhuǎn)換器,具有4個模擬量輸入接口、一個模擬量輸出接口和一組串行I2C總線接口,電路原理如圖4所示。本設(shè)計使用了模數(shù)轉(zhuǎn)換器的4個模擬輸入接口AIN0~AIN3,分別連接風速傳感器、風向傳感器、紫外線輻射傳感器和降雨傳感器的模擬輸出端;3個地址引腳A0、A1和A2用于對I2C硬件地址進行編程,在本模塊電路板上已全部接地,使其I2C地址為0x48;模數(shù)轉(zhuǎn)換參考電壓VREF為3.3 V。供電接口VCC、GND和I2C總線接口SCL、SDA可接入插線板相應(yīng)位置,與樹莓派相連。
圖4 PCF8591模數(shù)轉(zhuǎn)換器模塊原理圖Fig.4 Schematic diagram of PCF8591 analog-to-digital converter module
(5)風速傳感器電路設(shè)計。采用小型直流有刷電機與三杯式旋轉(zhuǎn)風杯自制了一款風速傳感器。當環(huán)境有水平流動風時,旋轉(zhuǎn)風杯產(chǎn)生旋轉(zhuǎn),帶動小型電機產(chǎn)生輸出電壓,該電壓與旋轉(zhuǎn)速度成正比。利用此信號電壓,可實現(xiàn)對環(huán)境風速的測量。風速傳感器的啟動風速:<0.7 m/s;測量范圍:0~56 m/s,對應(yīng)0~16級風,對應(yīng)輸出信號電壓為0~2 V,在ADC的測量范圍0~3.3 V。風速傳感器的正極連接ADC模塊模擬輸入接口AIN1、負極連接插線板GND接口。
(6)風向傳感器電路設(shè)計。使用的風向傳感器由旋轉(zhuǎn)電位器與自制風向標組合而成。旋轉(zhuǎn)電位器可測量旋轉(zhuǎn)角的范圍為0°~333°,對應(yīng)電壓輸出范圍為0~3.3 V。自制風向標與旋轉(zhuǎn)電位器相連,風向標旋轉(zhuǎn)帶動電位器轉(zhuǎn)動,輸出相應(yīng)的電壓值,實現(xiàn)對水平流動風的風向指示。電路連接關(guān)系:電位器的電壓輸出端Vout接入ADC模塊的模擬輸入接口AIN2,供電接口GND、VCC連接插線板GND和3.3V。
(7)ML8511紫外線傳感器電路設(shè)計。ML8511是一種適用于室內(nèi)和室外的紫外線密度檢測傳感器。ML8511的內(nèi)部放大器可根據(jù)紫外線強度將光電流轉(zhuǎn)換為電壓。ML8511的接口OUT輸出模擬電壓值,該接口與ADC模塊的模擬輸入接口AIN3連接,供電接口接入插線板3.3 V和GND接口。另外,ML8511具有高電平使能端口EN,該端口與樹莓派GPIO-2端口相連,用于控制模塊使能與失能。
(8)降雨傳感器電路設(shè)計。自制的降雨傳感器由雨滴檢測板和電壓比較模塊組合而成,電路原理如圖5所示。該模塊的P2端子連接雨滴檢測板。電壓比較器模塊中LM393的1IN-接口連接電位器R3,通過調(diào)節(jié)R3改變1IN-接口的電壓比較參考電壓,實現(xiàn)降雨檢測閾值設(shè)置。初始狀態(tài)下,模擬輸出接口AO(即LM393的1IN+口)是雨滴檢測板的高電平一端,電壓值初始為3.3 V。當有降雨時,雨滴檢測板連通性增強,1IN+端口的電位從3.3 V不斷下降,當下降到小于等于參考電壓后,電壓比較的DO接口輸出低電平。數(shù)字輸出接口DO與樹莓派的GPIO-1端口相連,有高電平“1”和低電平“0”兩個狀態(tài),用于指示是否降雨。模擬輸出端口AO的電壓值變化范圍為0~3.3 V,與ADC模塊的模擬輸入接口AIN0相連,用于指示降雨參考值。
圖5 降雨傳感器模塊原理圖Fig.5 Schematic diagram of rainfall sensor module
(9)OLED顯示屏電路設(shè)計。有機發(fā)光二極管(organic light-emitting diode,OLED)顯示屏為0.96英寸、分辨率為128×64,驅(qū)動芯片為單芯片CMOS OLED/PLED驅(qū)動器SSD1306,通過I2C總線與樹莓派通信,具有固定I2C硬件地址0x3C。本設(shè)計中,OLED用于簡要顯示氣象信息。
(10)供電電源部分設(shè)計。前端數(shù)據(jù)采集系統(tǒng)使用了自制內(nèi)置電源供電。供電電源的電池組由六塊18650 3.7 V 1 500 mA·h充電鋰電池組成,每兩塊電池并聯(lián)為一個額定電壓3.7 V(最高電壓4.2 V)的小單元,3個小單元通過保護板串聯(lián)在一起組成額定電壓11.1 V(最高電圧12.6 V)的電池組。在保護板的電池組接口P+、P-處焊接導(dǎo)線,經(jīng)過雙刀雙擲開關(guān)與DC-DC降壓模塊相連。降壓模塊實現(xiàn)了直流6~24 V到直流5.1~5.2 V的降壓轉(zhuǎn)換,輸出電流最高可達3 A,滿足采集系統(tǒng)對大電流的需求。DC-DC降壓模塊的輸出端為USB接口,通過USB數(shù)據(jù)線連接樹莓派,為樹莓派提供穩(wěn)定供電。
前端采集系統(tǒng)的軟件開發(fā)環(huán)境是Code::Blocks 17.12 Linux版,編程語言為C語言,編譯器為gcc,并集成了第三方開源庫。程序設(shè)計采用多線程技術(shù),按照功能模塊分為DHT11采集數(shù)據(jù)、BMP180采集數(shù)據(jù)、ADC模塊采集數(shù)據(jù)、OLED顯示、UDP網(wǎng)絡(luò)傳輸數(shù)據(jù)共5個線程,程序整體架構(gòu)如圖6所示。
圖6 前端采集系統(tǒng)軟件整體架構(gòu)Fig.6 Software architecture of front-end acquisition system
多線程設(shè)計使不同線程在宏觀上并行運行,避免了線程間互相等待和干擾。通過設(shè)定不同延時,使各線程可同時處理自身與外部傳感器的通信,提升了CPU的使用效率。在主函數(shù)中,首先調(diào)用樹莓派初始化函數(shù),實現(xiàn)GPIO初始化驅(qū)動,然后逐個創(chuàng)建并啟動所有線程。最后運行阻塞函數(shù)使主函數(shù)進入阻塞狀態(tài),等待各線程運行。所有線程均處于循環(huán)運行狀態(tài),可實現(xiàn)微型氣象站前端系統(tǒng)的數(shù)據(jù)采集、處理、傳輸任務(wù)的不間斷執(zhí)行。
為便于前端數(shù)據(jù)采集、數(shù)據(jù)包傳輸及服務(wù)端數(shù)據(jù)管理程序設(shè)計,定義了統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)存儲氣象信息,該數(shù)據(jù)結(jié)構(gòu)的定義如表2所示。
表2 氣象信息數(shù)據(jù)存儲結(jié)構(gòu)Table 2 Weather information data storage structure
(1)濕度數(shù)據(jù)采集線程設(shè)計。濕度數(shù)據(jù)采集是基于DHT11獲取濕度數(shù)據(jù)的一個單獨線程。DHT11傳感器既能獲取溫度,也能獲取濕度數(shù)據(jù),但BMP180氣壓傳感器附帶采集溫度功能,且效率更高,所以本設(shè)計中的溫度采集通過BMP180實現(xiàn),DHT11僅用于獲取濕度數(shù)據(jù)。DHT11傳輸數(shù)據(jù)的格式如表3所示。一個完整數(shù)據(jù)傳輸包含40個bit位,前32個bit分別對應(yīng)濕度和溫度數(shù)據(jù),最后8個bit是校驗位,該校驗和等于前4個8 bit數(shù)據(jù)相加所得結(jié)果的末8位。
表3 DHT11傳輸數(shù)據(jù)的格式Table 3 The format of the data transmitted by DHT11
在DHT11驅(qū)動函數(shù)中實現(xiàn)獲取濕度數(shù)據(jù),此線程中,數(shù)據(jù)采集每延時2 s執(zhí)行一次,為DHT11做好下次采集數(shù)據(jù)和通信留出充分的恢復(fù)時間,避免產(chǎn)生較多無效數(shù)據(jù)。
(2)氣壓、海拔、溫度數(shù)據(jù)采集線程設(shè)計。BMP180氣壓傳感器使用開源庫“BMP180”和“smbus”實現(xiàn)驅(qū)動。該線程中,首先調(diào)用BMP180的校準函數(shù)進行初始化校準操作,然后進入循環(huán),循環(huán)體中分別調(diào)用BMP180驅(qū)動庫中采集氣壓、海拔高度和溫度數(shù)據(jù)的函數(shù)獲取相應(yīng)數(shù)據(jù)。由于溫度、氣壓、海拔高度等數(shù)據(jù)隨時間流逝變化不大,因此,兩次數(shù)據(jù)采集可適當延時,程序中循環(huán)體設(shè)定每延時500 ms運行一次。
(3)風速、風向、紫外線和降雨采集線程設(shè)計。風速、風向、紫外線和降雨數(shù)據(jù)獲取需要用到ADC,因此ADC的相關(guān)配置與獲取風速、風向、紫外線和降雨數(shù)據(jù)的功能實現(xiàn)被設(shè)置在同一線程中。模數(shù)轉(zhuǎn)換器PCF8591的I2C硬件地址為0x48,ADC基地址為120,即ADC的模擬輸入口AIN0~3對應(yīng)地址為120~123。線程執(zhí)行過程中,首先設(shè)定ADC芯片的I2C硬件地址和基地址,然后運行傳感器所需的初始化配置,延時18 ms以等待ADC完成初始化,之后進入循環(huán)體。每次循環(huán)時,獲取風速、風向、紫外線和降雨數(shù)據(jù)的各功能程序順序執(zhí)行,兩次數(shù)據(jù)采集延時間隔設(shè)置為0.2 s。
(4)OLED顯示線程設(shè)計。OLED驅(qū)動使用“Linux_IIC_OLED_SSD1306”開源庫以及相應(yīng)字碼頭文件。在線程開始,調(diào)用OLED初始化函數(shù)實現(xiàn)初始化,進入無限循環(huán)體后實現(xiàn)屏幕上信息的循環(huán)顯示。信息顯示采用分屏模式,第一屏顯示漢字“微型氣象站”,以及“溫度”“相對濕度”和“海拔高度”等中文提示以及相應(yīng)數(shù)據(jù);第二屏顯示“氣壓”“風速”“風向角”和“UVI”的中英文提示以及相應(yīng)數(shù)據(jù)。因屏幕尺寸限制,紫外線強度、降雨等氣象數(shù)據(jù)未通過OLED顯示。
(5)數(shù)據(jù)傳輸線程設(shè)計。使用UDP協(xié)議與服務(wù)端程序進行通信,實現(xiàn)氣象數(shù)據(jù)傳輸。網(wǎng)絡(luò)傳輸模塊使用了Linux系統(tǒng)自帶的“sys/socket.h”“netinet/in.h”和“arpa/inet.h”庫。該模塊為單獨線程,保證了網(wǎng)絡(luò)通信和數(shù)據(jù)傳輸?shù)墓δ塥毩⑦\行。在線程中,本程序首先作為UDP server(服務(wù)端)獲取后端軟件“Qt服務(wù)端”的地址信息;然后,在接收到Qt服務(wù)端發(fā)來的命令信息,并獲得地址信息后,本程序作為UDP client(客戶端)向Qt服務(wù)端發(fā)送氣象數(shù)據(jù)。UDP發(fā)送數(shù)據(jù)的無限循環(huán)每延遲0.2 s執(zhí)行一次,Qt服務(wù)端可不斷地接收到前端采集數(shù)據(jù)。
后端服務(wù)端軟件主要實現(xiàn)氣象數(shù)據(jù)接收、數(shù)據(jù)庫存儲和圖形化顯示等功能,整體架構(gòu)如圖7所示。
圖7 服務(wù)端系統(tǒng)整體功能架構(gòu)Fig.7 The overall functional architecture of the server system
服務(wù)端軟件開發(fā)基于Qt 5.13.1框架,編譯器采用MinGW 7.3.0 32-bit for C++。系統(tǒng)設(shè)計中使用了多個Qt自帶類庫,如QGroupBox、QUdpSocket、QSqlDatabase、QMessageBox等,用于實現(xiàn)界面、自帶窗體控件、網(wǎng)絡(luò)通信、數(shù)據(jù)庫、對話框等功能。
服務(wù)端軟件主界面設(shè)計中,自定義了3個窗體類如下。
(1)myMainWindow類。主頁面窗體,即圖形化顯示窗體,使用各種圖表控件圖形化顯示接收到的氣象數(shù)據(jù),使用按鈕調(diào)起其他窗體。
(2)dbManage類。數(shù)據(jù)庫管理窗體,用于管理氣象數(shù)據(jù)庫,包括增加、刪除、查詢等。
(3)chartWidget類。走勢圖窗體,用于顯示各個氣象數(shù)據(jù)隨時間變化的走勢圖。另外,結(jié)合第三方開源控件軟件開發(fā)工具包(SDK)實現(xiàn)了溫度計、風速刻度盤、風向儀、進度控件等氣象數(shù)據(jù)圖形化顯示功能開發(fā);使用QCustomPlot開源類庫實現(xiàn)各種氣象數(shù)據(jù)曲線圖繪制,大大提升了系統(tǒng)軟件的開發(fā)效率和美觀度。
前端采集系統(tǒng)運行測試。開啟前端設(shè)備電源,等待設(shè)備開機并進入系統(tǒng),約15 s后系統(tǒng)前端程序正常啟動運行,OLED屏上將實時顯示氣象監(jiān)測數(shù)據(jù)。與此同時,可在Linux系統(tǒng)終端輸出調(diào)試信息。調(diào)試信息中包含各傳感器和功能模塊的輸出氣象參數(shù)。經(jīng)試驗測試,自制的電源供電穩(wěn)定,正常工作輸出電流保持在700 mA左右,表明樹莓派及傳感器整體功耗較低,供電功率充足。另外,風速、風向和降雨等多個自制采集模塊工作性能良好,實現(xiàn)了氣象數(shù)據(jù)的可靠采集。
服務(wù)端軟件運行測試。運行服務(wù)端程序,進入主窗體;然后點擊“設(shè)定樹莓派地址”按鈕,輸入前端樹莓派端的地址并確定后,建立前后端通信。前端采集系統(tǒng)不斷地向服務(wù)端發(fā)送數(shù)據(jù),主窗體界面會實時顯示最新的數(shù)據(jù),如圖8所示。當前端采集數(shù)據(jù)發(fā)生變化時,后端軟件主窗體的圖表顯示也將實時更新。
圖8 服務(wù)端軟件運行測試Fig.8 Testing of the server software
數(shù)據(jù)庫管理功能實現(xiàn)了對前端采集氣象數(shù)據(jù)的收集、存儲和管理,如圖9所示。在數(shù)據(jù)庫管理窗體中使用了“模型-視圖”(model-view)結(jié)構(gòu),模型(model)負責與數(shù)據(jù)源通信,并為其他部件提供接口;視圖(view)負責從模型中獲取數(shù)據(jù),作為一個控件顯示出來。
走勢圖功能用于實時氣象數(shù)據(jù)的可視化展示,如圖10所示。走勢圖窗體由“溫濕度”“氣壓與海拔高度”“風速風向”“紫外線”和“降雨”5個選項卡組成,該窗體可實時獲取數(shù)據(jù)庫中的最新數(shù)據(jù),通過繪制曲線圖的方式顯示氣象數(shù)據(jù)隨著時間的變化趨勢。
為了驗證系統(tǒng)性能的可靠性,進行了多次試驗。首先,實測并記錄了淄博市城區(qū)某一局部定點區(qū)域24 h的氣象參數(shù),與天氣預(yù)報網(wǎng)公布的24 h氣象數(shù)據(jù)進行比較。試驗發(fā)現(xiàn),微型氣象監(jiān)測系統(tǒng)實測的溫濕度、氣壓、風向和降雨信息與天氣預(yù)報網(wǎng)公布數(shù)據(jù)相近,誤差可忽略不計,證明所設(shè)計的微型氣象監(jiān)測系統(tǒng)的性能是可靠的。但是,紫外線強度和風速信息與天氣預(yù)報網(wǎng)公布數(shù)據(jù)相差較大,特別是風速誤差最大時超過10%。分析發(fā)現(xiàn),產(chǎn)生測量誤差的主要因素是受到局部定點區(qū)域位置和周圍環(huán)境的影響。這表明,天氣預(yù)報網(wǎng)發(fā)布的氣象數(shù)據(jù)是某個地區(qū)較大范圍內(nèi)的平均數(shù)據(jù),存在一定的滯后性,而所設(shè)計的微型氣象監(jiān)測系統(tǒng)能實時準確地測量局部定點的氣象信息,彌補前者的不足。
設(shè)計實現(xiàn)了一套微型氣象監(jiān)測系統(tǒng)的開發(fā)與測試。前端采集系統(tǒng)由樹莓派和各類傳感器組成,后端服務(wù)端是基于Qt開發(fā)的圖形顯示界面軟件。該微型氣象站前端采集系統(tǒng)工作穩(wěn)定,氣象數(shù)據(jù)采集、處理、顯示和傳輸實時性高、可靠性強;服務(wù)端軟件實現(xiàn)了大規(guī)模氣象數(shù)據(jù)的接收、存儲、管理和可視化顯示。該系統(tǒng)彌補了大型氣象站成本高、監(jiān)測覆蓋范圍小和信息發(fā)布滯后等不足,為優(yōu)化和科學(xué)調(diào)控人們的生產(chǎn)生活提供了參考依據(jù)。在后續(xù)研究中,將在簡易系統(tǒng)基礎(chǔ)上,進一步增強系統(tǒng)可靠性和實用性,并與物聯(lián)網(wǎng)云平臺結(jié)合,實現(xiàn)多個微型氣象站的聯(lián)合數(shù)據(jù)采集、管理和共享,為智慧化生產(chǎn)提供更加完善的氣象數(shù)據(jù)支持。