APP下载

基于物联网的一体化泵站设计与实现

2017-03-21勇,严

计算机测量与控制 2017年2期
关键词:应用层计费线程

黄 勇,严 华

(四川大学 电子信息学院,成都 610041)

基于物联网的一体化泵站设计与实现

黄 勇,严 华

(四川大学 电子信息学院,成都 610041)

针对传统泵站的计费模式单一、操作复杂、管理困难等问题,采用物联网思想设计并实现了一种一体化泵站系统;感知层采用STM32F407单片机,基于mbed-rtos操作系统对不同类型的传感器进行数据采集并对软启动器、摄像头进行控制,网络层利用MQTT通信协议将数据发送到云计算中心服务器,应用层通过手机客户端或网页登陆泵站管理系统实现泵站用水数据的实时查看、泵站监控等功能;系统运行稳定可靠,能够较传统泵站更好地完成计费抽水等任务,为泵站的自动化提供了一种可靠的一体化解决方案。

物联网;农业灌溉;MQTT;泵站

0 引言

我国计划在“十三五”期间形成覆盖全国的农田水利数据库体系,为农田水利管理信息化提供全面支撑。同时基本建成国家灌区监测系统,实现对灌区灌溉排水的宏观管理。采用计算机自动化方案实现泵站的自动化控制和远程监测,但其功能有待完善且资金投入大[1-3]。文献[4-5]提出将单片机引入泵站控制系统,但其没有计费取水功能。上述方案,一定程度上解决了泵站自动化中遇见的问题,但泵站功能不够完善,仍存在操作复杂,没有引入计费模式等问题。本设计采用物联网设计思想解决了原有泵站的操作复杂、计费模式单一等问题。

1 系统设计

物联网有三个层次,分别是用来感知数据的感知层,处理数据传输的网络层,以及对数据进行计算和管理的应用层。本设计系统整体结构如图1所示。

图1 系统结构框图

一体化泵站系统结构以感知层为基础,感知层以单片机为核心对水位,水压,流量,用电量,图像数据等信号进行检测,利用不同类型的传感器对信号进行转换、处理,并利用RS-485等通信方式传输到单片机。单片机使用GPRS无线网络或互联网将数据上传到云计算中心服务器。终端设备在应用层可实时查看各类数据,获悉泵站运行状态信息,也可实时启停泵站,召测泵站的运行图像。

2 一体化泵站系统设计

感知层设计是一体化泵站系统最重要的一部分,系统采用了两种类型的传感器,所以有两种不同的传感器数据采集方式。水位和水压传感器采用的是4~20 mA电流信号,因此水位和水压信号经过调理电路后通过单片机内置AD进行数据的收集。电表、摄像头、软启动器、流量计采用RS-485接口与单片机进行通信。单片机利用modbus总线协议读取软启动器参数、流量等数据,利用特定协议读取电表数据和图像数据,并将采集到的数据保存到SD卡中。感知层泵站控制器硬件结构设计如图2所示。

图2 系统硬件结构设计

2.1 泵站取水功能实现

启动泵站进行取水的方式有三种:刷卡开泵,网页端远程控制开泵,手机APP端远程控制开泵。刷卡取水时采用的是MFRC522读卡芯片来获取卡片信息,选用的取水卡是S50非接触式IC卡。S50卡成本低廉,便于大规模应用,但其采用的存储技术较容易被破解,所以不能在取水卡内直接写入明文信息。传统的加密算法的软件实现需要消耗过多资源,因此不适合运算能力和存储空间均有限嵌入式环境。本设计采用的方法是开卡时首先采用present轻量级加密算法对取水卡信息进行加密,然后为了方便将数据从服务器端传送到客户端再对数据进行Base64编码。开卡流程如图3所示。

图3 取水卡开卡过程

