基于Arduino微控器的立交桥水位监控及报警系统

2015-06-28 15:57
铁路计算机应用 2015年5期
关键词:高电平水深显示屏

敖 翔

(呼和浩特铁路局 建设管理处,呼和浩特 010010)

基于Arduino微控器的立交桥水位监控及报警系统

敖 翔

(呼和浩特铁路局 建设管理处,呼和浩特 010010)

利用Arduino微控器控制GSM模块SIM900A,以发送短信的方式实现了对公铁立交桥下水深的远程安全监控。系统由Arduino微控器、水位监控模块、LED显示屏警示模块、GSM远程报警模块4部分组成。HC-SR04超声波测距仪探测水位,当其超过警戒线时LED屏闪动警示,同时利用GSM模块发送短信(SMS),远程报警。相关人员收到水位报警信息后及时采取措施处置险情。经过试验,结果证明该系统准确可靠。

Arduino微控器;GSM模块;水位监控

公铁平交道口改建立交是铁路发展的趋势[1],但由于立交桥下的排水功能不完善和设备的故障、缺陷,近年来立交桥下因降雨积水造成的交通堵塞甚至人身伤害事故频发。为提示水深、警示行人,及时报请作业人员现场抽排水、排除险情,亟待研发一种可以准确监控桥下水位并及时发送水深报警信息的智能监控系统。

1 系统装置组成及原理

系统主要由Arduino微控器、水位监控模块、LED显示屏警示模块、GSM远程报警模块4部分组成。结构简图见图1所示。

图1 系统结构简图

此系统采用两组监控传感器分别安装于框构涵洞顶板两侧,两组传感器数据相互校核,经滤波算法产生准确的水位信息并传输至Arduino微控器。由于Arduino微控器体积小巧,可与GSM通信模块一并安装在LED显示屏防水外壳内,形成简单可靠的户外监控系统。

图2显示的是本系统的工作原理流程,其中实线表示水深触发一级水位报警的工作流程图,虚线表示水深触发二级水位报警的工作流程图。

图2 系统工作原理流程图

当系统处于正常监控状态时,超声波测距仪以每秒一次的频率从框构桥两侧位置对水位进行测量,20 s后测出的20组数据进入数组,并经过滤波算法进行校核,输出一个准确的水位信息,利用预定的警戒线对水位信息进行评估,水位30 cm以下为正常水位,不激活报警程序。

如果水位超过30 cm,则触发一级水位报警,微控器通过控制继电器点亮LED显示屏,屏幕显示红色的警告字样并闪烁。警告信息根据不同水位自动调整。

如果水位超过50 cm,则触发二级水位报警,微控器通过继电器给GSM模块通电,模块通电后自动连接GSM网络,微控器通过AT命令向GSM模块发送短信(SMS)通知手机、GSM手持设备或者上位机,信息处理人员迅速响应。SMS警告信息根据不同水位自动调整。

2 水位监控及报警系统的实现

2.1 水位监控模块

2.1.1 超声波水位计原理

超声波指向性强,在介质中传播的距离较远,遇到不同介质分界面时产生反射。因而超声波经常用于距离的测量,尤其适合液面测量。

图3 声波时序图

图3为声波时序图,程序控制微控器给HCSR04D模块的Trig引脚发送一个最少10 us的高电平信号,模块变自动发送8个40 kHz的方波,自动检测并计算Echo返回高电平的时间,距离=(高电平时间×声速(340 M/S))/2。该模块精度高,可精确测距(误差3 mm左右),性能稳定可作为可靠的液位监测模块。

2.1.2 监控模块硬件设计

监控模块硬件设计如图4所示。Vcc引脚和GND引脚分别接入Arduino微控器的5 V电源和接地接口,Echo和Trig接口分别引入I/O接口2和3。程序控制Arduino的I/O接口3发送高电平信号,并监测2接口返回高电平时间完成液面测量。

图4 监控模块硬件设计图

2.1.3 微控器编程

const int TrigPin = 2;

const int EchoPin = 3;

float distance;

void setup()

{

// 初始化串口通信及连接SR04的引脚

Serial.begin(9600);

pinMode(TrigPin, OUTPUT);

// 设置为输入状态,检测引脚高电平时间

pinMode(EchoPin, INPUT);

Serial.println("Ultrasonic sensor:");

}

void loop()

{

// 产生一个10us的高脉冲触发TrigPin

digitalWrite(TrigPin, LOW);

delayMicroseconds(2);

digitalWrite(TrigPin, HIGH);

delayMicroseconds(10);

digitalWrite(TrigPin, LOW);

// 检测高电平时间,并计算出距离(cm)

distance = pulseIn(EchoPin, HIGH) / 58.00;

delay(1000);

}

2.1.4 滤波算法

非接触式测距虽然精度高,且可靠性、抗干扰性强,但考虑到由于设备装在户外,偶尔存在通行人员对水位监控装置产生干扰的情况,虽然系统设计为两组测距仪分开布置,被同时干扰的几率已大大降低,但为了数据稳定,仍需采取一种适合的滤波算法来修正水位信息。

本系统选择防脉冲干扰平均滤波法来进行数据修正,对于偶然出现的脉冲性干扰,可消除由其引起的采样值偏差。对周期干扰也有良好的抑制作用,

