張廣超,馬尚昌,劉 鈞
(1.成都信息工程大學 電子工程學院,四川 成都 610225; 2.華云升達(北京)氣象科技有限責任公司,北京 102200)
日照數據采集系統設計與實現*
張廣超1,馬尚昌1,劉 鈞2
(1.成都信息工程大學 電子工程學院,四川 成都 610225; 2.華云升達(北京)氣象科技有限責任公司,北京 102200)
針對目前在氣象研究領域中日照采集系統作業質量效果和實時性差、系統智能化程度低以及科技含量低等問題,對日照采集系統的通信方式、傳輸平臺、通信形式、位置定位及數據存儲等方面進行了研究,提出了一種基于 GPRS 的遠程無線采集日照數據系統。該系統以 GPRS 網絡和Internet作為遠程信號的傳輸平臺,采用了 STM32 處理器和 SIM900A 作為基本的硬件平臺。日照傳感器采用良好的感應元件和材料,其感應部件和數據采集處理單元集成在光筒內;計算機端軟件實現了對日照數據的定時接收處理和查詢歷史數據操作等功能。
日照數據采集;網絡傳輸;GPRS通信;數據處理
世界氣象組織對日照時數的定義是:在給定時段內直接太陽輻照度達到或超過120 W/m2的各分段時間的總和[1-2]。日照時長數據的測量是太陽輻射時間分布測量的重要組成部分。日照時數資料的主要用途是表征當地的氣候和描述過去的天氣狀況,可以認為日照時數較長的地區有強烈的太陽光,產生使人可以保持良好狀態的心理效應;另外,合理利用氣候資源,研究每日的日照時長數據的變化趨勢,在農業上也有很大用途。同時日照時長數據的采集有助于了解太陽、地球表面和大氣間的輻射過程、能量轉換規律以及各輻射量的時空分布,研究大氣成分如懸浮微粒、水汽、臭氧等的分布和變化,滿足醫學、農業、建筑、工業和家庭等對太陽能技術和輻射資料的要求。此外,輻射的分光譜測量可用來取得氣溶膠的光學厚度和大氣渾濁度,在農業生物和醫療衛生方面有著廣泛的用途。
日照數據采集系統研究主要針對硬件平臺的建立、通信系統的搭建、上位機的編寫三大部分來展開,其中硬件平臺核心采用STM32處理器[3],通用分組無線服務技術 (General Packet Radio Service,GPRS)通信芯片采用客戶識別模塊(Subscriber Identification Module,SIM900A),SIM900A是緊湊型、高可靠性的無線模塊,采用表面貼裝技術(Surface Mount Technology,SMT)封裝的雙頻全球移動通信系統(Global System for Mobile Communication,GSM)/GPRS模塊,上位機框架采用WinForm[4]形式編寫,主要負責日照數據、全球定位系統(Global Positioning System,GPS)數據的遠程采集以及終端設備的定位,并且對數據進行分析處理。數據傳輸(含日照數據和GPS數據)的設計采用Socket通信方式完成數據通信,由于傳輸的數據量不是很大,但要求數據可靠,故采用傳輸控制協議(Transmission Control Protocol,TCP)進行數據傳輸,保證傳輸的可靠性。采集數據時,輸入的端口號與IP(Internet Protocol)配置正確時,上位機啟動,等待接收數據。數據庫采用SQL Server 2008設計。系統總體設計框圖如圖1所示。

圖1 系統總體設計框圖

圖3 GPS模塊及其外圍電路
2.1 GPRS模塊
系統選擇了SIMCOM公司的SIM900A作為GPRS數據傳輸的核心模塊,SIM900A模塊傳輸速度一般在20 kb/s左右,本系統采集數據的速率大概為2 kb/s,所以SIM900A可以很好地滿足需求。SIM900A出廠默認設置TCP/IP協議,用戶可以通過擴展的標準指令集輕松地使用該模塊進行基于TCP/IP協議的數據傳輸。同時,SIM900A模塊在低功耗和高度節能方面也非常出色,當模塊處于待機狀態時,系統電流僅為1 mA。SIM900A支持標準的8線制串行接口,同時也支持2線制串行接口,便于調試測試。SIM900A模塊支持外部SIM卡,直接與3.0 V SIM卡或1.8 V SIM卡連接。模塊自動檢測和適應SIM卡類型。SIM卡電路如圖2所示。

