控制/MCU
张广超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的各分段时间的总和[12]。日照时长数据的测量是太阳辐射时间分布测量的重要组成部分。日照时数资料的主要用途是表征当地的气候和描述过去的天气状况,可以认为日照时数较长的地区有强烈的太阳光,产生使人可以保持良好状态的心理效应;另外,合理利用气候资源,研究每日的日照时长数据的变化趋势,在农业上也有很大用途。同时日照时长数据的采集有助于了解太阳、地球表面和大气间的辐射过程、能量转换规律以及各辐射量的时空分布,研究大气成分如悬浮微粒、水汽、臭氧等的分布和变化,满足医学、农业、建筑、工业和家庭等对太阳能技术和辐射资料的要求。此外,辐射的分光谱测量可用来取得气溶胶的光学厚度和大气浑浊度,在农业生物和医疗卫生方面有着广泛的用途。
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所示。
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所示。
2.2GPS模块
由于日照采集站点要布设多个,分布广且数量多,因此需要将采集站点位置信息发送给监控中心。同时日照数据分析时也需要采集站点经纬度信息。基于成本、开发难度及产品现状的考虑,系统中采用美国GPS定位系统作为采集系统的定位模块。其中,本系统采用UBLOX公司的NEO6M作为日照采集系统GPS模块接收芯片,这款芯片能够在偏远或信号较弱的地区接收到卫星信号,定位精度最高可达2.5 m,能够很好地满足本系统的需要;能够提供较高的时间脉冲,其提供的脉冲时间精度能够达到15 ns,同时能够接收GPS完整信号;具有接收50个卫星信号通道的功能,能够接收不同系统的定位信号;接口通信协议简单,易于集成。GPS与STM32模块的通信[5]是通过串口实现的,本系统利用USART接收GPS模块的经纬度信息。GPS模块及其外围电路如图3所示。
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版本设计日照存储数据库Sundata。同时能将数据库的数据同步到上位机软件的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>
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]
全部0条评论
快来发表一下你的评论吧 !