平滑度高,适于高频振荡的超声波测距系统。对于液面等变化较为缓慢的环境尤为合适。

原理是通过冒泡法去掉数组中最大和最小的值,剩余所有数据求平局值。

//采样值从小到大排列(冒泡法)

for(j=0;j<N-1;j++)

{

for(i=0;i<N-j;i++)

{

if(value_buf1[i]>value_buf1[i+1])

{

temp = value_buf1[i];

value_buf1[i]= value_buf1[i+1];

value_buf1[i+1]= temp;

}

if(value_buf2[i]>value_buf2[i+1])

{

temp = value_buf2[i];

value_buf2[i]= value_buf2[i+1];

value_buf2[i+1]= temp;

}

}

}

//去掉最大值和最小值,两个超声波传感器获得的剩余8个值分别求和并相加求出最终液面高度

for(i=1;i<N-1;i++)

{

sum1 += value_buf1[i];

sum2 += value_buf2[i];

value = ((sum1+sum2)/(N-2))/2;

}

2.2 LED显示屏警示模块

现一般公铁立交桥下均有油漆涂刷的水位尺作为警示标志用来提示水深。这种方式随时间清晰度也会下降,而且夜间不可见,形成安全隐患。户外常用LED显示屏作为提示窗口,它有亮度高、响应快、寿命长的优点。当水深超过30 cm时,警示显示屏便点亮并不断闪烁,提醒过往行人车辆注意水深。

LED显示屏警示模块工作流程如下:(1)把需要显示的汉字利用取模软件生成字模,见图5所示,储存到一个数组里;(2)调用Arduino的硬件SPI通讯接口,把每8个LED看成是一个十六进制编码;(3)一行行发送出去,发完一行后,再发出换行指令。

2.3 GSM远程报警模块

2.3.1 GSM收发模块简介

SIM900A属于双频GSM/GPRS模块,采用完全SMT封装形式,专为中国市场设计,其性能稳定,外观精巧,性价比高。该模块采用工业标准接口,工作频率为GSM/GPRS 850/900/1 800/1 900 MHz,可以实现低功耗语音、SMS、数据和传真信息的传输。此模块打破了距离的限制并且可以实现监控信息的可靠高效传输。SIM900A采用标准AT命令控制。

图5 文字取模

mySerial.println("AT");

//发送AT命令同步

while (!mySerial.available()) {}

//判断串口状态

mySerial.readBytes(buffer,32);

//读串行通讯内存 (正常,返回OK)

mySerial.println("AT+CMGF=1");

// 发送短信格式,1=文本

mySerial.println("AT+CMGS="189********"");

//接收报警信息的手机或上位机号码

while (!mySerial.available()) {}

mySerial.readBytes(buffer,32);

2.3.2 SMS报警通知

GSM通信模块报警流程见图6所示,其中实线表示触发水深二级报警后微控器的动作,虚线代表微控器控制GSM模块远程报警的动作。

二级水位报警触发后,给SIM900A通信模块通电,将该模块Powkey引脚接地后可设置为上电自启动,见图7所示,根据水深发送不同报警信息至终端机。

3 结束语

本系统利用Arduino微控器控制GSM模块SIM900A,实现了对公铁立交框构桥内水深探测的远程安全监控。既可以给过往行人、车辆以警示,又可以及时通知相关作业人员到场抽排水,缩短阻塞时间。经过多次试验,结果证明本系统具有良好的准确性和可靠性。

图6 GSM通信模块报警流程

图7 SIM900A自启动电路图

[1]郭 湛,邹 波,李 海. 公铁平交道口技术装备安全评价模型研究[J].铁道运输与经济,2012(7):3-4.

[2]程 晨. Arduino开发实战指南:AVR篇[M]. 北京:机械工业出版社,2012,2.

[3](美)班兹(Banzi,M).爱上Arduino [M]. 北京:人民邮电出版社,2011,8.

责任编辑 方 圆

Water Level Monitoring and Alarming System based on Arduino microcontroller

AO Xiang
( Construction Management Off i ce, Hohhot Railway Administration, Hohhot 010010, China )

The GSM module SIM900A was controlled by Arduion microcontroller to implement remote security monitoring under the overpass water depth in the form of sort message. The Water Level Monitoring and Alarming System consisted of the Arduino microcontroller, water level monitoring module, LED display warning module, GSM remote alarm module. HC-SR04 ultrasonic rangef i nder was used to detect the water level. The LED would fl ash and alarming when the water was over cordon, at the same time, the GSM module given remote alarming in the form of SMS short message. Relevant staff would take measures to dispose when he receipted the information. After many experiments, the testing results showed that the System was accurate and reliable.

Arduino microcontroller; GSM module; water level monitoring

U213.81∶TP39

A

1005-8451(2015)05-0013-04

2014-10-29

敖 翔,工程师。

猜你喜欢
高电平水深显示屏
书法静水深流
基于水深分段选择因子的多光谱影像反演水深
一块布就是一个显示屏?
多波束海底地形水深注记抽稀软件对比
一种基于FPGA的PWM防错输出控制电路
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
苍蝇迷恋显示屏
LG申请欧盟商标 或布局MicroLED显示屏
数字电子技术的应用
浅谈物理电路与数字电路