Present加密算法属于分组密码算法,实际应用中需要对待加密数据进行处理,计算关系如式(1)所示,L为实际的数据长度,当L不是8的整数倍时,需要在待加密数据后补X位0,N为待加密数据的组数。

(1)

读卡芯片通过SPI接口将卡内数据传输到单片机,单片机对得到的数据解Base64编码,再用密钥对数据进行解密,最后从铁电存储器FRAM中查询刷卡用户是否合法,对合法用户执行相应的开泵取水操作。

2.2 电参数检测

电参数检测采取了选取了DTS541电表和ADE7878电参数芯片并用的方案,电表用于精确计费,同时用于校准ADE7878电参数芯片。电表可以提供电压、电流、有功、无功功率参数,但是这些参数不足以为电机提供保护,因此系统增加了ADE7878电参数芯片。ADE7878可以为系统提供总有功和无功功率、视在电能、功率因数和电网频率等参数。

ADE7878通过电压互感器以及电流互感器接入三相交流电,通过SPI接口将电参数发送给单片机。单片机通过计算电参数数据,来检测过压故障、缺相故障、逆向序故障等,实现对电机的保护。

2.3 图像数据检测

当有人进入供水室时,将导致红外传感器的输出由高电平变为低电平,这将触发单片机的外部中断,此时单片机调用摄像头进行拍照,图像数据存储将存储在SD卡中,同时将图片的存储路径信息通过MQTT协议上传到云数据中心,当应用层需要调取图片信息时,可通过手机APP或者Web端发送召测指令以获取图片信息,这就实现了对泵站的安全监视。图像数据检测采用SXH485串口摄像头,供电方式采用5~24 V直流电压供电,工作温度-40~85℃,最大分辨率1280×960,最大夜视距离15米,默认波特率为115200。单片机向摄像头下发报文格式如表1所示。其中报文头为两个字节0x90EB,0xEB是第一个字节,0x90第二个字节。摄像头的设备地址可设定,地址范围从0至255,其中0为保留地址,地址255用于广播报文,本系统中摄像头设备地址为1。报文类型为0x06时,表示该包用于传输图像数据。

表1 下行报文格式

摄像头向单片机上传报文格式如表2所示,其中状态字节为0x00是表示摄像头状态正常,0x01表示摄像头发生内部错误。

表2 上行报文格式

2.4 流量数据检测

单片机通过modbus协议采集流量数据,使用TUF-2000M超声波流量计测量管内流量。该流量计测量线性度0.5%,重复性精度0.2%,时差测量分辨率40皮秒,测量精度±1%。在液体中的超声波传输时间将因液体流动而产生微小的变化,此处的传播时间变化正比于液体的流速。液体流速计算公式见式(2),θ为超声波与液体流动方向的夹角,M为超声波在液体中的直线传播次数,D为管道内径,Tup为超声波在顺流方向上的传播时间,Tdown为超声波在逆流方向上的传播时间。

(2)

本设计有三种计费方式:电计量收费、水计量收费、时间量计费。当泵站处于取水状态时将流量数据以及电参数上传至数据中心,数据中心根据用户需求选择特定的计费方式进行计费,以此实现计费取水功能。

2.5 传感器接口电路设计

一体化泵站的控制核心是单片机,其通过AD转换器获取水位和水压数据,通过RS-485接口完成对软启动器参数、电参数、图像数据和流量的数据采集。本设计采用中的单片机是STM32F407单片机,图4所示的RS-485电路与单片机直接相连,单片机对采集到的信号经过数字滤波,通过特定的协议与传感器之间进行通信。

图4 RS-485通信电路设计

RS-485电路使用SP3072作为总线收发器,使用50mA自恢复保险丝和瞬变电压抑制器来抑制静电和电涌瞬变带来的干扰。系统中有两路RS-485通信电路,一路用于采集电表数据和软启动器参数;另一路用于采集流量计与摄像头数据。

2.6 数据通信

