《电子技术应用》

日照数据采集系统设计与实现

2017年微型机与应用第10期 作者:张广超1,马尚昌1,刘钧2
2017/8/7 22:58:00

  张广超1,马尚昌1,刘钧2

  (1.成都信息工程大学 电子工程学院,四川 成都 610225; 2. 华云升达(北京)气象科技有限责任公司,北京 102200)

  摘要:针对目前在气象研究领域中日照采集系统作业质量效果和实时性差、系统智能化程度低以及科技含量低等问题,对日照采集系统的通信方式、传输平台、通信形式、位置定位及数据存储等方面进行了研究,提出了一种基于 GPRS 的远程无线采集日照数据系统。该系统以 GPRS 网络和Internet作为远程信号的传输平台,采用了 STM32 处理器和 SIM900A 作为基本的硬件平台。日照传感器采用良好的感应元件和材料,其感应部件和数据采集处理单元集成在光筒内;计算机端软件实现了对日照数据的定时接收处理和查询历史数据操作等功能。

  关键词日照数据采集网络传输GPRS通信;数据处理

  中图分类号:TP399文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.10.024

  引用格式:张广超,马尚昌,刘钧.日照数据采集系统设计与实现[J].微型机与应用,2017,36(10):85-88.

0引言

  *基金项目:国家重大科学仪器设备开发专项(2012YQ110205)

  世界气象组织对日照时数的定义是:在给定时段内直接太阳辐照度达到或超过120 W/m2的各分段时间的总和[12]。日照时长数据的测量是太阳辐射时间分布测量的重要组成部分。日照时数资料的主要用途是表征当地的气候和描述过去的天气状况,可以认为日照时数较长的地区有强烈的太阳光,产生使人可以保持良好状态的心理效应;另外,合理利用气候资源,研究每日的日照时长数据的变化趋势,在农业上也有很大用途。同时日照时长数据的采集有助于了解太阳、地球表面和大气间的辐射过程、能量转换规律以及各辐射量的时空分布,研究大气成分如悬浮微粒、水汽、臭氧等的分布和变化,满足医学、农业、建筑、工业和家庭等对太阳能技术和辐射资料的要求。此外,辐射的分光谱测量可用来取得气溶胶的光学厚度和大气浑浊度,在农业生物和医疗卫生方面有着广泛的用途。

1系统总体设计

  日照数据采集系统研究主要针对硬件平台的建立、通信系统的搭建、上位机的编写三大部分来展开,其中硬件平台核心采用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所示。

Image 001.jpg

2系统硬件设计

  2.1GPRS模块

  系统选择了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所示。

Image 002.jpg

  2.2GPS模块

  由于日照采集站点要布设多个,分布广且数量多,因此需要将采集站点位置信息发送给监控中心。同时日照数据分析时也需要采集站点经纬度信息。基于成本、开发难度及产品现状的考虑,系统中采用美国GPS定位系统作为采集系统的定位模块。其中,本系统采用UBLOX公司的NEO6M作为日照采集系统GPS模块接收芯片,这款芯片能够在偏远或信号较弱的地区接收到卫星信号,定位精度最高可达2.5 m,能够很好地满足本系统的需要;能够提供较高的时间脉冲,其提供的脉冲时间精度能够达到15 ns,同时能够接收GPS完整信号;具有接收50个卫星信号通道的功能,能够接收不同系统的定位信号;接口通信协议简单,易于集成。GPS与STM32模块的通信[5]是通过串口实现的,本系统利用USART接收GPS模块的经纬度信息。GPS模块及其外围电路如图3所示。

Image 003.jpg

  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系统上位机设计

  3.1软件设计与流程

  上位机数据接收软件是在Visual Studio环境下开发的[78],用户可在该环境下运用不同的程序语言进行开发。本设计选用了Visual C#2010,它是一种面向对象的编程语言,它编写的应用程序可运行于.NET Framework上。本设计的上位机软件希望能够利用多线程去处理下位机发来的日照数据和GPS数据并且显示到不同的接收窗口中,在GPS信息窗口通过将定位的坐标转换后调用百度地图API实现位置的显示,同时将显示在上位机界面的数据存放本地计算机,也可以上传数据库,本系统采用SQL Server建立数据库及数据表[9]。整个软件系统流程图如图4所示。

 

