APP下载

一种基于动态密码的窨井盖防盗系统设计

2022-03-12魏春荣赵松岩王李铭王树桐孙建华

中国新技术新产品 2022年23期
关键词:窨井盖蜂鸣器蓝牙

魏春荣 赵松岩 王李铭 王树桐 孙建华

(1.黑龙江科技大学安全工程学院,黑龙江 哈尔滨 150022;2.哈尔滨第一机械集团有限公司研究院,黑龙江 哈尔滨 150056)

0 引言

窨井作为城市中重要的基础设施,多设置于人员活动密集的场所,由于长期以来人们对窨井的设计、施工、维护等方面存在不足之处,因此使用窨井盖会经常出现安全问题,绝大多数窨井盖只是具有井盖的基本功能,没有注重窨井盖监控监测方面的设计,影响公众出行安全性,为保障人们的出行安全,对现有窨井盖进行优化设计十分必要。

在国外的某些国家,有关窨井盖的设计都比较合理,对窨井的设置地点进行设计,每隔一段距离设置1 个窨井盖,并与周围建筑协调,当出现窨井盖缺失的情况时,窨井显得更突兀,从而引起行人注意,避免坠井安全事故发生[1]。国内外关于窨井盖的自动检测报警和机械安全码进行深入研究[2-7]。目前,在智能终端的稳定性、通信线路的成本、工程实施阶段的质量控制和对井盖管理的考核标准等方面都还存在一些不足,合理的窨井盖设计关系到人们的生命财产安全,该文采用动态密码系统加强窨井盖安全防盗性具有重要意义。

1 动态密码防盗设计

为保障窨井盖在日常使用过程中安全,该文设计动态密码系统来保证窨井盖的防盗,通过HC-05 蓝牙模块向工作人员传输数据,整体程序使用Keil5 来编写,同时为程序的整体优化提供基础。

在主函数的循环中,首先通过Get_Adc_Average()函数获取ADC 通道的电压值,并将得到的电压值作为srand()函数的种子,随机生成数列,再将随机生成的数列与10000取余来确保得到四位数的密码。逐位比对密码时设置正确right 计数,每对一位,right 自增1,当且仅当right 的值为4时才能正确解锁且此时right 值清零,否则失败计数times 自增1,当times 值大于2 即输入密码次数错误超过3 次,则会使BEEP 的电平拉高,触发蜂鸣器发出警报声。中断器每0.5s 中断一次,因此计数counter 每600 归零一次,保证一个动态密码持续时间有5 min。同时将得到随机数按位取余得到4 个数字,用于后续用户输入密码进行比对。

2 模块程序设计

2.1 蜂鸣器报警程序设计

有源蜂鸣器电路结构如图1 所示,通过使用偏置电阻对有源蜂鸣器进行保护,其中三极管相当于是蜂鸣器的开关。当三极管处于饱和状态时,电路导通使蜂鸣器发出警报声,反之不会发出警报声。此外,蜂鸣器模块还外接了运算放大器8050,起到放大信号的作用,更易于进行分析和处理。当电流信号未超过阈值时单片机发出的是低平信号,一旦超过阈值,单片机就会发送高平信号,蜂鸣器发出警报声。蜂鸣器电路程序设计流程如下:首先,对其系统初始化,然后检测负载支路的电流信号,检测完成后向STM32 发送请求信号,由微处理器来判断当前状态,如果没超过阈值则使蜂鸣器不发出警报;如果检测到的电流信号超过阈值,则蜂鸣器发出警报声,然后返回中断等待程序结束运行。

图1 蜂鸣器电路结构图

2.2 显示屏程序设计

该文采用TFT-LCD 液晶显示屏作为动态密码系统的显示模块。由图2 可知,TFTLCD 共有35 个端口。其中1 号和3 号引脚为接地端口,2 号和3 号引脚为VDD 电源输入口,外接3.3V 即可完成供电,4 号引脚是CS 信号端口,5号引脚为导频信号端口,6 号和7 号引脚分别为数据的读写端口,8 号引脚为复位端口。DB0-DB15 引脚为16 个数据检测端口,用于单片机传输数据。TFT-LCD 显示是通过内部像素点的方式显示画面的,像素点以矩阵状态进行分布,通过矩阵操作变换使字符画面变换,保证TFT-LCD 正常运行,即保证其内部矩阵模块工作正常。TFT-LCD 另一个优点就是功耗较低,可以节约成本。显示屏程序设计流程如下:首先为系统初始化,显示边框以及虚拟键盘,如果不能正常显示虚拟键盘就会一直进行初始化,直到正常显示虚拟键盘。之后就会检测是否有输入值,如果有输入值则循环显示输入值,如果没有输入值则会在刷新屏幕后返回中断。在设置好虚拟按键的边框后,划分虚拟按键的功能区域为3×4 的矩形区域,并且通过LCD_Fill()函数填充虚拟按键背景色,从而达到触摸虚拟按键变色的效果,增强交互性。

