基于ARM的嵌入式多参数监护仪设计与实现
王晓丹 陈越超
摘 要:针对煤矿开采过程中,甲烷、一氧化碳和粉尘等有害气体会不断积累,浓度不断增大,引起爆炸或中毒,造成安全隐患。文章结合传感器技术、单片机技术和通信技术等技术,设计一种基于Arduino的矿井多参数监测仪,实现对矿井下温度、湿度及粉尘、甲烷、一氧化碳等气体浓度进行实时测量、显示。
关键词:环境监测系统;Arduino;甲烷检测;一氧化碳检测
中图分类号:TD175 文献标志码:A 文章编号:2095-2945(2017)36-0028-02
我国能源目前仍以煤碳资源为主,而且随着社会经济的飞速发展,煤炭资源需求量也在不断增加,煤矿安全生产就显得尤为重要,能够实时准确地监测矿井下环境参数就显得尤为重要。煤炭开采过程中,甲烷、一氧化碳和粉尘等有害气体会不断积累,浓度不断增大,可能引起气体爆炸或人员中毒,造成安全隐患。如何有效、快速、精准地监测矿井下的各项环境参数的实时数值,从而对矿井的安全进行实时预警处理,已成为矿井安全生产的重要组成部分,本监测仪采用Arduino开发板实现矿井环境参数的采集与预警。
Arduino是源自意大利的一个开源代码的硬件项目平台,该平台包括一块具备简单I/O功能的电路板以及一套程序开发环境软件。Arduino有“电子积木”之称,可以用来开发交互产品,比如可以读取大量的开关量和传感器信号,并且可以控制电灯、电机和其他物理量;Arduino也可以开发与PC相连的周边装置,也可以购买已经组装好的模块。Arduino的开发环境(Arduino IDE)是完全免费而且是绿色开源的,无需安装,下载完成并解压后就可以直接打开使用,Arduino开发环境是基于Eclipse的软件平台,采用类C的语言进行编程,模块化的封装函数供程序开发者调用,同时开发者可使用USB将编写好的程序烧制到Arduino开发板,提高其灵活性。
1 设计原理
本监测仪由Arduino控制模块、温湿度检测模块、甲烷浓度检测模块、一氧化碳检测模块显示模块等部分构成,系统总体框图如图1所示。Arduino控制模块采集各传感器模块检测信号,进行数据处理与分析,将实时监测数据在液晶屏中显示,并将实时监测数据与阈值进行比较,当某一个参数指标达到阈值,报警装置发出声光报警,同时将数据传输到控制室,有利于矿井管理人员及时了解矿井安全情况,对生产环境进行正确评估。
2 硬件设计
本监测仪采用的Arduino Mega2560的核心处理器,具有多达54路数字I/O口(其中16路可作為PWM输出),16路模拟输入,一个电源插座,一个ICSP Header和一个复位按钮,一个16MHz晶体振荡器,一个USB口(便于在线进行程序调试),4路UART接口。同时能兼容为Arduino UNO设计的扩展板。本监测仪采用5V电压供电,将甲烷传感器、一氧化碳传感器、粉尘传感器检测的数据传给Arduino进行A/D转换、数据处理与分析,采用DHT11采集温湿度数据,与Arduino数字端口4相连,声光报警电路与数字端口5、6相连、显示电路采用LCD12864串口方式与数字端口3、8和9相连,串口电路与TX和RX相连,系统的硬件连接如图2所示。
2.1 一氧化碳检测模块
一氧化碳传感器采用ME3-CO气体传感器,它是三电极电化学传感器,由于电化学传感器的特性,在未上电时,传感器的引脚会由于化学反应积攒电荷,因此,本设计选用P沟道结型场效应管短接参考电极和敏感电极之间,进行放电。
ME3-CO气体传感器输出为电流信号,且当一氧化碳浓度从0ppm~500ppm变化时,电流的变化为0μA~35μA,属于微小电流信号,单片机无法处理,因此信号处理电路设计了I/V转换电路和电压放大电路两部分。一氧化碳检测模块电路原理图如图3所示。
U1B完成电流-电压转换功能:
U1=I×Rf-0.5
式中:I为传感器输出电流值;Rf为运算放大器U1B的反馈电阻,且Rf=R6;U1为运算放大器U1B的输出电压。
U1C完成电压放大功能:
式中:Uo为运算放大器U1C的输出电压,即检测模块输出电压。
2.2 甲烷浓度检测模块
甲烷传感器采用MJC4/3.0L气体传感器,它是催化燃烧式传感器,具有快速的响应和良好的重复性、选择性,桥路输出电压呈线性等特点,由于传感器输出信号较强,所以本设计采用一级放大电路对传感器输出信号进行放大。甲烷浓度检测模块电路原理图如图4所示。图中R4、R13与传感器的敏感元件、参考元件组成惠斯登电桥,输出电压分别为U12和U11,R3=R14,R7=R9,Uo1为甲烷浓度检测模块输出电压。
3 软件设计
系统软件设计由上位机软件和下位机两部分组成。
下位机软件设计:
下位机采用“自上向下”“模块化”的程序设计思想对各模块进行设计,实现过程如下图5所示,系统主程序包括初始化模块、数据采集子模块、数据处理子模块、显示及报警模块、通信模块等,串口初始化和波特率设置构成初始化模块,数据采集子模块包括通过AD采集甲烷、一氧化碳、粉尘气体浓度和数字温湿度检测,数据处理子模块包括数字滤波和补偿算法,显示及报警模块包括LCD显示模块和声光报警模块,通信模块包括数据接收和数据发送等。
下位机软件设计使用Arduino IDE编写,该软件基于C语言开放环境。下位机软件包括各种传感器的数据采集程序、数据处理程序、显示程序及串口发送程序。初始化程序中设置波特率、端口模式,初始化串口,运行EEPROM测试程序等。传感器测量程序测量温湿度、甲烷、一氧化碳和粉尘等环境信息,对比个各参数的报警限,超出报警线,进行声光报警,最后按照一定协议通过串口发送给上位机,数据发送的时间间隔为30s。
上位机软件采用LabXIEW编写,通过接受串口数据,经过解码协议进行解码,然后将数据在显示控件实时显示,绘制成曲线图显示,超出报警线时可以发出报警。
LabXIEW(实验室虚拟仪器工程工作台)是NI(美国国家仪器公司)推出的图形化开发软件。是一种用图标代替文本行创建应用程序的图形化编程语言(G语言)。采用数据流的编程方式,程序框图中节点之间的数据流向决定了函数的执行顺序。图形化的编程方法使编程变得简单、生动有趣并且易于理解和掌握。LabXIEW软件开发的工作流程:确定功能要求→建立LabXIEW工程→设计流程图→设计前面板→使用虚拟串口和串口助手调试VI→生成规范→完成设计。
4 结束语
本监测仪与其他的监测系统存在较大的不同,它可以通过粉尘浓度、甲烷浓度、一氧化碳浓度、温度、湿度的集成检测完成矿井多参数检测;通过液晶显示器使矿井下工作人员能够掌握实时参数数据,并在超出报警线时通过蜂鸣和指示灯发出声光报警,发出安全警示,同时将检测数据通过网络传输给控制室,对于提升矿井的实时安全状态评价具有一定的意义。
参考文献:
[1]张雪平,杨兴全.基于物联网的煤矿安全监测系统研究[J].电子测试,2014:2240-2243.
[2]刘楚红,董震.基于Arduino的倒车雷达系统设计[J].现代电子技术,2014,37(17):148-150.
[3]蔡睿妍.Arduino的原理及应用[J].电子设计工程,2013,20(16):155-157.endprint