泵站控制器系统基于mbed-rtos实时操作系统操作系统,mbed-rtos实现了线程控制、线程同步、线程间通讯、线程调度等功能。软件运行流程如图5所示,系统运行时分为3个线程。线程1用于处理数据以及处理事件。当检测到MQTT接收缓存中有新的数据时,线程1负责解析其中的命令,然后执行相应的操作,同时线程1还负责处理按键操作等外部事件。线程2为MQTT工作线程,负责完成泵站与数据中心的通信。线程3是数据采集线程,它的作用是定时采集各传感器数据,负责将数据存储到SD卡,同时还负责进行传感器故障检测。之所以单独使用一个线程采集传感器数据的原因是,传感器数据读取过程中需要加入较多的延时,以等待设备进入正常工作状态,这会阻塞其他实时操作,因此使用单独的一个线程采集传感器数据。

图5 感知层泵站控制器软件流程图

系统的MQTT 的Qos配置为Qos1,即至少发送成功一次。这种配置方式有可能出现重复的数据包,本设计的解决办法是在数据包协议中加入包号信息。包号根据当前的系统时间生成,确保了数据包的唯一性。数据中心接收到数据后通过判断其中的包号,来排除重复的数据包。单片机定时采集传感器状态,生成状态报文,并通过MQTT协议传送到数据中心,实现了对泵站运行状态的监控。

3 网络层与应用层的实现

一体化泵站通过GPRS无线网络或互联网基于MQTT协议与云数据中心进行通信。应用层软件在Visual Studio开发环境下使用C#语言开发完成,主要实现了泵站运行数据的实时查看、远程管理、历史数据查询、报警条件设置等功能。

由图2所示,黄油的过氧化值在温度为150℃时达到最大,为0.92 meq/kg,猪油的过氧化值随着温度的增加而逐渐升高,并在240℃达到最大,为44.11 meq/kg,说明在此期间有大量氢过氧化物生成,且氢过氧化物的生成量大于分解和聚合量。当温度范围为180~240℃,黄油的过氧化值呈下降趋势,说明生成的氢过氧化物大多分解,且分解和聚合量大于生成量;与猪油相比,温度和加热次数对黄油的过氧化值影响均不显著(P<0.05),这表明黄油在不同加工条件下的其氧化情况较为稳定。

图6 泵站网页端管理界面

用户可以通过在电脑网页或者在手机App登陆,进入泵站管理系统,实时查看泵站运行状态,网页端管理界面如图6所示。用户可在管理系统中设定报警阈值,如电机过载报警阈值等。应用层软件对泵站的数据进行实时处理,计算是否达到报警条件。

由于应用层软件需要对大量的泵站进行集中管理,而泵站向数据中心上传的JSON数据需要经过解析后才能存入MySQL关系型数据库,当数据量较大时可能造成数据库崩溃。因此引入数据库MongoDB,其特点是性能高、易于部署,数据存储流程简单,可以直接存储泵站上传至数据中心的JSON数据。以MongoDB作为数据缓存层,应用层软件单独开辟一条线程轮询MongoDB中的数据,数据经过处理后存入MySQL数据库。通过调取MySQL数据库信息实现历史数据查询功能。

4 系统测试

在实际测试环境中,泵站收到取水指令后均能稳定的发出计费报文。报文格式如下:

