基于B2C模式的小型监测预警系统设计与实现

2021-06-04 03:09殷方园郭永平
微型电脑应用 2021年5期
关键词:报警器预警系统报文

殷方园, 郭永平

(1. 空军工程大学 防空反导学院, 陕西 西安 710038; 2. 宝鸡文理学院 计算机学院, 陕西 宝鸡 721016)

0 引言

随着人工智能、通讯技术、传感器技术的快速发展,基于无人值守监测站的监控系统广泛应用于工业现场、水文、灾害点、农业等领域,为人们不间断的提供远程监测对象状态变化信息,是数据分析和辅助决策的得力助手[1]。然而常见的监测预警系统都属于B2B商业模式,是由专业的系统集成商开发的特定应用系统。典型监控系统由部署于现场的无人值守监测站、数据传输网络和位于监控中心应用软件三部分组成,需要有独立的办公空间、专门的服务器及专业安装运维工作人员,建设成本和运行维护成本都很高。一些微型企业和个人用户对智能的监测预警有着巨大的需求,如:小微企业对于营业场所、小型仓库的安全,养殖个体户对花圃苗圃、温室大棚对土壤墒情、温度的监测预警,个人用户对住宅的燃气泄漏、水管破裂的实施监测;喜欢养鱼人对鱼缸内的水质等项目的监测等等,但昂贵的建设和使用成本,制约着这部分需求的进一步发展。利用远程监控系统的实现原理,设计一种基于云端的B2C的监测预警系统,将各种不同的用户进行集中管理,满足这部分用户的需求。

本文以常见的安防系统中对温湿度、烟雾、有害气体指标监测为例,对其实现过程的技术关键点进行分析,设计一个基于云平台的小型监测预警集中式管理平台。

1 总体设计

1.1 网络体系结构设计

监测预警系统由部署监控现场的智能报警器、以云平台服务器为硬件资源的监控数据中心及监测预警应用系统三个单元组成。智能报警器是监测预警系统的基础单元,由传感器节点、MCU节点及4G通讯模块硬件组成,传感器根据电路设计与单片机上GPIO引脚连接,通讯模块和视频通过串口集成在一起,完成监控现场数据采集与告警信息上报等功能[2]。监控数据中心使用的服务器使用阿里、华为、腾讯等企业提供的弹性云服务器,承担着网络端口、数据库存储和实时监测和预警服务[3]。智能报警器通讯模块内置SIM卡插槽,通过SIM卡与三大运营商提供的无线通讯网络与云端服务器连接,实现监测指标和设备运行状态数据的传送;终端用户通过移动APP与数据中心进行通讯,完成设备注册、信息接收、阈值设置等功能,其网络结构如图1所示。

图1 监测预警系统网络结构图

1.2 数据处理流程

监测预警系统数据处理流程如下,首先终端用户根据说明书完成安装智能报警器,安装完成后,根据报警器提供的序列号使用专用APP根据报警器上的序列号和个人手机完成注册功能,将注册信息存入云端数据库中;当采集到数据触发异常,位于现场led屏开始闪烁,同时启动蜂鸣器进行长鸣报警提醒现场工作人员,同时请求与位于云端的弹性云服务器SCOKET服务器建立连接,连接成功后,以字节流的方式将数据采集传输到服务器上,服务器对报文进行解析,根据解析后的站号,获取终端用户的预存的电话号码,通过短信息或语音电话通知相关的工作人员,并将此次报警信息存储到数据库中。

2 智能报警器硬件设计

监测预警系统硬件主要涉及智能报警器的设计,其余硬件如:服务器、用户手持终端,均由专门的开发商提供。智能报警器硬件由传感器单元、微控制单元(MCU)、通讯模块、输入输出模块和现场报警蜂鸣器组成。硬件组成结构,如图2所示。

图2 智能报警器硬件结构图

智能报警器MCU采用STM32F407VET6作为主控芯片,芯片中拥有多个通用输入/输出端口、A/D转换端口,及USART、SPI通讯接口,集成有复位电路、JTAG/SWD调试接口电路、晶振电路等众多资源,能够与传感器模块电路、外围的LED液晶电路、蜂鸣器电路及4G通讯模块连接[4]。传感器模块与开发主板外接的GPIO引脚相连接,传感器将监测的环境因子转化为MCU可识别处理的电信号或数字信号,通过A/D转换模块进行接收。示例项目选择DHT11数字温湿度传感器、MQ-7传感器烟雾浓度数据,并集成蜂鸣器和led输出模块,通讯模块通过RJ485接口实现与MCU的通信连接。实物连接图如图3所示。

图3 智能报警器实物连接图

DHT11湿温度传感器的数据传输使用单总线数据格式,使用一个引脚完成输入输出的功能,DHT11每次获取到的数据包含16bit的温度数据,16 bit的湿度数据和8 bit校验,共5个字节组成。MQ-7传感器检测可燃气体和烟雾浓度数据。该传感器中有较高灵敏度的气敏电阻,空气中的一些特殊气体能够改变它的电阻,电阻改变后会影响传感器内部电压,传感器通过电压的变动幅度来改变模拟信号来反映特殊气体浓度数据。

3 软件设计

监控系统中软件包括智能报警器软件、云端预警数据处理软件和客户端预警接收APP三部分。

3.1 智能报警器软件开发