Image 004.jpg

  3.2上位机通信

  目前大部分的网络数据通信都是采用上位机端和客户端的形式完成的。这种数据通信方式一般通过两个不同的应用程序实现,它们运行于不同的机器上并且通过建立网络连接实现数据传输。通常客户端与上位机的通信方式一般有两种形式,一种是HTTP的形式,另一种是基于Socket的方式。HTTP通信方式是客户端先向上位机发起连接请求,然后等待上位机对其做出应答,此时客户端才能与上位机传输数据,一旦这次数据传输结束后就会自动释放本次连接,下次传输数据时客户端还需要重新与上位发起连接,再次等待上位机的应答。而Socket通信形式是客户端发起与上位机建立连接的请求后,上位机处理请求并与之建立连接,一旦连接建立好了之后即可以进行数据的传输,免除了许多拆包、封包等复杂的网络数据传输过程,采用数据流的格式进行数据的发送,一旦建立连接后不需要每次向上位机建立连接请求,并且具有数据传输准确率高的优点,因此 Socket 这种通信模式被广泛地运用于网络数据的传输。本系统就是采用基于Socket通信方式来完成数据通信。本系统服务器与客户端之间的通信模型如图5所示。

 

Image 005.jpg

  Socket的通信模型有两种[10]:TCP和UDP。TCP(面向连接方式)采用IP流的形式数据发送,数据的传输过程当中丢包少,传输可靠。UDP(无连接服务)采用数据报文的方式实现数据的收送,不保证数据的可靠性。由于本系统传输的数据量不是很大,但是要求数据可靠,因此为了确保传输的可靠性,减少丢包,本系统采用了TCP的形式进行数据的传输。

  3.3Socket编程

  由于本设计选用的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.1GPS坐标解析

  GPS坐标解析输出数据采用的是ASCII码,内容包含了纬度、经度、高度、速度、日期、时间、航向以及卫星状况等信息,常用语句有6 种,包括GGA、GLL、GSA、GSV、RMC 和 VTG。根据设计的需求来选择不同的格式,这里采用了常见的GPRMC格式的语句,$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11><CR><LF>各个字符依次代表着不同的信息,根据需要提取了重要的经度、纬度信息,由于上述经度、纬度数据格式采用的是:度度分分.分分分分(ddmm.mmmm)格式,在程序中通过编写函数将其转化为度的格式,为后面的坐标转换提供方便。

  3.5.2地图显示

  上位机地图是是利用百度地图API来实现的[13],由于GPS模块传来的GPS信息中的经度、纬度信息是真实的坐标,利用地图服务商提供的地图显示偏差会很大,因为受到国家一些法律法规限制,所有的电子地图服务提供商都需要给地图数据加上偏移和加密。所谓的地图数据加密偏移,其实就是用一个偏移算法对地图的经纬度做一个加减偏移量,从而达到与实际地图不一致。偏移算法本身是没有什么规律可言的,每家地图服务商都有一套自己的加密偏移算法,国内地图应用显示的都不是真实的GPS坐标,所以百度对外提供的坐标系是百度自己的坐标系,而GPS获得的是原始坐标,两者不在一个坐标系上,所以有很大的误差,误差在千米之外,这显然不能满足需要。所以必须进行坐标转换,把两者换成统一坐标系。换成原始GPS坐标在国内原则上是违法的,所以只能统一成各个地图运营商自己的坐标系,本文选择百度坐标系。

4结论

  针对目前日照采集作业通信方式单一、作业场景有缺陷的问题,本文以嵌入式系统为平台,提出了一种基于 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.


继续阅读>>