基于k-近邻算法的同质多无线传感器网络烟雾预警系统设计

2019-09-25 04:16赵琳行致源
微型电脑应用 2019年9期
关键词:无线通讯上位烟雾

赵琳, 行致源

(西安航空学院 1.计算机学院; 2.飞行器学院, 西安 710089)

0 引言

在国内外的研究中,传统烟雾报警系统的设计非常全面且成熟。传统的烟雾报警系统为多线制系统,准确率低。目前,二总线制系统应用广泛[1]。主要的实现方法为:利用CAN总线组网,选取某个特定的接口规范连接显示设备[2]。随着无线传感器技术的不断发展,传统烟雾报警系统从有线连接方式变为无线连接方式。

基于无线传感器网络(WSN)的烟雾报警系统已经成为主流。WSN通过协同合作感知自组网中检测对象的信息并周期性的将采集到的数据发送到终端设备。由于无线传感器节点受到能量供给、存储容量、计算能力等因素的限制[3],制约了无线传感器自组网络的性能提升。传感器设备属于灵敏元件,易受外界条件干扰,容易得到不可靠数据,因此需要进行数据融合处理,增加数据的可靠性,提高预警准确度是WSN中的一个关键技术[4]。

通常进行数据融合的方法有归一化、限幅、环境补偿等[3]。文献[4]采用自适应预测加权方法进行数据融合,文献[5]采用平均值法滤波进行数据融合,文献[6]采用模糊逻辑算法进行数据融合。这些算法都对异质传感器数据融合效果有明显提高,对于提高同质多传感器数据的可靠性研究较少。

文献[7]中提出了一种欧氏距离结合相关函数改进的自适应加权融合算法实现对同质传感器数据的融合,本文在此基础上结合k-近邻算法对文献[7]中的算法进行改进,增强数据的可靠性,提高预警的准确性。本文选取MQ-2型气敏传感器元件,通过Arduino UNO 控制器编程以及Java程序设计,建立起无线传感器网络的烟雾预警系统,并用Python对改进的数据融合预警算法进行仿真验证。

1 无线烟雾报警系统总体设计

1.1 硬件系统总体设计

多无线烟雾检测报警系统通常包括无线数据采集模块、无线传输模块、单片机控制模块、声光报警模块等组成[8]。系统结构框图如图1所示。

无线同质多传感器网络烟雾预警系统的工作方式是:通过烟雾传感器对外界环境的烟雾浓度进行感知,将收集到的数据传给节点控制器,节点控制器对数据进行筛选决策,超过阈值的数据,经无线传输模块传给汇聚节点控制器,汇聚节点控制器再将多数据发送给上位机进行数据融合、数据显示和预警操作。

1.2 软件系统总体设计

无线同质多传感器网络烟雾预警系统的软件是控制数据采集筛选决策和数据融合决策的执行部分,涉及到不同的数据筛选和数据融合算法。其软件系统主要由数据采集层、数据汇聚层和应用层构成,并且具有相应的无线通讯协议定义、数据字格式组成,如图2所示。

图1 硬件系统结构框图

图2 软件系统结构框图

软件层次的核心功能在于通过节点控制器的数据筛选降低无效数据的传输量。汇聚节点将数据传送给上位机,上位机通过算法进行预警决策提供更加准确预警效果。

2 硬件设计

预警系统终端包括:主控制器,Zigbee模块,烟雾传感器检测模块等。

2.1 主控制器

主控制器采用Arduino UNO R3控制器,该控制器主要以ATmega328为处理器芯片,工作频率为16 MHz,32 KB的闪存(ATmega328)其中0.5 kb的bootloader,2 KB SRAM(ATmega328)数字和模拟信号端口共20个。使用USB串口转换芯片atmega8u2。该控制器具有功耗低,转换速度快等优点。烟雾检测传感器与控制器的模拟信号接口连接,无线通讯模块与主控制器连接,再与pc的USB口连接。

2.2 无线通讯模块

无线通讯模块采用XBee-PRO OEM RF 模块是与ZigBee/IEEE 802.15.4兼容的解决方案,可以满足低成本低功耗无线传感网络的特殊需求。XBee-PRO在范围上可以超越标准ZigBee模块2-3倍。 XBee-PRO模块工作在ISM 2.4 GHz频率波段, 建立RF通信不需要任何配置,该模块的默认配置支持宽范围的数据系统应用。

2.3 烟雾检测及报警模块

烟雾检测模块采用MQ-2气体烟雾传感器。MQ-2 烟雾传感器是基于 QM-NG1探头的气体传感器。该传感器灵敏度高,可检测范围广。MQ-2 烟雾传感器共引出三个引脚,分别是地线GND、电源Vcc和信号线S。S端接入Arduino UNO控制器的一个模拟输入引脚上。报警模块采用蜂鸣器发声模块。该模块集成了三极管放大电路,模块引出三个引脚,分别是电源正Vcc,电源地GND,信号S,信号S接到 UNO 控制器的数字引脚。

3 软件设计

系统的软件设计包括两部分,主控制器程序设计以及上位机预警显示软件设计。

3.1 主控制器程序设计