图2 TFTLCD 电路结构图

2.3 蓝牙模块设计

为实现动态密码的远距离传输,将STM32 生成的密码传输到手机等移动终端上。该文选择高效可靠的无线蓝牙传输技术,通过HC-05 蓝牙模块来实现数据的传输。HC-05蓝牙模块不仅本身性能优越而且其功耗也较低,支持的波特率范围较为宽泛:2400~1382400,且兼容3.3 V 或5V 系统。HC-05 蓝牙模块的参数见表1。蓝牙模块采用Bluetooth2.0 传输协议,只需TTL 电路就能驱动。STM32 单片机每个GPIO口都配有内部的上拉、下拉电阻,通过寄存器控制,方便蓝牙模块与单片机相连[8]。HC-05 模块通过串口线进行连接通信,包括RXD,TXD。

表1 HC-05 性能参数

HC-05 的所有功能都是靠AT 指令集控制实现的,设置相应的AT 指令后即可工作在相应的状态,在进入AT 指令模式前要拉高KEY 引脚的电平;反之,退出AT 指令则拉低KEY 引脚电平。在与STM32 连接中,KEY 引脚与GPIOA_Pin4 相连,RXD 与GPIOB_Pin10 相连,TXD 与GPIOB_Pin11相连,使能端VCC 接的是5V 的电源。

3 动态密码系统测试

3.1 HC-05传输距离测试

一般HC-05 默认通信距离为10m,但在实际使用过程中HC-05 的传输距离可达到10m 以上,在环境空旷的情况下一些较为专业的蓝牙模块甚至可达到30 米的传输距离[9]。在传输距离测试中,先发送8 组数据,然后暂停10s,如果能重新发送数据,则说明当前的蓝牙连接有效。由表2 可知,为HC-05 的传输距离测试结果。在20m 内,HC-05 蓝牙连接是很稳定的,数据能够成功传输至移动终端;在24m~26m时,蓝牙连接开始不稳定,数据传输有时会发送失败,蓝牙连接也会经常断开;在28m 时,蓝牙连接完全断开,无法重新连接且数据传输失败。因此HC-05 的有效传输距离在20m 左右,可以满足工作人员打开窨井盖日常作业的要求。

表2 HC-05 传输距离测试

3.2 蓝牙有效距离RSSI 测试

在不同距离下测量RSSI 值时判断蓝牙连接能力强弱的重要标准之一,为了方便数据收集整理,本次测量距离采用5m、10m、15m、20m 四种距离。HC-05 模块可以使用AT指令:AT+INQ 便可以查询在不同位置时的RSSI 值。根据传输距离测试的结果,每组测量50 组RSSI 值。

从图3 中可知,在5m 的位置上,HC-05 的接收信号强度指示RSSI 在-65dBm~-50dBm 浮动,显示出非常稳定的蓝牙数据传输信道,该位置的平均RSSI 值为-60.34dBm,符合测量结果。在10 米的位置上,接收信号强度指示RSSI 与5m 位置相比更低,RSSI 值在-75dBm~-64dBm 浮动,其平均RSSI 值为-70.12 dBm,符合图中的分析结果,同时也说明 10 m 这个位置的数据接收是稳定的。在15 m 的测量位置上,前6 组测量结果显示RSSI 值在-82dBm~-75dBm 浮动,期间接收强度偶有变弱,随后RSSI 值在-75dBm~-65dBm 浮动,数据传输信号强度也得以恢复,说明在15m 的位置上数据传输总体情况是良好的,其平均RSSI 值为-72.42 dBm。在20m 的位置上,接收信号强度指示RSSI 均在-85dBm~-75dBm 浮动,有些浮动变化较大,其间数据传输信号强度明显变弱,该位置上的平均RSSI 值为-78.06 dBm,与HC-05蓝牙模块的RSSI 接收阈值非常接近,说明20m 这个位置数据传输时出现错误概率较大,数据容易中断。从测量结果看,RSSI 值随着距离的不断增大而逐渐变小,浮动增大,数据传输也越容易出现错误。因此在窨井盖的日常维护工作中要尽量保证在20 米内使用终端连接蓝牙,才能保证动态密码的正常传输。