JsonSendPacket::FinishPacket:{

"SBBH":"GBC000M23",

"BZID":"20160824141443909",

"JF":["1","0","0","W121050219941202

094301","0","0","0","1800"],

"DC":"44811"}

数据中心收到报文后按照特定的计费公式开始计费。并向泵站发送反馈报文,反馈报文格式如下:

JsonRecvPacket::UnPacketJson:{

"SBBH":"GBC000M23",

"SBMM":"WQWJTTGL",

"JFR":["0","0","0","W121050219941202

094301","0","0","0","1800"],

"DC":"44811"}

上述两条报文中,SBBH代表设备编号,BZID代表泵站编号,SBSJ代表设备时间,JF表明该报文是计费报文,其中指出取水用户编号为W121050219941202094301,预设的取水时间为1800秒。SBMM代表设备密码,每台设备都有唯一的设备密码,用于验证指令是否合法。DC代表包号,用于排除重复的数据包。

经过长期的实际测试使用,以STM32单片机为核心的一体化泵站系统可以稳定可靠地实现灌溉取水功能,泵站实时运行数据可以准确的传回数据中心,同时还实现了泵站计费取水、实时查看运行数据、远程管理、历史数据查询、报警条件设置等功能。

5 结论

本文提出了基于物联网的一体化泵站设计方案,在感知层采集泵站运行数据,在网络层融合无线网络和互联网,将泵站数据实时准确的发送到数据中心,最后在应用层实现对泵站数据的处理以及对泵站的远程管理。将物联网技术运用系统设计当中,使系统设备具有可靠、操作简单、计费准确、管理方便、适用范围广等特点,为泵站的自动化提供了一种可行的、可靠的解决方案。

[1] 邢晓明. 泵站计算机自动化及远程监控系统的设计研究[D].济南:山东大学,2012.

[2] 张晓燕. 引黄济青泵站远程监控系统的设计与实现[D].济南:山东大学,2009.

[3] 钱 锋. 抽水泵站自动控制系统的应用研究与设计[D].合肥:合肥工业大学,2006.

[4] 吴 杉. 基于PIC单片机的远程水泵控制器的设计与实现[D].重庆:重庆大学,2012.

[5] 孟振飞. 基于STM32处理器的水泵控制系统设计与实现[D].西安:西安电子科技大学2012.

[6] 陈 钧. 基于S7-200的潜水泵站自动控制技术[J]. 微计算机信息,2006,22(9-1):140-142.

[7] 周大庆, 吴玉林, 张仁田. 大型立式轴流泵站起动过渡过程研究[J].水力发电学报,2007,26(1):120-122.

Integration of Pumping Station Design and Implementation Based on Internet of Things

Huang Yong,Yan Hua

(School of Electronics and Information Engineering, Sichuan University, Chengdu 610041, China)

The traditional pumping station has many problems, such as single billing model, complicated to operate, difficult to manage and so on. To solve these problems, an integrated pumping station system was designed and implemented. STM32F407 microcontroller is used in the system which is based on mbed - rtos operating system to collect different types of sensors’ data, and control the soft starter and camera at perceptual layer. MQTT communication protocol is used to send the data to the cloud computing center at network layer. Through mobile phone client or web log in pumping station management system, which realizes the function of viewing pumping station’s water data in real-time and monitoring the pumping stations at application layer. Compared with traditional pumping station, the system is stable and reliable, and can better accomplish the billing pumping task. So the system is a reliable integrated solutions for the automation of pumping station.

internet of things; agricultural irrigation; MQTT; pumping station

2016-04-07;

2016-06-21。

黄 勇(1991-),男,四川眉山人,硕士研究生,主要从事嵌入式方向的研究。

严 华(1971-),男,四川渠县人,博士,教授,硕士研究生导师,主要从事嵌入式系统、水利信息化方向的研究。

1671-4598(2017)02-0186-03

10.16526/j.cnki.11-4762/tp.2017.02.051

TP18

A

猜你喜欢

应用层计费线程
一种基于实际GIS底图的精准计费方式探究
基于门架计费方式的高速公路通行费拆分准确性验证
基于云计算和微服务架构的高速公路计费系统
实时操作系统mbedOS 互斥量调度机制剖析
基于国产化环境的线程池模型研究与实现
传输层和应用层的隧道技术
基于分级保护的OA系统应用层访问控制研究
物联网技术在信息机房制冷系统中的应用
计算机中的多线程问题
生死大考:网吧计费系统遭黑手!