基于GPRS技术的河流水位遥测系统设计论文_刘风雷

深圳市水务局 广东深圳 518036

摘要:远程数据传输是水文自动测报及三防指挥的关键。在水文自动测报中采用GPRS技术,能及时、完整、准确地获取本区域内各水文测点的数据,而且费用较低。本文介的河流水位遥测系统,利用了GPRS技术实现了河流水位信息的远程监测。

关键词:水位;监测;GPRS

1、系统整体架构

河流水位遥测系统主要由现场监测终端、通信网络和远程监控端3部分组成。现场监测终端由控制模块,数据采集模块,信号处理模块和电源管理模块组成。远程监控中心由一台具有公网IP地址的云服务器主机和上位机软件组成。通信网络包括GPRS通信模块SIM900A、GPRS网络。SIM900A内置TCP/IP协议,GPRS模块插上SIM卡经过AT指令配置后可以接入GPRS网络,将数据发送到远程监控端。系统工作过程为:首先数据采集模块进行河流水位数据的采集,经信号处理模块处理后送到单片机,单片机处理后经串口送到GPRS模块发送,再经GPRS通信网络将数据送到监控端。河流水位遥测系统如图1所示。

2、系统硬件设计

系统硬件由河流水位信息采集模块、水位信息显示模块、控制单元和数据发送模块3部分组成。水情信息采集模块主要由水位传感器和I—V转换电路组成,显示模块由字符型液晶显示模块LCD1602组成,控制单元由STC12C5A60S2单片机组成。数据发送模块主要由SIM900A模块组成。系统硬件组成如图2所示。

水位传感器选用LC-SW1型水位传感器,LC-SW1型水位传感器是投入式液位变送器,由壳体、放大器、接线端子、防护帽、中空导线等组成。宽电压抗冲击设计,体积小、重量轻、抗震动。输出有两线制和三线制,设计中采用两线制接法,输出4~20mA电流信号,正极接24V,负极接输入-24V。考虑到STC12C5A60S2单片机的I/O引脚要求输入电压信号,设计了I-V转换电路,与STC12C5A60S2单片机的连接如图2所示。

LCD1602的4引脚RS接STC12C5A60S2的P2.0I/O口,5引脚R/W接P3.5口,使能端6引脚E接P3.6口,数据总线DB0~DB7接P0I/O口。

STC12C5A60S2单片机是一款功能非常强大的单片机,有两个串行通信接口,串口1的功能及操作与传统51单片机串行口相同;串口1可以使用定时器1作为波特率发生器,而串口2只能使用独立波特率发生器作为波特率发生器,控制水位传感器和数据发送模块SIM900A的工作。在该系统中,使用串口2与SIM900A相连接,P1.2和P1.3作为串口2,负责发送控制SIM900A指令,串口1主要是用来调试,将相关的调试信息从串口1输出。

数据发送模块SIM900A是SIMCom公司提出的一款尺寸紧凑的GSM/GPRS模块,内嵌TCP/IP协议,主要是为了实现SMS与TCP功能,语音接口没有引出,外部功能模块主要分为串口、电源、SIM卡、以及单片机相应接口。

硬件系统通过SIM900A模块接入Internet和监控端相连接,单片机STC12C5A60S2和SIM900A通过串口连接,利用AT指令收发数据,实现串口通信。由于计算机串口输出的是RS232电平,而单片机和SIM900A模块都是TTL电平,不能直接进行通信,需要进行电平转换才能进行通信。本系统选择美信(MAXIM)公司专为RS232标准串口设计的单电源电平转换芯片MAX232来进行电平转换。

3、系统软件设计

系统软件设计主要包括:现场监测端软件设计和远程监控端软件设计。现场监测端软件设计包括主控制器程序的设计、水位信息采集处理程序设计和监测端网络通信程序的设计。软件工作过程为:首先完成主控制器STC12C5A60S2串口的初始化和GPRS模块的初始化,初始化完成后开始水位信息的采集和处理,GPRS模块SIM900A发起TCP连接,连接成功,主控制器将水位信息数据打包通过GPRS网络发送到远程监控端。现场监测端工作流程如图3所示。远程监控端软件设计包括远程监控端网络通信程序设计。

