黄义行,冯 晟,马 涛,韩小龙,吴明静,张志伟,张敏贤
(绍兴文理学院 机械与电气工程学院,浙江 绍兴 312000)
随着5G、物联网技术等高新技术的飞速发展,通过无线传输方式下的长途或短途通信系统实现物与物、人与物间的互联互通已经成为了潮流,其以精准可控的方式辅助工作和生活,提高效率和生产力水平,改善了人与自然的关系,使人们的生活水平显著提高。但人们在享受科技带来的便利时,安全方面的问题也层出不穷,这是不能忽视的。要想解决安全问题,提高安全距离是一个可控可行的方法,只要在与危险源的距离不同时给出不同的提醒,并在一个危险距离的阈值给出报警,就可以很好地解决一些安全问题。在距离测量方面,超声波具有良好的可操纵性、强烈的共鸣和易于获得强烈声能的特点,可以简单快速地计算出距离并做到实时控制,这样能够保证在一个安全距离外准确、及时地反馈报警信息,并且由于超声波的频率特性,在具体使用时不会产生噪声。目前在很多场景中要达到报警条件并不能只靠一个点的数据。而多方向超声波测距报警系统既可以满足在无线的情况下对多个点位进行距离测量,也能够对多个点的不同距离做出对应的报警反馈;如今国内外对于多点无线测距报警的研究还比较缺乏,故此系统具有一定的应用前景及市场价值。
近二十年来,在超声波测距技术上,国内大量研究人员对影响超声波测距的几种影响因素进行了分析并提出了一些消除实验误差的措施。在超声波测距过程中,超声波谐振处理方法的质量与谐振前沿的定位精度和渡越时间的测量精度有关,进而决定着超声波测距系统的精准度和响应速度。
严格来说,ZigBee技术的研究在国内还没有完全步入正轨,并且国内ZigBee模块制造商通常受到芯片制造商数量的限制。 国内市场由国外设备主导,本地开发的ZigBee产品尚未完全开始增长。目前,国内只有少数公司可以将ZigBee技术转化为产品开发,但随着无线技术的发展及5G时代的到来,很多学者和组织都开始着手关于无线组网、无线通信技术等方面的研究,利用国外厂商的开发平台和芯片建立ZigBee网络,并应用于智能家居等方面。伴随着我国的5G及物联网的发展,ZigBee的发展步伐也会逐步加快。
一个完整的多点超声波测距报警系统包括以下三个部分:超声波测距及处理、ZigBee通过多点对点进行数据发送与接收、数据接收显示、报警情况统计以及声光报警。系统硬件包括无线传感器实验箱中的ZigBee CC2530节点板四块、HC-SR04超声波传感器板三块、声光报警传感器一块、USB接口SmartRF04仿真器、调试转接板、PC机、USB mini线。硬件总体设计方案如图1所示,仿真器、接线等如图2所示,超声波测距传感器如图3所示,声光报警传感器如图4所示,多传感器总布局如图5所示。
图1 系统总体方案设计
图2 仿真器、接线
图3 超声波测距传感器
图4 声光报警传感器
图5 多传感器布局
2.2.1 超声波传感器工作原理
HC-SR04超声波测距模块可以提供2~400 cm的非接触式距离感测功能,测距精度可达到3 mm,模块包括超声波发射器、接收器和控制电路。
SRF04采用I/O口TRIG触发测距,给至少10 μs的高电平信号,模块自动发送8个40 kHz的方波,并自动检测是否有信号返回。如有信号返回,则通过I/O口输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间,测试距离=(×340 m/s)/2。
在实际应用中,超声波模块在打开状态下就开始对特定方向进行测距,充当数据测量发送节点。由于模块的测量范围有限,当障碍物与传感器距离过近或者超出测量范围时,认为该值无效并自动赋值一个大的整型值从而触发报警条件。在超声波传感器的有效测量范围内有障碍物时,数据测量发送节点开始测距行为;超声波接收器每收到一次反射波就会立即停止计时,然后立即开始下一次测距行为;根据超声波发射出到反射回来被接收到的时间间隔,就可以计算出发射点与障碍物的距离=340/2。最后通过单片机传送到LCD液晶屏中显示距离。
2.2.2 ZigBee技术工作原理
ZigBee在建立网络时首先由协调器节点扫描周围的网络情况,以网络情况决定网络创建行为能否成功,如果周围有其他网络,协调器节点会作为路由器入网,否则就会自己创建网络。其原理如图6所示。
图6 ZigBee网络初始化示意图
当一个节点想加入ZigBee时,会在一段时间内不断向要连接的网络发送请求,直至加入网络。此时的协调器节点会收到请求并检测剩余网络资源是否允许新节点入网,如果达到要求,协调器节点就会把同意入网及入网成功等相关信息发送给自己上层并请求入网的节点。然后请求入网的节点也会把入网成功的相关信息发送给自己上层,最终成功入网。
显示部分主要是在LED显示器上显示收到的数据,同时在PC上通过Python编写串口程序查看来自串口的测距结果、对应结果的提示信息、当前测量的次数和时间等;然后根据不同的距离范围进行不同的报警操作,具体报警操作为:距离大于100 cm时,绿灯亮,提示安全(safe),安全次数(satime)加1;距离大于20 cm、小于等于100 cm时,蓝灯亮,提示警告(warning),警告次数(watime)加1;距离小于等于20 cm时,红灯亮,提示危险(dangerous),危险次数(datime)加1,蜂鸣报警器进行报警。这样就可以清楚地了解什么时间、哪个节点、发送了什么报警行为,并且就报警系统而言可以根据听到警报声的先后次序看到对应的报警时间。
由于超声波测距、声光报警与点对点通信可以独立实现,本系统对其进行了整合优化,此系统总体分为数据采集发送端和数据接收显示端。数据采集发送端为多个位于ZigBee CC2530节点板的超声波测距传感器,每隔1 s采集距离数据并通过ZigBee无线发送当前距离;数据接收显示端为声光报警传感器,每1 s接收发送过来的距离并进行判断,然后对不同节点进行不同程度的报警操作,并依次显示在LED显示器与串口程序上。
点对点传输是实现 ZigBee的点播通信,配置好相关的通信信道、Panid、应答请求、安全密钥、发送地址和接收地址后,ZigBee会根据配置信息判断自己的角色,然后进行数据的发送和接收。收到数据后,串口程序会根据配置好的串口相关信息获取串口数据,需要注意的是发送节点的Panid、信道以及发送的目的地址都要与接收节点匹配,这样接收节点才能成功收到数据。
系统详细流程为:系统开始时,作为数据发送端的超声波测距传感器与作为数据接收端的声光报警传感器同时进行初始化配置,并通过代码中的节点类型判断自己为发送节点还是接收节点。
如果是发送节点,就初始化超声波测距模块及射频模块,测量距离,并且每隔1 s发送;如果是接收节点,就初始化射频模块并不断等待接收数据,收到数据后进行判断。
如果距离大于100 cm,声光报警传感器亮绿灯,不报警,LED及串口程序会显示安全(safe)和当前时间,并统计安全的次数;如果距离大于20 cm、小于等于100 cm,声光报警传感器亮蓝灯,不报警,LED及串口程序会显示警告(warning)和当前时间,并统计警告的次数;否则,声光报警传感器亮红灯,进行报警,LED及串口程序会显示危险(dangerous)和当前时间,并统计危险的次数。其过程如图7所示。
图7 系统程序总流程
三个节点的程序编译及下载调试都没有问题后,打开串口调试程序,进行串口初始化的配置;然后编译程序,在超声波传感器上方不同距离放置障碍物,如图8所示,每秒会依次发送三个数据,此数据即为三个超声波传感器测量到并且同时发送给声光报警传感器的距离。
图8 发送节点的串口显示
分别编译和下载调试发送节点和接收节点的程序,确认没有问题后,接线连接接收节点,在PC上打开串口程序,进行串口初始化配置;然后编译程序,在不同节点的超声波传感器上方放置障碍物,查看串口输出如图9、图10所示。可以看到,串口数据已成功输出,但必须点击发送才会显示串口数据。
图9 接收节点的串口显示1
图10 接收节点的串口显示2
经过多次改进及实验后,完善了串口程序,使其能够自动输出数据与时间,并对不同报警效果进行了统计,其结果如下。
三个超声波传感器上方均没有放置达到报警距离的障碍物时,串口输出结果如图11所示,可以看到,每秒收到了三个距离数据并对安全次数(satime)进行了统计;由于温度、风速等因素的影响,三个超声波传感器虽然放置在同一平面,但每秒测量的距离数据依然有误差,经过3次/s共计20 000次的实验,发现偶尔会有1~5 cm的误差。
图11 无障碍物时串口显示
在第一个超声波传感器上方放置达到报警距离的障碍物,串口输出结果如图12所示。分别在第二个和第三个超声波传感器上方放置达到报警距离的障碍物,串口输出结果如图13、图14所示。在三个超声波测距传感器上方均放置可达到报警距离的障碍物,串口输出结果如图15所示。
图12 第一个节点报警串口显示
图13 第二个节点报警串口显示
图14 第三个节点报警串口显示
图15 三个节点报警串口显示
报警部分包括三种不同程度的报警提示,当距离大于100 cm,绿灯亮,提示安全(safe),提示效果如图16、图17所示。
图16 距离为267 cm时报警效果
图17 距离为101 cm时报警效果
当距离大于20 cm且小于等于100 cm时,蓝灯亮,提示警告(warning),提示效果如图18、图19、图20所示。
图18 距离为100 cm时报警效果
图19 距离为27 cm时报警效果
图20 距离为21 cm时报警效果
距离小于等于20 cm时,红灯亮,提示危险(dangerous),同时蜂鸣报警器进行报警,提示效果如图21、图22所示。
图21 距离为20 cm时报警效果
图22 距离为15 cm时报警效果
在测距报警过程中,本次实验累计进行测距行为2万余次,截取部分实验统计结果如图23所示,可见每次测距三个节点所得数据基本一致,个别情况下测距效果会受温度、风速等因素影响。
图23 无障碍状态下多点超声波测距统计
本次多点超声波统计结果是总共进行30次数据测量得到的,其中在误差可接受的范围内,测量准确的次数为27次,实验准确率为27/30=90%,错误率为3/30=10%,召回率为27/30=90%。
统计部分实验结果与实际数据的误差,实际距离为208 cm,统计结果如图24所示,可见测距过程中误差基本控制在2~5 cm。
图24 无障碍状态下多点超声波测距误差统计
图25 卡方检验结果
在无线通信方面,本系统只需要一个报警端,故不适用组播和广播方式,最后选择了点播方式。在2万余次实验中数据的无线收发成功率较高,截取部分实验统计结果如图26所示,可以达到高质量的数据收发及报警行为,在正常环境及正常速度下遇到障碍物报警成功率为30/30=100%。
图26 有障碍状态下报警率统计
在串口数据获取方面,本次实验编写了两个串口数据获取程序,第一个只能手动点击获取,经过改进后为自动不间断获取串口数据并进行统计。
本文开发了基于超声波和ZigBee的多方向无线声光报警系统,在硬件方面选用CC2530开发板和超声波测距模块等,程序方面使用IAR Embedded Workbench编写,并通过Python编写串口程序,结合LED显示器实现数据准确性的验证,通过声光报警传感器进行报警,证明该系统用于测距报警是可行的。数据传输方面选用ZigBee技术进行数据的无线传输,在程序中通过配置发送与接收端实现点对点的通信,然后可以用串口程序验证数据传输的效果。最后,通过将上述两部分结合并进行功能验证,证明系统运行是可行的。在未来的研究工作中将尝试开发手机APP与电脑端网页实现数据测量后实时统计和多端查看,并尝试通过手机APP与电脑实现报警系统的控制。