黄安贻,徐心怡
(武汉理工大学 机电工程学院, 湖北 武汉 430070)
我国对油气输送站场安全监管要求越来越严,随着引入的监控设备数量不断增多,整体监控系统耗电量逐渐增大,而站场地理位置特殊,导致供电系统较差甚至无供电系统,常采用太阳能蓄电池供电。太阳能蓄电池的使用主要考虑太阳能板组件大小及蓄电池容量两方面[1-2],均受限于现场实况及设备的功耗问题。因此笔者以温湿度监控为例,设计了一种低功耗油气输送站场现场温湿度数据采集节点。
目前油气输送站场对现场温湿度数据采集常采用PLC(programmable logic controller)系统、SCADA(supervisory control and data acquisition)系统、或设计功能型监测系统实现现场数据采集传输。PLC系统及SCADA系统适用于多数据的监测及对现场设备的控制,系统的功耗较大,并不适用于一些无供电系统的偏远站场[3-5]。功能型监测系统更多研究利用无线传输技术来降低系统功耗,如LoRa(long range radio)物联网技术、GPRS(general packet radio service)技术、及NB-IoT(narrow band internet of things)等技术[6-8]。而数据采集系统的前端设备不止无线传输模块,还包括传感器、主控器等模块,目前针对主控器的低功耗设计利用STM系列或51单片机居多。程恩路等[9]利用低功耗ARM9单片机作为自动气象站主控器,通过硬件设计来降低气象站功耗。肖汉光等[10]利用STM32系列单片机结合DS18B20温度传感器设计土壤环境监测系统的监测节点。程艳等[11]针对常用的STM系列、51单片机与TI公司研发的MSP430系列单片机进行功耗对比,相较STM系列或51单片机而言,MSP430系列单片机的运行功耗更低,更适用于偏远站场无供电情况。因此笔者选择MSP430F149单片机作为主控器,结合DHT11温湿度传感器通过单总线连接设计低功耗温湿度采集节点,配以单片机16位定时器Timer_A精准定时采集上传温湿度数据,具有功耗低、电路简单、性能可靠等优点[12]。
为在无供电系统情况下实现站场温湿度监控,现设计站场低功耗温湿度数据采集节点。数据采集节点采用太阳能蓄电池进行供电,选用低功耗MCU(microcontroller unit)采集站场温湿度数据,并利用4G RTU(remote terminal unit)模块实现采集节点数据远传。数据采集节点结构如图 1所示。
图1 数据采集节点结构
4G RTU模块主要负责汇总温湿度采集节点的数据并发送至远端上位机,实现数据传输,便于后端上位机对站场温湿度数据进行分析与处理。
温湿度采集节点主要由温湿度传感器、MCU微控制单元组成,实现环境温湿度数据采集以及定时上传功能。
结合油气输送站场实际情况,针对无供电系统问题,首先从硬件选型方面考虑降低功耗,选择MSP430F149单片机作为油气输送站场温湿度数据采集节点的MCU。其次通过软件对单片机的低功耗工作模式进行选择,将低功耗工作模式与定时功能结合使用从而降低功耗。MSP430F149单片机,一款由TI公司推出的超低功耗单片机,有多种低功耗工作模式可供选择,各模式下活跃的时钟及消耗电流量如表 1所示。选择MSP430F149单片机LPM3低功耗工作模式作为MCU的休眠状态,同时选择功耗较低的DHT11温湿度传感器以及MAX3232芯片分别进行温湿度数据采集和数据转换,二者在工作时电流分别为2.5 mA和0.3 mA。
表1 MSP430F149低功耗模式
采集节点能耗的大小主要与采集节点单位时间内功耗及工作时长有关,在工作时长相同的情况下,尽量多运用单片机的低功耗模式代替工作模式,降低单片机单位时间内的功耗,从而降低节点能耗。对采集节点程序自定义设计,利用IAR软件进行模块化C++语言编程,利用LPM3模式配以中断功能实现数据采集节点定时采集功能,MSP430F149单片机在LPM3模式下电流仅1.8 μA,通过中断事件能将单片机从任一低功耗模式中唤醒,待中断事件完成后,单片机能在中断程序返回时恢复至LPM3低功耗模式。对单片机LPM3低功耗模式控制、及定时中断设置常用的程序主要有:
_BIS_SR(LPM3_bits);//进入LPM3低功耗模式
_EINT();//开总中断
#pragma vector = TIMERA1_VECTOR
__interrupt void Timer_A(void) //中断服务函数
温湿度采集节点程序设计主要包含主程序和中断服务程序,程序流程如图2所示,首先对串口、时钟、定时器A、DHT11模块初始化,利用上述控制指令使MCU进入LPM3低功耗模式,通过自定义中断服务函数实现10分钟的定时,待10分钟的定时结束,唤醒的MCU进行DHT11模块的数据采集与传输,数据上传结束后,MCU进入新一轮的定时,等待下一个10分钟的唤醒,采集的数据通过DB9串口发送至PC机上。
图2 温湿度采集节点程序流程
取传统24 h实时温湿度采集节点(后称传统实时采集节点)、基于MSP430F149单片机24 h数据连续上传的采集节点(后称基于MSP430F149实时采集节点)、基于MSP430F149单片机且利用LPM3低功耗功能定时10 min数据上传一次的采集节点(后称基于MSP430F149定时采集节点)3种传感器置于窗台进行为期一周的温湿度采集,并通过纳普高精度智能电量功率计PM9817D进行功耗测量,依据阀室的实际状况,设定温湿度数据采集节点10 min进行一次数据上传。设计的低功耗温湿度采集节点如图3所示。通过传统实时采集节点与基于MSP430F149实时采集节点二者功耗的比较来验证从硬件选型方面能有效降低功耗,通过基于MSP430F149实时采集节点与基于MSP430F149定时采集节点二者功耗的比较来验证从功能搭配及程序设计上能有效降低功耗。
图3 温湿度采集节点实物
测试期间,3种温湿度数据采集节点运行稳定,无数据掉包现象,经功率计测得,传统实时采集节点运行时耗流达40 mA,基于MSP430F149实时采集节点运行时耗流16.719 mA,而基于MSP430F149定时采集节点运行时耗流12.453 mA。现从每天间隔1 h进行为期一周的功耗数据采集,并对采集数据进行分析处理。
将3种采集节点的消耗数据分别从每小时、每天进行处理,得到各节点平均每小时的功耗情况如表2所示,各节点每天的功耗情况如表 3所示,各采集节点耗能折线图如图 4所示。对各采集节点每小时功耗数据进行分析,首先将传统实时采集节点与基于MSP430F149实时采集节点进行比对,前者的每小时耗流比后者高20 mAh,且在前者供电电压为12 V的情况下,前者的每小时耗能远高于后者,由此可见在硬件的选择上,尽可能选择供电电压低的低功耗MCU。其次将基于MSP430F149单片机的实时采集节点与定时采集节点进行比对,前者每小时耗流比后者高2.3 mAh,在硬件一致的基础上,通过MCU定时中断唤醒功能将MCU从低功耗模式中唤醒至工作状态的方法能有效降低采集节点的功耗,因此也导致基于MSP430F149单片机的定时数据采集节点每日功耗最低。在每天数据处理的基础上,可以看到各采集节点的功耗是呈现规律增加的,每天分别以10.550 7 Wh、1.977 9 Wh、1.428 1 Wh持续耗能,传统实时采集节点耗能幅度远大于基于MSP430F149的实时、定时两种采集节点的耗能幅度。
表2 各采集节点平均每小时功耗情况
表3 各采集节点平均每天能耗情况
图4 各采集节点耗能折线图
现取容量为30 Ah的蓄电池进行功耗测试,在放电深度为80%的标准下,蓄电池维持3种数据采集节点正常工作的最长持续时间分别如下:传统实时采集节点下,蓄电池可供采集节点正常运行602.516 h,即运行25 d;基于MSP430F149实时采集节点下,蓄电池可供采集节点正常运行1 436.266 h,即运行59 d;基于MSP430F149定时采集节点下,蓄电池可供采集节点正常运行1 927.246 h,即运行80 d。
分别从硬件选型和软件控制两方面对温湿度采集节点的功耗进行验证,证明在相同放电深度的蓄电池供电基础上,蓄电池供基于MSP430F149定时采集节点在满足温湿度数据定时、精确上传的同时,使其运行时长约为传统实时采集节点运行时长的3倍。
笔者研究了一种基于MSP430F149单片机的低功耗温湿度采集节点。通过低功耗MCU硬件选型、较低用电电压的选择、合理使用中断功能与低功耗模式进行低功耗设计。理论与测试结果均表明该设计方法设计的低功耗温湿度采集节点工作电流低于13 mA,每天工作耗能仅1.428 1 Wh。通过长期的环境测试,从能耗、工作时长、数据传输等方面均表明该低功耗温湿度采集节点能有效、合理地对环境进行监测与管理。