張廣超1,馬尚昌1,劉鈞2
(1.成都信息工程大學(xué) 電子工程學(xué)院,四川 成都 610225; 2. 華云升達(dá)(北京)氣象科技有限責(zé)任公司,北京 102200)
摘要:針對目前在氣象研究領(lǐng)域中日照采集系統(tǒng)作業(yè)質(zhì)量效果和實(shí)時性差、系統(tǒng)智能化程度低以及科技含量低等問題,對日照采集系統(tǒng)的通信方式、傳輸平臺、通信形式、位置定位及數(shù)據(jù)存儲等方面進(jìn)行了研究,提出了一種基于 GPRS 的遠(yuǎn)程無線采集日照數(shù)據(jù)系統(tǒng)。該系統(tǒng)以 GPRS 網(wǎng)絡(luò)和Internet作為遠(yuǎn)程信號的傳輸平臺,采用了 STM32 處理器和 SIM900A 作為基本的硬件平臺。日照傳感器采用良好的感應(yīng)元件和材料,其感應(yīng)部件和數(shù)據(jù)采集處理單元集成在光筒內(nèi);計(jì)算機(jī)端軟件實(shí)現(xiàn)了對日照數(shù)據(jù)的定時接收處理和查詢歷史數(shù)據(jù)操作等功能。
關(guān)鍵詞:日照數(shù)據(jù)采集;網(wǎng)絡(luò)傳輸;GPRS通信;數(shù)據(jù)處理
中圖分類號:TP399文獻(xiàn)標(biāo)識碼:ADOI: 10.19358/j.issn.1674-7720.2017.10.024
引用格式:張廣超,馬尚昌,劉鈞.日照數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].微型機(jī)與應(yīng)用,2017,36(10):85-88.
0引言
*基金項(xiàng)目:國家重大科學(xué)儀器設(shè)備開發(fā)專項(xiàng)(2012YQ110205)
世界氣象組織對日照時數(shù)的定義是:在給定時段內(nèi)直接太陽輻照度達(dá)到或超過120 W/m2的各分段時間的總和[12]。日照時長數(shù)據(jù)的測量是太陽輻射時間分布測量的重要組成部分。日照時數(shù)資料的主要用途是表征當(dāng)?shù)氐臍夂蚝兔枋鲞^去的天氣狀況,可以認(rèn)為日照時數(shù)較長的地區(qū)有強(qiáng)烈的太陽光,產(chǎn)生使人可以保持良好狀態(tài)的心理效應(yīng);另外,合理利用氣候資源,研究每日的日照時長數(shù)據(jù)的變化趨勢,在農(nóng)業(yè)上也有很大用途。同時日照時長數(shù)據(jù)的采集有助于了解太陽、地球表面和大氣間的輻射過程、能量轉(zhuǎn)換規(guī)律以及各輻射量的時空分布,研究大氣成分如懸浮微粒、水汽、臭氧等的分布和變化,滿足醫(yī)學(xué)、農(nóng)業(yè)、建筑、工業(yè)和家庭等對太陽能技術(shù)和輻射資料的要求。此外,輻射的分光譜測量可用來取得氣溶膠的光學(xué)厚度和大氣渾濁度,在農(nóng)業(yè)生物和醫(yī)療衛(wèi)生方面有著廣泛的用途。
1系統(tǒng)總體設(shè)計(jì)
日照數(shù)據(jù)采集系統(tǒng)研究主要針對硬件平臺的建立、通信系統(tǒng)的搭建、上位機(jī)的編寫三大部分來展開,其中硬件平臺核心采用STM32處理器[3],通用分組無線服務(wù)技術(shù) (General Packet Radio Service, GPRS)通信芯片采用客戶識別模塊(Subscriber Identification Module,SIM900A),SIM900A是緊湊型、高可靠性的無線模塊,采用表面貼裝技術(shù)(Surface Mount Technology,SMT)封裝的雙頻全球移動通信系統(tǒng)(Global System for Mobile Communication,GSM)/GPRS模塊,上位機(jī)框架采用WinForm[4]形式編寫,主要負(fù)責(zé)日照數(shù)據(jù)、全球定位系統(tǒng)(Global Positioning System,GPS)數(shù)據(jù)的遠(yuǎn)程采集以及終端設(shè)備的定位,并且對數(shù)據(jù)進(jìn)行分析處理。數(shù)據(jù)傳輸(含日照數(shù)據(jù)和GPS數(shù)據(jù))的設(shè)計(jì)采用Socket通信方式完成數(shù)據(jù)通信,由于傳輸?shù)臄?shù)據(jù)量不是很大,但要求數(shù)據(jù)可靠,故采用傳輸控制協(xié)議(Transmission Control Protocol,TCP)進(jìn)行數(shù)據(jù)傳輸,保證傳輸?shù)目煽啃?。采集?shù)據(jù)時,輸入的端口號與IP(Internet Protocol)配置正確時,上位機(jī)啟動,等待接收數(shù)據(jù)。數(shù)據(jù)庫采用SQL Server 2008設(shè)計(jì)。系統(tǒng)總體設(shè)計(jì)框圖如圖1所示。
2系統(tǒng)硬件設(shè)計(jì)
2.1GPRS模塊
系統(tǒng)選擇了SIMCOM公司的SIM900A作為GPRS數(shù)據(jù)傳輸?shù)暮诵哪K,SIM900A模塊傳輸速度一般在20 kb/s左右,本系統(tǒng)采集數(shù)據(jù)的速率大概為2 kb/s,所以SIM900A可以很好地滿足需求。SIM900A出廠默認(rèn)設(shè)置TCP/IP協(xié)議,用戶可以通過擴(kuò)展的標(biāo)準(zhǔn)指令集輕松地使用該模塊進(jìn)行基于TCP/IP協(xié)議的數(shù)據(jù)傳輸。同時,SIM900A模塊在低功耗和高度節(jié)能方面也非常出色,當(dāng)模塊處于待機(jī)狀態(tài)時,系統(tǒng)電流僅為1 mA。SIM900A支持標(biāo)準(zhǔn)的8線制串行接口,同時也支持2線制串行接口,便于調(diào)試測試。SIM900A模塊支持外部SIM卡,直接與3.0 V SIM卡或1.8 V SIM卡連接。模塊自動檢測和適應(yīng)SIM卡類型。SIM卡電路如圖2所示。
2.2GPS模塊
由于日照采集站點(diǎn)要布設(shè)多個,分布廣且數(shù)量多,因此需要將采集站點(diǎn)位置信息發(fā)送給監(jiān)控中心。同時日照數(shù)據(jù)分析時也需要采集站點(diǎn)經(jīng)緯度信息?;诔杀?、開發(fā)難度及產(chǎn)品現(xiàn)狀的考慮,系統(tǒng)中采用美國GPS定位系統(tǒng)作為采集系統(tǒng)的定位模塊。其中,本系統(tǒng)采用UBLOX公司的NEO6M作為日照采集系統(tǒng)GPS模塊接收芯片,這款芯片能夠在偏遠(yuǎn)或信號較弱的地區(qū)接收到衛(wèi)星信號,定位精度最高可達(dá)2.5 m,能夠很好地滿足本系統(tǒng)的需要;能夠提供較高的時間脈沖,其提供的脈沖時間精度能夠達(dá)到15 ns,同時能夠接收GPS完整信號;具有接收50個衛(wèi)星信號通道的功能,能夠接收不同系統(tǒng)的定位信號;接口通信協(xié)議簡單,易于集成。GPS與STM32模塊的通信[5]是通過串口實(shí)現(xiàn)的,本系統(tǒng)利用USART接收GPS模塊的經(jīng)緯度信息。GPS模塊及其外圍電路如圖3所示。
2.3日照采集設(shè)計(jì)
2.3.1采集模塊設(shè)計(jì)
日照采集模塊是基于總輻射散射輻射測量原理實(shí)現(xiàn)日照的自動觀測。日照采集模塊要實(shí)現(xiàn)兩大功能:一是感應(yīng)太陽輻射的變化;二是完成數(shù)據(jù)的采集運(yùn)算處理[6]、存儲和傳輸,與STM32芯片進(jìn)行通信。
數(shù)據(jù)采集核心控制電路板以TI公司的MSP430F1611低功耗微處理器為控制核心。MSP430F1611內(nèi)部具有一個強(qiáng)大的16位RISC CPU、16位的寄存器以及常數(shù)發(fā)生器,能夠最大限度地提高代碼效率;系統(tǒng)在短時間內(nèi)采集到一定量的數(shù)據(jù)需要緩存,而MSP430F1611的RAM達(dá)到10 KB,足夠提供緩存空間;MSP430F149內(nèi)部帶有12位ADC模塊,可以用來實(shí)現(xiàn)對光電感信號的采集;MSP430F1611系列微控制器工作環(huán)境溫度范圍為-40℃~80℃,能夠適應(yīng)氣象探測所需求的外界環(huán)境。綜上,其性能指標(biāo)能夠很好地滿足系統(tǒng)需求。
2.3.2光電傳感器原理
光電感應(yīng)元件由濱松高性能光電二極管和特殊透光材料組成。光電二極管能夠?qū)⒐庑盘栟D(zhuǎn)化為電流信號,而且成一定比例關(guān)系?;诳傒椛洫采⑸漭椛錅y量原理測量日照,對三個光電感應(yīng)器件排布有特殊要求。三個光電感應(yīng)元件應(yīng)安放于一個透明玻璃罩內(nèi),避免外界環(huán)境影響;其中一個光電感應(yīng)器件用于測量總輻射,另外兩個光電感應(yīng)器件分別用于測量上午和下午的散射輻射,其遮光罩采用特殊的全分天空方式,使二者不能同時暴露于陽光下。
3系統(tǒng)上位機(jī)設(shè)計(jì)
3.1軟件設(shè)計(jì)與流程
上位機(jī)數(shù)據(jù)接收軟件是在Visual Studio環(huán)境下開發(fā)的[78],用戶可在該環(huán)境下運(yùn)用不同的程序語言進(jìn)行開發(fā)。本設(shè)計(jì)選用了Visual C#2010,它是一種面向?qū)ο蟮木幊陶Z言,它編寫的應(yīng)用程序可運(yùn)行于.NET Framework上。本設(shè)計(jì)的上位機(jī)軟件希望能夠利用多線程去處理下位機(jī)發(fā)來的日照數(shù)據(jù)和GPS數(shù)據(jù)并且顯示到不同的接收窗口中,在GPS信息窗口通過將定位的坐標(biāo)轉(zhuǎn)換后調(diào)用百度地圖API實(shí)現(xiàn)位置的顯示,同時將顯示在上位機(jī)界面的數(shù)據(jù)存放本地計(jì)算機(jī),也可以上傳數(shù)據(jù)庫,本系統(tǒng)采用SQL Server建立數(shù)據(jù)庫及數(shù)據(jù)表[9]。整個軟件系統(tǒng)流程圖如圖4所示。
3.2上位機(jī)通信
目前大部分的網(wǎng)絡(luò)數(shù)據(jù)通信都是采用上位機(jī)端和客戶端的形式完成的。這種數(shù)據(jù)通信方式一般通過兩個不同的應(yīng)用程序?qū)崿F(xiàn),它們運(yùn)行于不同的機(jī)器上并且通過建立網(wǎng)絡(luò)連接實(shí)現(xiàn)數(shù)據(jù)傳輸。通??蛻舳伺c上位機(jī)的通信方式一般有兩種形式,一種是HTTP的形式,另一種是基于Socket的方式。HTTP通信方式是客戶端先向上位機(jī)發(fā)起連接請求,然后等待上位機(jī)對其做出應(yīng)答,此時客戶端才能與上位機(jī)傳輸數(shù)據(jù),一旦這次數(shù)據(jù)傳輸結(jié)束后就會自動釋放本次連接,下次傳輸數(shù)據(jù)時客戶端還需要重新與上位發(fā)起連接,再次等待上位機(jī)的應(yīng)答。而Socket通信形式是客戶端發(fā)起與上位機(jī)建立連接的請求后,上位機(jī)處理請求并與之建立連接,一旦連接建立好了之后即可以進(jìn)行數(shù)據(jù)的傳輸,免除了許多拆包、封包等復(fù)雜的網(wǎng)絡(luò)數(shù)據(jù)傳輸過程,采用數(shù)據(jù)流的格式進(jìn)行數(shù)據(jù)的發(fā)送,一旦建立連接后不需要每次向上位機(jī)建立連接請求,并且具有數(shù)據(jù)傳輸準(zhǔn)確率高的優(yōu)點(diǎn),因此 Socket 這種通信模式被廣泛地運(yùn)用于網(wǎng)絡(luò)數(shù)據(jù)的傳輸。本系統(tǒng)就是采用基于Socket通信方式來完成數(shù)據(jù)通信。本系統(tǒng)服務(wù)器與客戶端之間的通信模型如圖5所示。
Socket的通信模型有兩種[10]:TCP和UDP。TCP(面向連接方式)采用IP流的形式數(shù)據(jù)發(fā)送,數(shù)據(jù)的傳輸過程當(dāng)中丟包少,傳輸可靠。UDP(無連接服務(wù))采用數(shù)據(jù)報文的方式實(shí)現(xiàn)數(shù)據(jù)的收送,不保證數(shù)據(jù)的可靠性。由于本系統(tǒng)傳輸?shù)臄?shù)據(jù)量不是很大,但是要求數(shù)據(jù)可靠,因此為了確保傳輸?shù)目煽啃裕瑴p少丟包,本系統(tǒng)采用了TCP的形式進(jìn)行數(shù)據(jù)的傳輸。
3.3Socket編程
由于本設(shè)計(jì)選用的GPRS模塊內(nèi)部包含TCP協(xié)議,只需要通過AT指令操作GPRS模塊以TCP客戶端的方式發(fā)送數(shù)據(jù),因此只需要完成上位機(jī)數(shù)據(jù)接收的應(yīng)用程序編寫即可。由于本系統(tǒng)采用的是C#語言來編寫應(yīng)用程序,里面包含許多網(wǎng)絡(luò)編程所需的類和方法,在編程的過程中可調(diào)用這些類和方法。首先要實(shí)例一個Socket對象[11],設(shè)置其傳輸?shù)母袷胶推鋫鬏攨f(xié)議,然后創(chuàng)建一個網(wǎng)絡(luò)節(jié)點(diǎn)對象要包含其IP地址和端口號,再把實(shí)例好的套接字綁定到對應(yīng)的IP和端口號上,并開始監(jiān)聽來自下位機(jī)的連接,此處要設(shè)置一下監(jiān)聽隊(duì)列長度即同時處理請求連接的個數(shù),由于本次只實(shí)現(xiàn)了一個客戶端,但是上位機(jī)軟件監(jiān)聽的客戶端數(shù)量可以自由設(shè)置(為了以后組網(wǎng),方便擴(kuò)展),最后調(diào)用Accept()函數(shù)處理客戶的連接,當(dāng)有客戶向服務(wù)器發(fā)起連接的時候,就會分配一個新的套接字,通過Send()和Recv()函數(shù)實(shí)現(xiàn)與客戶端之間的通信,循環(huán)接收和送數(shù)據(jù),為了防止掉線,收到數(shù)據(jù)后自動回復(fù)內(nèi)容,相當(dāng)于系統(tǒng)已經(jīng)做了心跳處理。
3.4上位機(jī)數(shù)據(jù)存儲系統(tǒng)
本系統(tǒng)不僅能夠把數(shù)據(jù)實(shí)時顯示到界面系統(tǒng)上,同時還能夠把顯示的數(shù)據(jù)實(shí)時存儲起來,因此需要設(shè)計(jì)一個數(shù)據(jù)庫來存放日照數(shù)據(jù)。本設(shè)計(jì)選用微軟公司SQL Server數(shù)據(jù)庫[12]來存放數(shù)據(jù)。本程序采用SQL Server 2008R2版本設(shè)計(jì)日照存儲數(shù)據(jù)庫Sundata。同時能將數(shù)據(jù)庫的數(shù)據(jù)同步到上位機(jī)軟件的DataGridView控件中,能夠按照時間查詢歷史數(shù)據(jù),并且實(shí)現(xiàn)了數(shù)據(jù)導(dǎo)出至Excel表格。導(dǎo)出表格并沒有采用官方提供的Excel專門類庫,在試驗(yàn)中發(fā)現(xiàn)用此種方法與Office版本及其卸載殘留有很大關(guān)系,經(jīng)常出錯,移植性不好,所以采用了第三方的NPOI.dll,這樣不會因計(jì)算機(jī)的Office的不同版本而出現(xiàn)問題,便于程序的移植和分析數(shù)據(jù)。
3.5地圖功能實(shí)現(xiàn)
3.5.1GPS坐標(biāo)解析
GPS坐標(biāo)解析輸出數(shù)據(jù)采用的是ASCII碼,內(nèi)容包含了緯度、經(jīng)度、高度、速度、日期、時間、航向以及衛(wèi)星狀況等信息,常用語句有6 種,包括GGA、GLL、GSA、GSV、RMC 和 VTG。根據(jù)設(shè)計(jì)的需求來選擇不同的格式,這里采用了常見的GPRMC格式的語句,$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11><CR><LF>各個字符依次代表著不同的信息,根據(jù)需要提取了重要的經(jīng)度、緯度信息,由于上述經(jīng)度、緯度數(shù)據(jù)格式采用的是:度度分分.分分分分(ddmm.mmmm)格式,在程序中通過編寫函數(shù)將其轉(zhuǎn)化為度的格式,為后面的坐標(biāo)轉(zhuǎn)換提供方便。
3.5.2地圖顯示
上位機(jī)地圖是是利用百度地圖API來實(shí)現(xiàn)的[13],由于GPS模塊傳來的GPS信息中的經(jīng)度、緯度信息是真實(shí)的坐標(biāo),利用地圖服務(wù)商提供的地圖顯示偏差會很大,因?yàn)槭艿絿乙恍┓煞ㄒ?guī)限制,所有的電子地圖服務(wù)提供商都需要給地圖數(shù)據(jù)加上偏移和加密。所謂的地圖數(shù)據(jù)加密偏移,其實(shí)就是用一個偏移算法對地圖的經(jīng)緯度做一個加減偏移量,從而達(dá)到與實(shí)際地圖不一致。偏移算法本身是沒有什么規(guī)律可言的,每家地圖服務(wù)商都有一套自己的加密偏移算法,國內(nèi)地圖應(yīng)用顯示的都不是真實(shí)的GPS坐標(biāo),所以百度對外提供的坐標(biāo)系是百度自己的坐標(biāo)系,而GPS獲得的是原始坐標(biāo),兩者不在一個坐標(biāo)系上,所以有很大的誤差,誤差在千米之外,這顯然不能滿足需要。所以必須進(jìn)行坐標(biāo)轉(zhuǎn)換,把兩者換成統(tǒng)一坐標(biāo)系。換成原始GPS坐標(biāo)在國內(nèi)原則上是違法的,所以只能統(tǒng)一成各個地圖運(yùn)營商自己的坐標(biāo)系,本文選擇百度坐標(biāo)系。
4結(jié)論
針對目前日照采集作業(yè)通信方式單一、作業(yè)場景有缺陷的問題,本文以嵌入式系統(tǒng)為平臺,提出了一種基于 GPRS 的遠(yuǎn)程無線采集日照數(shù)據(jù)系統(tǒng),對當(dāng)?shù)亟?jīng)緯度、直接輻射輻照度、日照分鐘累計(jì)、小時累計(jì)、日累計(jì)等信息采集獲取技術(shù)進(jìn)行了研究,建立了一套現(xiàn)代化的、適合多場合的數(shù)據(jù)采集和處理系統(tǒng)。整個作業(yè)數(shù)據(jù)采集系統(tǒng)由ARM中央處理器、采集作業(yè)數(shù)據(jù)的相關(guān)傳感器、供電管理電路及GPS模塊、GPRS通信模塊組成。采集的日照數(shù)據(jù)通過GPRS通信傳送至計(jì)算機(jī),用計(jì)算機(jī)當(dāng)作數(shù)據(jù)中心對獲取的數(shù)據(jù)信息整合處理。用計(jì)算機(jī)不僅可以實(shí)時獲取所需要的信息,而且提供了對已有歷史數(shù)據(jù)查詢的功能。
參考文獻(xiàn)
[1] CARTER E A, CHRISTENSEN D L, 李麗. 全球太陽輻射測量的概況[J]. 氣象科技, 1982,6(5):73-75.
?。?] 謝偉. 太陽輻射計(jì)技術(shù)分析[J]. 紅外, 2003,12(3):9-15.
?。?] 劉火良,楊森.STM32庫開發(fā)實(shí)戰(zhàn)指南[M].北京:機(jī)械工業(yè)出版社,2013.
[4] SOLIS D M.C#4.0圖解教程[M].蘇林,朱曄,等,譯.北京:人民郵電出版社,2011.
?。?] 鄭杰,趙敬鳳,王海江,等.基于 STM32 的多功能抄表機(jī)[J].微型機(jī)與應(yīng)用,2016,35(8):79-81, 85.
?。?] 楊寧, 惠曉強(qiáng). 微弱信號高精度數(shù)據(jù)采集技術(shù)研究[J]. 現(xiàn)代電子技術(shù),2013,24 (9):71-73.
?。?] MACDONALD M, FREEMAN A, SZPUSZTA M. Pro ASP.NET 4.0 in C#2010[M]. New York: Apress, 2012.
?。?] 金旭亮.NET4.0面向?qū)ο缶幊堂嬲剳?yīng)用篇[M].北京:電子工業(yè)出版社,2010.
?。?] 秦婧.SQL Server 2012王者歸來[M].北京:清華大學(xué)出版社,2014.
?。?0] 劉蓓莉,劉大紅.基于Visual C#的網(wǎng)絡(luò)通信編程技術(shù)[J].電子科技,2013,26(11):151-153.
?。?1] 謝斌. MS.Net Visual C#在Socket網(wǎng)絡(luò)開發(fā)上的應(yīng)用化計(jì)算機(jī)與網(wǎng)絡(luò)[J].計(jì)算機(jī)與網(wǎng)絡(luò),2002,24(10):74-79
?。?2] 劉俊強(qiáng).SQL Server 2008入門與提高[M].北京:清華大學(xué)出版社,2014.
?。?3] GPS坐標(biāo)換算為百度坐標(biāo)[EB/OL].(2014-11-17)[2016-11-17]http://www.cnblogs.com/soundcode/p/4104281.html.