3.1 主控制器STC12C5A60S2程序设计

主控制器STC12C5A60S2程序设计流程为系统初始化(主要包括定时器初始化、串口初始化、端口初始化等)、串口接收发送数据、按键键值的读取、与SIM900A的通信等。STC12C5A60S2内部有两个串口,第一个串口与通用51单片机相同,在P3.0和P3.1口;第二个串口是可以配置的,默认在P1.2和P1.3端口。对于串口1初始化,配置串口模式为8位数据位,1位起始位,1位停止位,无奇偶校验位,使用定时器T1参数波特率,波特率为9600 b/s。配置完成,开定时器T1中断,启动定时器T1,串口接收中断。串口2的初始化和串口1的类似,只是串口2使用的是STC12C5A60S2内部的波特率发生器BRT,串口2的配置模式为8位数据位,1位起始位,1位停止位,无奇偶校验位,波特率为9600b/s。

配置好串口之后,只需要往SBUF写入字符就可以通过串口发送出去,在串口发送的时候需要检测串口发送的忙碌位,在不忙时即可串口发送,同时在发送的时候暂时关闭串口接收中断,使发送和接收互不影响(接收的数据不会丢失,缓存在寄存器中,只是暂时没有接收中断,一旦发送完成,开始接收中断,就会处理接收),保证了系统的可靠稳定性。下面代码是发送一个字符的函数,目的是为了方便调试:

void Uart0_PutChar(char ch)

{

ES = 0;

SBUF = ch;

while(!TI);

TI = 0;

ES = 1;

}

void Uart0_PutString(char * pString,unsigned int len)

{

unsigned short i = 0;

for(i = 0;i < len;i++){

Uart0_PutChar(pString[i]);

}

}

串口的接收是以中断的方式接收的,接收的格式是8位数据位,1位起始位,1位停止位,无奇偶校验位,波特率为9600b/s。当使能串口接收中断(ES = 1),串口有数据时,STC12C5A60S2会跳转到串口接收中断函数中,数据缓存在SBUF里。当串口接收中断时,RI为1,将数据读入到Temp,这样就可以完成串口的接收。

3.2 监测端网络通信

监测端网络通信程序流程为通信模块SIM900A的初始化、PDP的上下文激活、GPRS数据的读取/发送、GPRS网络状态的检测。SIM900A的初始化完成GPRS网络连接方式、传输方式、附着和分离GPRS业务、启动任务并设置接入点、启动连接和获取本地IP的设置。连接方式设为单点连接,传输方式设为透明传输方式,附着GPRS业务,设置参数为“AT+CGATT=1”,GPRS接入点APN(Access Point Name)设置为"AT+CSTT=\"CMNET\"",CMNET(China Mobile Net)是GPRS接入点名称,CMNET提供了NAT服务,使用该服务的手机可以直接访问Internet,CMNET可用于PC,笔记本电脑,PDA等设备实现GPRS上网[5]。考虑到系统设计需要,GPRS接入点名称设置为CMNET;通过AT 指令"AT+CIICR"激活移动场景,发起GPRS连接,GPRS连接成功后,向串口发送指令"AT+CIFSR",获取本地IP地址。SIM900A的初始化完成后,建立TCP连接,发送数据。首先进行初始化,设置连接模式、端口号和IP地址,通过指令"AT+CIPSTART=\"TCP\",\"wap.baidu.com\",\"80\""完成。再利用AT指令进行数据的发送,使采集到的水位信息数据发送到GPRS网络。在完成GPRS 数据传输过程中,相应AT 命令必须设置,但相邻AT命令间要有一定延时,经验证约为2 s。SIM900A模块建立TCP连接、打包发送水位信息数据程序如下:

void GPRS_TCP_LINK()

{

UART_SEND_STR(AT_CIPSTART,strlen(AT_CIPSTART));

UART_SEND_STR(AT_END,2);

m_long_delay(160);

}

void GPRS_TCP_SEND_INIT()

{

UART_SEND_STR(AT_CIPSEND,strlen(AT_CIPSEND));

UART_SEND_STR(AT_END,2);

m_long_delay(160);

}

void GPRS_TCP_SEND_DATA(char * msg,unsigned int len)

{

UART_SEND_STR(msg,len);

UART_SEND_CHAR(0x1A);

UART_SEND_CHAR(0x0D);

m_long_delay(100);

}

3.3 监控端网络通信设计

监控端网络通信设计实现TCP服务器的建立和监控端TCP连接的建立。SIM900A分配到GPRS网络的IP是动态的,重新连接网络后IP变化,再次通过设备建立IP连接变得困难。同时设备只要能连接Internet,就能访问具有公网IP的主机。为了实现数据的稳定可靠传输,有必要设置服务器,本系统采用云服务器。服务器网络通信采用Microsoft Visual basic 6.0 进行编写。利用TCP连接方式,Socket建立一个TCP服务器端口供GPRS模块连接。在 TCP 连接建立后,监控端会将其用户名和密码信息发到服务器,若用户名和密码正确,则显示用户上线,否则服务器断开连接。服务器还具有识别命令的功能,它能识别监控端发上来的命令,然后执行相应请求。

监控端设在能与Internet 连接的计算机上。监控端通过向服务器发送命令来获取信息,或者传送数据到水位数据监测端。监控端和云服务器连接,实现数据的收发,就是监控端建立TCP连接。监控端TCP连接建立后,就可以开始接收水位监测终端发送来水位信息,并对水位信息处理。

4、系统测试

以XX河作为河流水位监测目标,STC12C5A60S2作为水位监测端控制中心,SIM900A作为水位信息无线发送模块,LC-SW1型水位传感器测量水位。利用云服务器和一台连接Internet网络的计算机作为监控端。经过测试,系统运行稳定,水位数据传输正常,满足实时监测要求。测试中选择该河流某段的5个不同位置进行测试,现场的实际测试值与监控端的测试值比较,相对误差在5%以内。远程监测端的测试结果和监控端的值进行比较如表1所示。

5、结束语

将数据采集与GPRS技术相结合,改变了以往有线传输的局限,能够实现监测端的无人值守功能。系统结构简单,水位采集监测端仅需要水位传感器、单片机、电源模块和GPRS无线模块,易于扩展,可以增加或删减水位监测设备。GPRS网络覆盖广,基本不受地理位置限制,可以应用于交通不便、没有电力的偏远地区;通信费用低廉,可降低数据传输成本;网络稳定,可保证数据实时在线。这为改善河流水位信息采集工作的效率,实现河流水位监测站的无人值守,为积累丰富、详实的水文资料提供了有力保障,有较高的应用与推广价值。

参考文献:

[1]胡胜利,万晋军.基于GPRS的地下水自动监测系统设计[J].水利水电技术,2011,42(1):89-91.

[2]陈东升.基于GPRS的下水道气体远程监测系统设计[J].计算机测量与控制,2014,22(12):3932-3934.

[3]IONEL R,PITULICE L,VASIU G,et al. Implementation of a GPRS based remote water quality analysis instrumentation [J]. Measurement,2015,65(4):81-93.

[4]李凌.Winsock2网络编程实用教程[M].北京:清华大学出版社,2003:120-156.

论文作者:刘风雷

论文发表刊物:《基层建设》2017年第16期

论文发表时间:2017/10/16

标签:;  ;  ;  ;  ;  ;  ;  ;  

基于GPRS技术的河流水位遥测系统设计论文_刘风雷
下载Doc文档

猜你喜欢