城市污水管道气体监测终端的设计与实现
2022-09-17孟庆龙
孟庆龙,顾 然,徐 梅
(1.齐鲁工业大学(山东省科学院)山东省计算中心(国家超级计算济南中心),山东 济南 250014;2.齐鲁工业大学(山东省科学院)计算机科学与技术学院,山东 济南 250353)
0 引 言
城市污水管道中污水的来源很多,其成分也很复杂。它们在污水管道内会发生多种复杂的化学反应,生成多种气体,如:CH、HS、NH、CO、HCN、O和NO等。其中HS是一种有毒气体,它能损害人体的呼吸系统,造成细胞组织严重缺氧,甚至危及生命。高浓度的HS气体能瞬间使人嗅觉减退,无法察觉危险,当浓度超过1 000×10时可瞬间致人死亡。此外,HS气体还会腐蚀管道。CH是一种可燃气体,在污水管道中的浓度太高,遇明火或者电火花极易爆炸,被称为城市的“隐形炸弹”。为了及时发现这些隐患并采取措施避免灾害的发生,需要设计一种城市污水管道气体监测系统。
文献[1⁃2]设计了污水管道可燃气体监测系统,文献[3]设计了多种气体的监测系统。在此基础上,本文提出了气泵采样的新方法,并结合液位的测量对采样进行控制,使得监测终端更加安全。
本文设计在系统架构和通信方式上参考了文献[4⁃7],系统由监测终端和监测中心两部分组成。监测终端通过各种气体传感器测量气体的浓度,并通过GPRS通信模块发送到监测中心。监测中心将各监测点的各种气体的浓度显示出来,并存储分析和打印。下文主要介绍监测终端的结构、原理和功能。
1 监测终端的硬件设计
本文在终端的设计参考文献[8⁃11],设计气泵采样机构,并根据该系统的特点设计了太阳能供电系统。
1.1 整体设计
污水管道分布在城市的大街小巷,但大多没有电源,所以使用太阳能供电是最佳选择。本文根据管网结构选择监测点,在监测点开设监测井,立固定杆;再将太阳能板和终端箱固定在固定杆上,将取气管和水位传感器投入监测井内。终端结构如图1所示。
图1 终端结构图
终端除了测量气体浓度,还测量污水水位。污水水位也是人们所关心的,如果污水溢出,将会给生产生活带来很大的影响,同时也影响气体的测量。水位的测量多采用24 V两线制的感压型投入式水位变送器。由于污水中的固体物质容易堵塞变送器的进水孔,所以可以用具有一定容积的橡胶囊对水位变送器加以保护,并定期更换。太阳能板采用常用的18 V太阳能板。终端箱含有12 V电池,并能自动控制其充放电。为减少电源损耗,终端箱以间断方式运行,其周期可人工设定。终端箱有工作和休眠两种状态,工作时给水位变送器供电,测量水位。如果水位低于取气管入口,则给取气泵供电取气,并同时给气体传感器供电预热,再给GPRS通信模块供电,使其与监测中心的服务器建立连接。一段时间后读取气体传感器,并将读到的数值发送给GPRS模块,发送完毕后,关闭各部分电源,进入休眠状态。
1.2 终端箱内部设计
终端箱是终端的关键部分,内部包括控制器、取气泵、采样盒、多种气体传感器、GPRS模块、电池、充电模块等,结构图如图2所示。
图2 终端箱内部结构图
电源转换和充电电路参考文献[12⁃13]。其中控制器是核心部件,可输入12 V电源进行降压和升压,为自身和其他部件提供电源,并能控制这些电源,在休眠时将它们关断。水位变送器输出的是4~20 mA的电流信号,控制器的AI1是能够接收4~20 mA的模拟量输入通道。甲烷传感器和硫化氢传感器输出的是0~5 V的电压信号,AI4和AI5是电压型的模拟量输入通道。控制器与GPRS模块的连接使用RS 485总线。GPRS模块上电后自动连接监测中心的服务器,并进入透传模式。控制器直接发送数据给服务器。服务器的IP地址和端口号设置于GPRS模块中。控制器具有一个RS 232通信接口,用于连接计算机进行各种参数的设置,这些参数包括:终端编号、正常间隔、快发间隔、水位参考点、水位变送器量程、甲烷零点、甲烷量程、硫化氢零点、硫化氢量程、水位上线、甲烷上限、硫化氢上限和日期时间等。
1.3 控制器的设计
上述控制器的功能采用单片机和相关接口电路实现。控制器包括以下几个部分:单片机、模拟量输入电路、RS 232接口电路、RS 485接口电路、电源升压电路、电源降压电路、开关电路。单片机使用TI公司的MSP430F5438,它具有16路12位的模数转换器、4路串行通信接口、支持JTAG,可以在线调试。模拟量输入电路分为电流方式和电压方式两种,每种各3路。RS 232接口电路采用芯片MAX232EESE,RS 485接口电路采用芯片SN65HVD1781⁃Q1。电源升压电路采用芯片SX1308将12 V升到24 V。降压电路使用TPS5430DDA将12 V降为5 V,使用线性稳压器HT7333⁃1从5 V得到3.3 V电源,用于单片机。开关电路由2个场效应管组成,一个N沟道的AO3400和一个P沟道的AO3401。此外,还有一个发光二极管,用于指示控制器的状态。
2 监测终端的软件设计
软件设计参考文献[14]。监测终端的软件包括以下几个部分:初始化、水位的测量、气体浓度的测量、数据上发、设置指令处理和定时休眠。程序流程如图3所示。
图3 监测终端的软件程序流程
该软件用到了MSP430F5438的以下几个功能模块:实时时钟(RTC)、ADC、UART0、UART1。实时时钟模块用于实现日期和时间及程序中的各种定时操作。ADC模块将水位变送器和气体传感器输出的模拟信号转换成数字信号,以便于单片机的后续计算。UART0用于连接计算机,处理各种参数设置指令。UART1连接GPRS模块,用于向服务器发送数据。这些模块在使用前要进行必要的设置,如定时时间间隔、ADC的参考源和UART的波特率等,它们的设置程序也叫初始化程序,具体步骤如下:
//初始化实时时钟
void init_RTC()
{
RTCPS0CTL|=4<<2;//设置预分频系数,使RTC每1/1 024 s中断一次
RTCPS0CTL|=1<<1; //使能预分频器中断
RTCCTL1 &=~(1<<6); //启动实时时钟
RTCCTL1|=1<<5;//设置成实时时钟模式,而非32位计数模式
RTCCTL0|=1<<4;//RTCRDY中断使能,用于刷新时间和日期
}
//初始化ADC:
void initADC()
{
P6SEL|=0x7F; //使能ADC通道0至通道6
ADC12CTL0 &=~ADC12ENC; //设置前关闭ADC
ADC12CTL0=ADC12SHT02 //设置ADC时钟
+ADC12MSC //多通道顺序转换
+ADC12REF2_5V //选择2.5 V参考源
+ADC12REFON //打开参考源
+ADC12ON; //打开ADC
ADC12CTL1=ADC12SHP //使用采样定时器
+ADC12CONSEQ_1; //多通道顺序模式
ADC12MCTL0=C12SREF_1+ADC12INCH_0;//设置通道0参考源和存储地址
ADC12MCTL1=C12SREF_1+ADC12INCH_1;//设置通道1参考源和存储地址
ADC12MCTL2=C12SREF_1+ADC12INCH_2;//设置通道2参考源和存储地址
ADC12MCTL3=ADC12SREF_1+ADC12INCH_3;//设置通道3参考源和存储地址
ADC12MCTL4=ADC12SREF_1+ADC12INCH_4;//设置通道4参考源和存储地址
ADC12MCTL5=ADC12SREF_1+ADC12INCH_5;//设置通道5参考源和存储地址
ADC12MCTL6=ADC12SREF_1+ADC12INCH_6+ADC12EOS; //设置通道6参考源和存储地址
ADC12CTL0|=ADC12ENC; //打开ADC
ADC12IE|=ADC12IE6; //中断使能
}
//初始化串口0
void init_com0(void)
{
P3SEL|=0x30; //使能RXD0、TXD0管脚
UCA0CTL1|=UCSWRST; //复位模式
UCA0CTL1|=UCSSEL_2; //选择时钟SMCLK
UCA0BR0=6; //以下两句设置波特率
UCA0BR1=0;
UCA0MCTL=UCBRF_13 //第一阶段调制模式
+UCBRS_0 //第二阶段调制模式
+UCOS16; //过采样模式
UCA0CTL1 &=~UCSWRST; //运行模式
UCA0IE|=UCRXIE; //使能接收中断
UCA0IE|=UCTXIE; //使能发送中断
}
串口1的初始化和串口0相似。初始化完成后,执行图3所示的流程图中的程序。在程序执行过程中要处理4个中断,即RTC中断、ADC中断、串口0中断和串口1中断。RTC中断分为1/1 024 s中断和1 s中断两种,可以通过RTCIV寄存器的值来区分。1/1 024 s中断时对各种软件定时器计时;1 s中断时更新日期和时间的值。ADC中断时,说明模/数转换完成,这时可以从结果寄存器中读出数据,以便进行后面的计算。串口0每接收到一个字节数据或发送完一个字节数据,就会产生一个中断。寄存器UCA0IV的值可用来区分接收中断和发送中断。如果是接收中断则将接收到的字节存入接收缓冲区,直到接收完一帧数据。如果有3个字节的时间没有数据接收则认为一帧结束,即对该帧进行校验,并对指令进行相应的处理。如果是发送中断,则发送缓冲区的下一个字节至串口0的数据寄存器,直到发送缓冲区的数据发送完毕。串口1中断的处理和串口0相似。
3 结 语
本文所设计的城市污水管道监测终端与监测中心服务器软件配套,已在某城市运行,取得了很好的效果,使城市管理部门能及时掌握污水管道的水位和气体的浓度情况,及时采取处理措施,保障了居民的财产和生命安全。