图3 RSSI 测量结果

3.3 动态密码接收测试

HC-05 模块的蓝牙版本为2.0,测试中使用的Android 手机上的蓝牙也是2.0 版本。在测试中,Android 手机始终与HC-05 模块保持在20m 内,信号传输处于平稳状态,同时Android 手机的通信频段为2.4GHz,也有可能会影响蓝牙传输,因此Android 手机在测试时仅有蓝牙模块处于未开启状态,其余如Wi-Fi、4G 移动流量等都处于关闭状态,尽最大可能地减少干扰。由图4(a)密码输入错误效果图可知,当密码输入错误时,单片机底部的红色LED 灯会亮起,提醒用户密码输入错误,如果密码连续输入错误达到3 次,蜂鸣器会发出警报声;由图4(b)密码输入正确的效果图可知,此时单片机底部的绿色LED 灯会亮起,如果此前输入过错误密码而亮起的红色LED 灯也会因为输入正确密码后熄灭,只亮起绿色LED 灯以提醒用户密码输入正确。

图4 动态密码输入测试

HC-05 与终端(测试时使用的Androidd 手机)连接,当终端与HC-05 成功连接时,终端会显示“已连接”。同时单片机的屏幕上也会在屏幕中央红色CODE 下方显示“OK”表示蓝牙连接成功,可以正常使用。反之,如果终端与HC-05连接异常导致没能成功连接,终端会显示“连接断开”。单片机的显示屏上也会在红色CODE 下方显示“error”,表示蓝牙连接异常,请重新连接。

动态密码的终端输入测试,当单片机生成动态密码且通过蓝牙将动态密码发送到终端后,可通过使用终端输入密码来解锁,只要在终端的输入框内输入刚刚接收到的动态密码,可通过蓝牙将输入的密码再次传输回单片机,在单片机的显示屏上也会在红色CODE 下方显示由终端输入的密码,单片机通过对比验证后可通过单片机下方的LED 灯亮起的颜色得知输入密码是否正确。

动态密码的变更测试,动态密码不是一成不变的,动态密码随设定的时间变化,每隔一段时间之前的密码将会被废弃,只有输入最新密码才能被视作输入正确密码,之前生成的密码超过了设定的时间已经作废,只有在终端输入当前的密码才能使单片机的绿色LED 灯变亮,即输入密码正确。同时为了测试更方便、高效,将动态密码的生成时间设置为较为短暂的1 min,这意味着一个密码只有1 min 的寿命,过了1 min 新密码生成取代旧密码,在正式使用中可以根据不同的情况将动态密码的寿命设置成不同的时间。测试时每隔一分钟单片机会生成一个新密码并通过蓝牙不断传输,只要在HC-05 的工作范围内即20m 以内,就可以保证终端可以在第一时间收到最新的动态密码。每个动态密码都是相隔1min接收到的,并且新生成的密码与生成过的密码不会相同,从而保障动态密码的安全。

4 结语

该文主要设计了动态密码防盗系统的程序。其中包括动态密码主程序的设计以及蜂鸣器、显示屏模块、蓝牙模块的程序设计。在程序设计过程中要尽量保证程序的稳定性、适应性、可扩展性、时效性和易维护性,同时做好程序的模块化编写,保证程序的逻辑性并做好注释,方便后期添加新功能以及对进行维护。同时通过对HC-05 蓝牙模块的传输距离测试和有效距离RSSI 测试来验证HC-05 的工作可靠性,已达到该设计的工作要求。对动态密码接收测试来验证动态密码系统的稳定可靠性,在HC-05 的有效工作距离内,动态密码可以进行密码传输、比对等工作,动态密码系统可以稳定工作。

猜你喜欢

窨井盖蜂鸣器蓝牙
电动自行车产品车速提示音检测现状和整改技术研究(2)
掌控板制作简易钢琴
单片机驱动蜂鸣器的程序设计
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
紧急:蓝牙指尖陀螺自燃!安全隐患频出
丰田凯美瑞240V车间隙警告蜂鸣器异常鸣响
可升降窨井盖
窨井盖配北斗乃科技服务范例