圖2 SIM卡電路
2.2 GPS模塊
由于日照采集站點要布設多個,分布廣且數量多,因此需要將采集站點位置信息發送給監控中心。同時日照數據分析時也需要采集站點經緯度信息。基于成本、開發難度及產品現狀的考慮,系統中采用美國GPS定位系統作為采集系統的定位模塊。其中,本系統采用U-BLOX公司的NEO-6M作為日照采集系統GPS模塊接收芯片,這款芯片能夠在偏遠或信號較弱的地區接收到衛星信號,定位精度最高可達2.5 m,能夠很好地滿足本系統的需要;能夠提供較高的時間脈沖,其提供的脈沖時間精度能夠達到15 ns,同時能夠接收GPS完整信號;具有接收50個衛星信號通道的功能,能夠接收不同系統的定位信號;接口通信協議簡單,易于集成。GPS與STM32模塊的通信[5]是通過串口實現的,本系統利用USART接收GPS模塊的經緯度信息。GPS模塊及其外圍電路如圖3所示。
2.3 日照采集設計
2.3.1 采集模塊設計
日照采集模塊是基于總輻射-散射輻射測量原理實現日照的自動觀測。日照采集模塊要實現兩大功能:一是感應太陽輻射的變化;二是完成數據的采集運算處理[6]、存儲和傳輸,與STM32芯片進行通信。
數據采集核心控制電路板以TI公司的MSP430F1611低功耗微處理器為控制核心。MSP430F1611內部具有一個強大的16位RISC CPU、16位的寄存器以及常數發生器,能夠最大限度地提高代碼效率;系統在短時間內采集到一定量的數據需要緩存,而MSP430F1611的RAM達到10 KB,足夠提供緩存空間;MSP430F149內部帶有12位ADC模塊,可以用來實現對光電感信號的采集;MSP430F1611系列微控制器工作環境溫度范圍為-40℃~80℃,能夠適應氣象探測所需求的外界環境。綜上,其性能指標能夠很好地滿足系統需求。
2.3.2 光電傳感器原理
光電感應元件由濱松高性能光電二極管和特殊透光材料組成。光電二極管能夠將光信號轉化為電流信號,而且成一定比例關系。基于總輻射-散射輻射測量原理測量日照,對三個光電感應器件排布有特殊要求。三個光電感應元件應安放于一個透明玻璃罩內,避免外界環境影響;其中一個光電感應器件用于測量總輻射,另外兩個光電感應器件分別用于測量上午和下午的散射輻射,其遮光罩采用特殊的全分天空方式,使二者不能同時暴露于陽光下。
3.1 軟件設計與流程
上位機數據接收軟件是在Visual Studio環境下開發的[7-8],用戶可在該環境下運用不同的程序語言進行開發。本設計選用了Visual C#2010,它是一種面向對象的編程語言,它編寫的應用程序可運行于.NET Framework上。本設計的上位機軟件希望能夠利用多線程去處理下位機發來的日照數據和GPS數據并且顯示到不同的接收窗口中,在GPS信息窗口通過將定位的坐標轉換后調用百度地圖API實現位置的顯示,同時將顯示在上位機界面的數據存放本地計算機,也可以上傳數據庫,本系統采用SQL Server建立數據庫及數據表[9]。整個軟件系統流程圖如圖4所示。

圖4 上位機端軟件的主流程圖
3.2 上位機通信
目前大部分的網絡數據通信都是采用上位機端和客戶端的形式完成的。這種數據通信方式一般通過兩個不同的應用程序實現,它們運行于不同的機器上并且通過建立網絡連接實現數據傳輸。通常客戶端與上位機的通信方式一般有兩種形式,一種是HTTP的形式,另一種是基于Socket的方式。HTTP通信方式是客戶端先向上位機發起連接請求,然后等待上位機對其做出應答,此時客戶端才能與上位機傳輸數據,一旦這次數據傳輸結束后就會自動釋放本次連接,下次傳輸數據時客戶端還需要重新與上位發起連接,再次等待上位機的應答。而Socket通信形式是客戶端發起與上位機建立連接的請求后,上位機處理請求并與之建立連接,一旦連接建立好了之后即可以進行數據的傳輸,免除了許多拆包、封包等復雜的網絡數據傳輸過程,采用數據流的格式進行數據的發送,一旦建立連接后不需要每次向上位機建立連接請求,并且具有數據傳輸準確率高的優點,因此 Socket 這種通信模式被廣泛地運用于網絡數據的傳輸。本系統就是采用基于Socket通信方式來完成數據通信。本系統服務器與客戶端之間的通信模型如圖5所示。