智能报警器软件开发包括基于传感器数据采集程序和对采集的数据标准化程序,即按照传输规约将数据封装程报文。此类软件是基于Keil uVision5开发环境,使用C语言嵌入式编程[5]。开发时需要根据传感器工作原理和电路设计,开发数据获取程序,再根据传输规约生成报文,传输到上位机上。传感器数据采集软件以温湿度数据采集为例,执行过程如下,首先由MCU完成初始化,将通信引脚设置为输出模式,再将通信引脚的电平拉低,持续20 ms,然后再将引脚电平置为到电平保持大概30 us,完成信号发送工作,等待DHT11响应,再将通信引脚设为输入模式,DHT11能够响应会自动降低电平45us左右,然后升高电平并保持大概45 us,则获取到的温湿度数据以及校验数据,最后将数据转换为可以识别的数字。处理代码如下:

void init_dht11(void)//初始化

{

Dht11_output(); //使PG9变为输出模式

PGout(9) = 0; //让PG9变为低电平,持续20 ms

delay_ms(20);

PGout(9) = 1; //让PG9变为高电平,持续30 us

delay_us(30);

Dht11_input(); //使PG9变为输入模式

}

uint32_t dht11_read_data(uint8_t* data) //读取数据

{

uint32_ti= 0;

uint8_t check_sum = 0;

for (i=0;i<5;i++){

data[i] = dht_read_byte();

}

check_sum = data[0] + data[1] + data[2] + data[3];

if (check_sum != data[4]){

return 1;

}

else {

return 0;

}

}

void Trans_Data(uint64_t Data,uint8_t **buffer) //完成数据转换

{

*buffer[0] = (Data<<40)>>56 ; //温度的整数部分

*buffer[1] = (Data<<48)>>56 ; //温度的小数部分

*buffer[2] = (Data<<24)>>56 ; //湿度的整数部分

*buffer[3] = (Data<<32)>>56 ; //湿度的小数部分

*buffer[4] = (Data<<56)>>56 ; //数据的检验位

}

采集的数据标准化程序是在传感器数据采集软件完成数据转换后,根据阈值判断是否报警,并通过LED闪烁和蜂鸣器长鸣进行现场报警。采集的数据标准化是将预警信息格式化,按照传输规约编成报文,以字节流的方式向数据中心发送信息。传输规约是一种包含了地址码、数据区和校验位的下位机和上位机约定的数据结构[6],上位机根据规约中的数据结构进行报文字节流的截取及转换,将报文转换为人们可以识别的信息。采集的数据标准化程序同时完成由通讯值守程序下达的监测指标阈值报文信息的转换与存储,报警器与云端服务器传输数据,如表1所示。

表1 报警器4 G数据传输规约

3.2 通讯值守程序

通讯值守程序是安装在云端服务器上的数据接收程序,完成接收、解译、存储并通过GSM短信和语音电话通知相关工作人员。通讯值守软件的开发环境使用C#开发语言,通过socket与报警器数据传输模块建立TCP/IP 通讯,获取报警器推送的报警信息,主要包括创建SCOKET对象、初始化监听、与报警器节点建立连接、接收数据、数据校验、报文解译、数据存储及报警信息发布等环节。值守程序静态类,如图4所示。

图4 通讯值守程序静态类图

服务主程序是值守程序的主入口和人机交互操作界面,主程序初始化创建报文接收对象,启动SCOKET监听服务。报文接收类负责报文接收及后续处理过程的组织,首先通过接受连接请求的回调函数中完成报文的接收,调用报文解译对象对报文进行校验和解译,解译完成通过用户注册的报警器序列号与联系人的电话号码,语音电话和GSM短信息将报警信息通知联系人,再通过数据操作类将数据存入数据库中,供终端用户查询。短信和语音电话两个类各自封装了各自的信息发布业务逻辑。各个类各司其职、功能单一,满足面向对象的单一职责原则,为了考虑报文解译时传输规约的变化,报文接收类依赖于报文接口,而不依赖于具体的传输规约,同时预警信息的发布,采用观察者模式,提高了系统的扩展性和可维护性;在报文解译和编制的过程中,通常涉及一些数制转换等通用方法,将其封装到一个独立的数制转换类中,完成具体的报文解译程序静态调用,提高了代码的复用性。

3.3 应用程序设计

应用程序是面向终端用户和运营服务人员,是一款基于数据库移动APP系统,数据库管理系统使用mySQL数据库、程序后端服务开发采用java开发语言,使用SSM框架开发的前后端完全分离应用服务,前端使用vue+vant框架开发的WEBAPP。终端用户功能包括智能报警器信息注册、注册信息修改、监测阈值的设置、报警历史数据查询、使用情况反馈五个功能模块;运营服务人员用于对设备运行状态,如:运行电压、预警历史信息查询、用户使用情况反馈等。

4 总结

基于云平台监测预警系统中智能报警器硬件结构简单,安装方便,无需专业人员进行上门安装,通过手机APP完成注册,通过现场、手机两种告警方式通知到终端用户;数据中心有专业人员完成对设备运行状态进行实时监测,确保系统正常运行,实现了一种B2C的监测预警实现模式。

猜你喜欢
报警器预警系统报文
基于J1939 协议多包报文的时序研究及应用
民用飞机机载跑道入侵预警系统仿真验证
CTCS-2级报文数据管理需求分析和实现
一种基于CNN迁移学习的井下烟、火智能感知预警系统
浅析反驳类报文要点
基于ZigBee与GPRS的输电杆塔倾斜监测预警系统
自制下雨报警器
防火防盗报警器设计
桥、隧安全防范声光预警系统
基于无线通信的入侵报警器设计