主控制器按功能分为末梢节点和汇聚节点两类。分别针对这两类控制器编写运行程序。程序开发采用C语言,软件采用Arduino 1.8.2。末梢节点控制器程序实现功能:其一,对烟雾传感器的信号进行检测,按照阈值对采集到的数据进行分类;其二,将无效数据丢弃,将有效数据经无线通讯模块传送给汇聚节点。汇聚节点控制器程序实现功能:其一:经无线通讯模块接收传来的有效数据,并对多个有效数据融合;其二,将融合后的数据发送给上位机进行显示;其三,接收上位机传来的预警信号,若有,则通知蜂鸣器报警。主控制器程序流程图如图3所示。

图3 软件系统流程图

3.2 上位机显示软件设计

汇聚节点通过usb接口与上位机相连,由pc上位机对采集到的数据进行实时显示并进行分析。上位机使用Java+MySQL搭建数据实时显示和分析环境。通过java对pc机串口通讯的数据读取获得汇聚节点发送来的数据。在对数据进行实时显示的同时,将数据写入MySQL数据进行历史数据保存,用于数据分析和k-近邻算法应用。

4 预警算法

4.1 算法描述

同质传感器产品性能,执行参数一致,且应用于同一场合。故假设传感器测量值之间独立同分布。已知样本集DataSet存放了带标签的历史数据,某一时刻采集到的多传感器数据为向量X,向量X与样本集DataSet中的各样本距离由欧氏距离公式得到,其定义如式(1)。

(1)

具体算法如下:

S1:汇聚节点将某一时刻传感器采集到的数据传输给上位机;

S2:上位机程序从数据库中提取含有标签信息的历史数据;

S3:将历史数据转换成DataSet数据集格式;

S4:使用公式(1)计算向量X与DataSet数据集中每个点的距离;

S5:选取与当前向量X最近的k个点;

S6:选择前k个点出现频率最高的标签作为当前向量X的标签;

S7:根据标签内容确定是否触发蜂鸣器;

S8:将当前向量X写入数据库。

4.2 算法分析[10]

以二分类问题(k=1)为例,讨论分类器错误率。测试样本x,其最临近样本为z,分类器出错的概率(即x与z类别不同的概率)如式(2)。

(2)

同款同质传感器可假设样本独立同分布。对任意x总能在其任意近范围内找到训练样本z.令c*=argmaxc∈yP(c|x)P(c|z)表示贝叶斯最优分类器的结果,有

(1+P(c*|x))(1-P(c*|x))≤

2*(1-P(c*|x))

由上式可见最近邻分类器错误率不超过贝叶斯最优分类器错误率的两倍。

4.3 算法仿真试验

本文仿真环境:winXp,python 2.7.14, numpy-1.14.0, matplotlib-2.1.2。仿真采集假设3个烟雾传感器。训练集数据其中两个传感器仿真数据输出散点图效果如图4所示。

图4 两分量数据输出效果散点图

仿真选取含有1 500个样本的DataSet作为测试数据,检测分类器的正确性。为了避免数值差值较大的特征值对结果的影响,测试前首先对DataSet进行归一化处理。归一化方法如式(3)。

Result=(DataSetValue-min)/(max-min)

(3)

将经过归一化处理后得到的Result集合,其中90%作为训练样本集,10%数据用于测试分类器正确率。测试结果如图5所示。

图5 Result数据集测试结果

5 硬件系统测试及结果

5.1 硬件测试环境

本文硬件系统测试环境在室内进行,系统安装连通,ZigBee无线通讯与末梢节点组建通讯,设计三个无线传感器位于房间不同位置,上位机软件设置串口波特率为9 600 b/s。实时数据显示系统如图6所示,历史数据查看系统如图7所示。

图6 实时显示系统

图7 历史数据查看系统

5.2 测试结果

(1)烟无数据采集模块

本项目测试烟雾采集及报警模块功能,用燃烧物模拟烟雾产生,当达到一定烟雾浓度,测试蜂鸣器报警状况,测试结果如表1所示。

表1 烟雾采集及预警模块功能测试结果

(2)无线通讯模块

本项目测试不同距离范围内,收据传送和接收情况。主控制器程序中设置采样间隔为500 ms,波特率为9 600 b/s,不同距离范围内测试结果表2所示。

表2 不同距离范围内无线通讯数据发送和接收结果

6 总结

该无线传感器网络具有良好的无线数据接收和发送以及智能报警功能。对传感器数据处理过程中采用k-近邻算法机器学习算法,通过欧式距离和归一法对同质多传感器数据进行了融合。从算法仿真结果看提高了预警的准确度,降低了误报率。

猜你喜欢
无线通讯上位烟雾
薄如蝉翼轻若烟雾
影视剧“烟雾缭绕”就该取消评优
特斯拉 风云之老阿姨上位
咸阳锁紧烟雾与尘土
基于单片机的水产养殖无线盐度检测系统设计
基于ZigBee和VC上位机的教室智能监测管理系统
家香
无线通讯在堆取料机控制中的应用
会下沉的烟雾
基于VC的PLC数据采集管理系统