圖5 服務器與客戶端之間的通信模型
Socket的通信模型有兩種[10]:TCP和UDP。TCP(面向連接方式)采用IP流的形式數據發送,數據的傳輸過程當中丟包少,傳輸可靠。UDP(無連接服務)采用數據報文的方式實現數據的收送,不保證數據的可靠性。由于本系統傳輸的數據量不是很大,但是要求數據可靠,因此為了確保傳輸的可靠性,減少丟包,本系統采用了TCP的形式進行數據的傳輸。
3.3 Socket編程
由于本設計選用的GPRS模塊內部包含TCP協議,只需要通過AT指令操作GPRS模塊以TCP客戶端的方式發送數據,因此只需要完成上位機數據接收的應用程序編寫即可。由于本系統采用的是C#語言來編寫應用程序,里面包含許多網絡編程所需的類和方法,在編程的過程中可調用這些類和方法。首先要實例一個Socket對象[11],設置其傳輸的格式和其傳輸協議,然后創建一個網絡節點對象要包含其IP地址和端口號,再把實例好的套接字綁定到對應的IP和端口號上,并開始監聽來自下位機的連接,此處要設置一下監聽隊列長度即同時處理請求連接的個數,由于本次只實現了一個客戶端,但是上位機軟件監聽的客戶端數量可以自由設置(為了以后組網,方便擴展),最后調用Accept()函數處理客戶的連接,當有客戶向服務器發起連接的時候,就會分配一個新的套接字,通過Send()和Recv()函數實現與客戶端之間的通信,循環接收和送數據,為了防止掉線,收到數據后自動回復內容,相當于系統已經做了心跳處理。
3.4 上位機數據存儲系統
本系統不僅能夠把數據實時顯示到界面系統上,同時還能夠把顯示的數據實時存儲起來,因此需要設計一個數據庫來存放日照數據。本設計選用微軟公司SQL Server數據庫[12]來存放數據。本程序采用SQL Server 2008R2版本設計日照存儲數據庫Sun-data。同時能將數據庫的數據同步到上位機軟件的DataGridView控件中,能夠按照時間查詢歷史數據,并且實現了數據導出至Excel表格。導出表格并沒有采用官方提供的Excel專門類庫,在試驗中發現用此種方法與Office版本及其卸載殘留有很大關系,經常出錯,移植性不好,所以采用了第三方的NPOI.dll,這樣不會因計算機的Office的不同版本而出現問題,便于程序的移植和分析數據。
3.5 地圖功能實現
3.5.1 GPS坐標解析
GPS坐標解析輸出數據采用的是ASCII碼,內容包含了緯度、經度、高度、速度、日期、時間、航向以及衛星狀況等信息,常用語句有6 種,包括GGA、GLL、GSA、GSV、RMC 和 VTG。根據設計的需求來選擇不同的格式,這里采用了常見的GPRMC格式的語句,$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>
3.5.2 地圖顯示
上位機地圖是是利用百度地圖API來實現的[13],由于GPS模塊傳來的GPS信息中的經度、緯度信息是真實的坐標,利用地圖服務商提供的地圖顯示偏差會很大,因為受到國家一些法律法規限制,所有的電子地圖服務提供商都需要給地圖數據加上偏移和加密。所謂的地圖數據加密偏移,其實就是用一個偏移算法對地圖的經緯度做一個加減偏移量,從而達到與實際地圖不一致。偏移算法本身是沒有什么規律可言的,每家地圖服務商都有一套自己的加密偏移算法,國內地圖應用顯示的都不是真實的GPS坐標,所以百度對外提供的坐標系是百度自己的坐標系,而GPS獲得的是原始坐標,兩者不在一個坐標系上,所以有很大的誤差,誤差在千米之外,這顯然不能滿足需要。所以必須進行坐標轉換,把兩者換成統一坐標系。換成原始GPS坐標在國內原則上是違法的,所以只能統一成各個地圖運營商自己的坐標系,本文選擇百度坐標系。
針對目前日照采集作業通信方式單一、作業場景有缺陷的問題,本文以嵌入式系統為平臺,提出了一種基于 GPRS 的遠程無線采集日照數據系統,對當地經緯度、直接輻射輻照度、日照分鐘累計、小時累計、日累計等信息采集獲取技術進行了研究,建立了一套現代化的、適合多場合的數據采集和處理系統。整個作業數據采集系統由ARM中央處理器、采集作業數據的相關傳感器、供電管理電路及GPS模塊、GPRS通信模塊組成。采集的日照數據通過GPRS通信傳送至計算機,用計算機當作數據中心對獲取的數據信息整合處理。用計算機不僅可以實時獲取所需要的信息,而且提供了對已有歷史數據查詢的功能。
[1] CARTER E A,CHRISTENSEN D L,李麗.全球太陽輻射測量的概況[J].氣象科技,1982,6(5):73-75.
[2] 謝偉.太陽輻射計技術分析[J].紅外,2003,12(3):9-15.
[3] 劉火良,楊森.STM32庫開發實戰指南[M].北京:機械工業出版社,2013.
[4] SOLIS D M.C#4.0圖解教程[M].蘇林,朱曄,等,譯.北京:人民郵電出版社,2011.
[5] 鄭杰,趙敬鳳,王海江,等.基于 STM32 的多功能抄表機[J].微型機與應用,2016,35(8):79-81,85.
[6] 楊寧,惠曉強.微弱信號高精度數據采集技術研究[J].現代電子技術,2013,24 (9):71-73.
[7] MACDONALD M,FREEMAN A,SZPUSZTA M.Pro ASP.NET 4.0 in C#2010[M].New York:Apress,2012.
[8] 金旭亮.NET4.0面向對象編程面談應用篇[M].北京:電子工業出版社,2010.
[9] 秦婧.SQL Server 2012王者歸來[M].北京:清華大學出版社,2014.
[10] 劉蓓莉,劉大紅.基于Visual C#的網絡通信編程技術[J].電子科技,2013,26(11):151-153.
[11] 謝斌.MS.Net Visual C#在Socket網絡開發上的應用化計算機與網絡[J].計算機與網絡,2002,24(10):74-79
[12] 劉俊強.SQL Server 2008入門與提高[M].北京:清華大學出版社,2014.
[13] GPS坐標換算為百度坐標[EB/OL].(2014-11-17)[2016-11-17]http://www.cnblogs.com/soundcode/p/4104281.html.
The design and implementation of sunlight data acquisition system
Zhang Guangchao1,Ma Shangchang,Liu Jun2
(1.College of Electronic Engineering,Chengdu University of Information Technology,Chengdu 610225,China; 2.China Huayun Meteorological Science and Technology Corporation,Beijing 102200,China)
According to the problems of bad operation effect,bad real-time performance,low intelligence and low technology of sunlight acquisition system in the field of atmospheric research,in this paper,the communication mode,transmission platform,communication form,position location and data storage of sunlight acquisition system were studied,and a remote wireless collection sunlight data system based on GPRS was proposed.The system takes GPRS network and Internet as the remote signal transmission platform,and adopts the STM32 processor and SIM900A as the basic hardware platform.The good sensing elements and materials are used as sun sensors,and the inductive components and data acquisition processing unit are integrated within the cone of light.The software in computer realizes regular receiving and processing of sunlight data ,and the software has historical data query function and other functions.
sunlight data acquisition; network transmission; GPRS communication; data processing
國家重大科學儀器設備開發專項(2012YQ110205)
TP399
A
10.19358/j.issn.1674- 7720.2017.10.024
張廣超,馬尚昌,劉鈞.日照數據采集系統設計與實現[J].微型機與應用,2017,36(10):85-88.
2016-11-17)
張廣超(1991-),通信作者,男,碩士研究生,主要研究方向:地面氣象觀測自動化。E-mail:1072238017@qq.com。
馬尚昌(1971-),男,博士,教授,主要研究方向:地面氣象觀測儀器、信息獲取與處理、混雜動態系統理論。
劉鈞(1976-),男,碩士,高級工程師,主要研究方向:地面氣象觀測自動化,圖形圖像處理技術,大氣探測信息處理。