最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

基于51单片机及蓝牙模块通讯的动态密码锁设计

IT圈 admin 49浏览 0评论

2024年5月21日发(作者:祁夏瑶)

ELECTRONICS WORLD

技术交流

基于51单片机及蓝牙模块通讯的动态密码锁设计

北京理工大学 吕 添 陈 鹏 甄 灏 彭梓桓

密码锁随着时代的发展,从机械密码锁过渡到了现阶段所使用

的电子密码锁。电子密码锁由于其简单的数字组合便可作为其密钥

的优点受到了大家的青睐,然而,没有实体密钥的缺陷也成为了数

字密码锁容易被破解的缺陷。将动态密码自动变更的功能与数字密

码锁相结合会是一个很好的解决方案。为解决蓝牙模块安全性能不

高问题,引入安全令方式,采用STC89C52单片机作为控制单元,

结合HC05蓝牙模块实现动态密码生成以及与移动端交互通讯功

能,实现一种基于单片机控制的高安全性动态密码锁。

早在距今5000年前人类历史上便有了类似木锁的结构产生。机

械锁因为其可靠的耐用性以及较低的造价,成为了历史长河中不可

或缺的一环。但随着现代数字化时代的推进,机械锁的缺点也就慢

慢地暴露出来。机械锁需要锁芯和金属制成的钥匙上的不同齿状相

配合才能工作,而且金属钥匙一旦丢失,不管是谁捡到钥匙都可以

将机械锁打开。根据调查,每2000把锁中就存在一把锁的钥匙齿牙

相同或相似,大大降低了安全性。

据有关资料介绍,电子密码锁早在20世纪30年代就已经开始着

手研究了,主要应用于一些特殊的场所。目前,在很多发达国家,

电子密码锁的种类非常齐全,制作技术也日趋成熟,电子密码锁已

经慢慢被广泛应用于各种公共处所,并深深融入人们的日常生活。

汪建关等人、解翔宇等人均设计了基于STC89C52单片机的数

字密码锁,其通过矩阵键盘输入开锁密码,当密码输入正确时,开

锁驱动电路实现开锁功能。STC89C51单片机由于其低功耗高性能

等特点,成为了基于单片机的密码锁开源设计的很好参照样本。

然而,数字密码锁因为其没有实体密钥的缺陷也成为了数字密

码锁容易被破解的缺陷,导致其安全性能大打折扣。于是乎,将数

字密码自动动态更新成为了一种很好的技术解决方案。对于动态密

码锁,廖杰等人设计出了一款基于云计算的动态密码锁系统以增强

密码的安全性。为实现密码锁与密钥的分离,密码锁和移动端通讯

成为了发展的一大趋势,目前GSM模块由于其与手机号一一对应

的关系,成为了动态密码锁与移动终端通讯的最佳选择。董一鸣等

人在基于STC89C52单片机的数字密码锁的基础上设计了一种利用

GSM模块与手机进行短信通讯的动态密码锁系统。而在于移动设备

的通讯上,首先随着GSM模块的广泛使用,张柏畅等人设计出了基

于GSM智能密码锁短信双工模式的通讯方式。

本研究调查发现,GSM模块以西门子公司出品的TC35模块为例,

市场价格约为100元,这样的价格比密码锁所采用的核心芯片89C52系

列还贵不少。于是,高昂的价格会成为动态密码锁的运用限制条件,

并且由于GSM模块需占用一张SIM卡,成为了其很累赘的一点。

相比之下,HC05蓝牙模块成本较低,调试较为简单;然而由

于其连接方式安全性低,即所有移动设备均可进行蓝牙匹配连接,

缺乏一机一锁的对应安全关系,使蓝牙模块在移动设备通讯密码锁

方面的运用受到限制。受到方凯彬等人提出的一种密码锁短信动态

口令公开验证模型的启发,将用户静态安全口令和动态密码相结合

应当是一种较好的提高安全性的方法。

我们的研究希望能在保证密码的安全性的基础上,采用价格更为低

廉的HC05蓝牙芯片与移动终端进行通讯最大化降低这款密码锁的成本。

1 系统总体设计

本设计的核心单元将采用STC89C52单片机最小系统,以及相

应的实现功能的外设。旨在实现通过STC89C52单片机产生动态密

码并保存、自动更新,之后用户可通过手机蓝牙连接,回答安全令

获得随机生成的动态密码的动态密码锁。从而实现动态密码以及静

态安全令双重密码保护的功能,既确保密码的安全性,同时相比于

基于GSM模块进行通讯的密码锁,降低生产成本。

图1 系统总体运行流程图

如图1所示,为系统总体流程图。开锁进程总体包括用户端操

作以及单片机端操作。密码锁在无外界信号时,自动产生动态随

机密码,并储存于EEPROM中,这样即使外界有盗窃密码的企

图,也会受到随时更新的密码限制。当单片机接收到用户端开锁

请求时,即从预存的3个安全令中随机发送一个到用户端进行安

135

ELECTRONICS WORLD

技术交流

图2 电路原理图

全令验证,而用户端则此时需要输入安全令信息,如输入正确,

则单片机端对比后提供目前的动态密码;如输入错误,则需重新

输入,多次失败后激活报警程序。用户输入正确动态密码后,继

电器启动完成开锁操作。

1.1 硬件设计

图1所示为利用Altium Designer绘制的动态密码锁电路原理图,其中

一共包括8个部分:STC89C52芯片、AT24C02芯片、DS1302芯片、HC05

蓝牙模块、LCD1602显示器、4

×

4矩阵键盘、继电器、提示灯LED。

STC89C52芯片是STC推出的新一代超强抗干扰/高速/低功耗

的51单片机STC89C52,它是采用8051核的ISP(In System Pro-

gramming)在系统可编程芯片,指令代码完全兼容传统的8051单

片机。如图2所示,单片机核心模块为8051单片机最小单元,其

包括了振荡电路、复位电路以及STC89C52芯片本身。其中多数

引脚均采用了外接排阻上拉至VCC的设计,用于增加I/O口输入输

出信号稳定性。

AT24C02芯片作为密码的储存单元,AT24C02芯片因为其掉电不

丢失数据,起到EEPROM的作用,其中该芯片的SCL和SDA引脚分别

与单片机P21和P20引脚连接。LCD1602承担了这款密码锁的人机交

互显示界面,它是由字符型液晶显示屏(LCD)、控制驱动主电路

HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结

构件等装配在PCB板上而组成,其支持2行各16字符显示。

HC05蓝牙模块则承担了通讯功能,其中P31引脚与模块的RXD

接口连接,P30引脚接模块的TXD模块,GND、VCC则对应与单

片机相应接口连接,与其匹配的移动终端软件可以由MIT APPIN-

VENTOR制作。DS1302芯片是组成该系统的外部时钟源,成为了

增加功能性的设施。LED小灯、嗡鸣器等起到提示、报警功能。最

后再由单片机控制继电器模块实现锁芯的开合。其中4×4矩阵键盘

包括了0-9数字按键、确认、返回键以及上、下翻页键;其采用先

列后行,拉至低电平,交叉检测按键按下的检测方式。

1.2 程序设计

程序框架设计:

根据本设计的目的,除主函数外,可以划分为6个功能模块,

即6个头文件:I

2

C、key、LCD、code、timer、Bluetooth,如图3所

示。其中,I

2

C模块负责利用I2C通讯模式实现单片机与其对应外设

的通讯,例如和AT24c02芯片通讯实现EEPROM的功能;key模块则包

含了按键扫描的代码实现;LCD模块包含了LCD1602显示器的相应功

能使能、实现的函数;code模块则负责了动态随机码的生成、自动更

新储存等功能;timer模块实现了定时器中断的相应配置;Bluetooth模块

136

ELECTRONICS WORLD

技术交流

Step5则是列举了输入过程中若干情况的系统

应答情况。Step6则是完成了最终显示,成功

解锁或是失败。

图3 代码功能模块框架

(3)定时器中断

定时器中断中,首先进行时长判断,

达到预定更新密码的时长,则进行利用定时

器产生数字做种产生随机数,之后将6位随

机密码储存在EEPROM中。同时进行0-2随

机数生成,决定随机产生的预存3个安全问

题,以便在之后获得解锁请求后调用。

(4)蓝牙串口中断

蓝牙串口中断触发方式为蓝牙模块接收

到外界信息时触发,进入中断后,首先向移

动设备发送安全问题,等待移动设备回复。

由于受到该型51单片机SBUF寄存器容量影

响,安全令答案仅支持2字节大小,可使用

数字或字母组合。接收到安全问题回复后进

行答案对比,若正确,则发送最新的动态密

码至移动端;若错误,则有三次重试机会,

否则触发报警功能。

2 实际运行测试

实际测试中使用到:51单片机开发板如

图5所示;安卓手机作为移动端;BTClient蓝

图4 程序流程图

牙接收、发送程序。

(1)上电后,LCD第一行显示“biter 02”,第二行显示“wel-

come”。

(2)之后按任意键进入菜单页面,菜单页面可通过按上、下

翻页键实现滚动选择,选择光标在最右侧成楔形。

(3)菜单首个选项为“unlock”选项,选择后进入密码输入

则主要负责蓝牙数据的收发以及安全令的储存对比等功能。

程序实现流程:

程序总共包括了4个过程,即:初始化、主循环、定时器中

断、蓝牙串口中断。程序流程框图如图4所示。

(1)程序初始化过程

程序的初始化过程包括了:相关参数的初始化赋值;单片机I/

O口引脚定义;程序标志位初始化;LDC1602以及USART串口的初

始化;从EEPROM中读取断电前最后更新的密码,如无则为初始密

码;定时器中断的初始化等。

(2)程序主循环

主循环中首先调用按键读取相关函数,读取是否有按键输入,

之后利用键值判断更新step标志位。step函数组中包括了step0~step6

等,均有一个标志值step指明函数运行进程,他们由主循环中的一

个case条件语句进行判断进而推进单片机程序按步骤进行。Step0

是初始界面的显示,当按键按下时,step值自动加一,进入到下一

步。Step1、step2是相对紧密的两个函数,step2是初始化选择菜单页

面,而之后自动执行step2即菜单滚动、选择功能的实现。Step3则是

初始化密码输入界面,之后进入step4以“*”展示所输入的密码。

图5 单片机开发板

137

ELECTRONICS WORLD

技术交流

界面,可通过矩阵按键输入密码。

(4)菜单第二个选项为“change password”选项,选择后在

输入正确密码后可实现手动更改密码的功能。

(5)菜单第三个选项为“enable dtmm”选项,选择后可实现

使能或失能自动更新生成动态密码的功能。

密码并储存,储存成功后LED指示灯闪烁。

(7)密码的获取可通过安装在手机上的BTClient程序,匹配

到HC05蓝牙模块。当手机端输入按键“9”时,触发单片机发送安

全问题至手机,这里的按键也可根据用户需求更改。安全问题显示

后可以输入2字符的安全令答案,之后获得动态密码。本研究中测

试了三次,分别体现了动态随机码生成,以及随机抽取的三个安全

问题的功能,分别如图6、图7、图8所示。

(8)开锁成功后显示“welcome”。

由图6和图7可以看到,经过一定时间等待,系统自动生成了新

的随机密码,安全问题由于一定概率,从三个预设安全问题中抽取

图6 测试样例一 图7 测试样例二

到了同一个问题。由图7和图8可以看到,再经过一定时间等待,安

全问题和随机密码都发生了变化。

相比于普通的电子密码锁,一款动态密码锁的设计能很大程度

提高它的安全性;而当下动态密码锁多采用GSM模块实现与移动

端通讯,成本较高;本设计的基于51单片机及蓝牙模块通讯的动

态密码锁,在保证动态密码生成功能的前提下,实现通过蓝牙与

手机通讯,设置随机抽取的静态安全问题,很大程度上提高了蓝

牙模块的安全性,而同时降低了动态密码锁的生产成本和使用繁

图8 测试样例三

琐性,因此具有较广阔的应用前景。

(6)若使能动态密码功能,即可在既定时间内自动更新随机

(上接第134页)

使用嵌入式处理器与UWB活动节点以及INS系统相连,接收

距离与惯导信息,实时解算位置坐标。使用小型四旋翼无人机携

带上述装置在场地手动飞行。试验场地保持空旷,为模拟NLOS环

境,在处理器每次接收的UWB基站距离信息中,随机选取3个基站

加入方差

的高斯误差。记录纯UWB定位坐标,LOS环境下融

由图2可以看出,融合算法相较于纯UWB系统,定位的

精确性与稳定性均有提升。其中在LOS环境下表现较好,在

NLOS环境下仍存在一定误差,但能够控制在较小的范围内,

并保持稳定。

为了能够量化的评估算法性能,本文选取8个场地中的固定

点,使用激光测距仪测量其真值坐标。参考(马思源.基于IMU/

UWB/码盘的移动机器人导航定位方法研究),在每个固定点出

取20组位置解算数据,对每个点采用平均欧氏距离作为误差指

合坐标,NLOS环境下融合坐标轨迹,为方便观察,仅选取X,Y坐

标作平面轨迹如图2所示。

表1 UWB节点误差统计

测试点

1

2

3

4

5

6

7

8

实际坐标

(10,10,2)

(25,10,2)

(10,20,2)

(25,20,2)

(10,10,5)

(25,10,5)

(10,20,5)

(25,20,5)

误差(LOS)/m

0.235

0.197

0.202

0.184

0.139

0.167

0.179

0.168

误差(NLOS)/m

0.497

0.378

0.347

0.588

0.203

0.351

标,衡量定位准确性。如表1所示,融合定位系统在LOS环境下

的平均误差为0.184m,在NLOS环境下的平均误差为0.378m,算

法稳定程度高,能够在NLOS环境下运行。

本文设计了一种基于松耦合结构的UWB与INS系统融合定位方

法,通过实验对比组合定位系统在LOS与NLOS环境下的相对于纯

UWB定位系统的性能提升,同时量化的给出了系统的定位误差。

本文所提出的组合定位的方法相较于单一系统,在定位性能上有

明显提升。在室内环境,特别是由于复杂环境引起的NLOS环境

0.267

0.392

下,组合定位能够较好的完成定位任务,满足精确性与稳定性的

要求,具有较强的实用性。

138

2024年5月21日发(作者:祁夏瑶)

ELECTRONICS WORLD

技术交流

基于51单片机及蓝牙模块通讯的动态密码锁设计

北京理工大学 吕 添 陈 鹏 甄 灏 彭梓桓

密码锁随着时代的发展,从机械密码锁过渡到了现阶段所使用

的电子密码锁。电子密码锁由于其简单的数字组合便可作为其密钥

的优点受到了大家的青睐,然而,没有实体密钥的缺陷也成为了数

字密码锁容易被破解的缺陷。将动态密码自动变更的功能与数字密

码锁相结合会是一个很好的解决方案。为解决蓝牙模块安全性能不

高问题,引入安全令方式,采用STC89C52单片机作为控制单元,

结合HC05蓝牙模块实现动态密码生成以及与移动端交互通讯功

能,实现一种基于单片机控制的高安全性动态密码锁。

早在距今5000年前人类历史上便有了类似木锁的结构产生。机

械锁因为其可靠的耐用性以及较低的造价,成为了历史长河中不可

或缺的一环。但随着现代数字化时代的推进,机械锁的缺点也就慢

慢地暴露出来。机械锁需要锁芯和金属制成的钥匙上的不同齿状相

配合才能工作,而且金属钥匙一旦丢失,不管是谁捡到钥匙都可以

将机械锁打开。根据调查,每2000把锁中就存在一把锁的钥匙齿牙

相同或相似,大大降低了安全性。

据有关资料介绍,电子密码锁早在20世纪30年代就已经开始着

手研究了,主要应用于一些特殊的场所。目前,在很多发达国家,

电子密码锁的种类非常齐全,制作技术也日趋成熟,电子密码锁已

经慢慢被广泛应用于各种公共处所,并深深融入人们的日常生活。

汪建关等人、解翔宇等人均设计了基于STC89C52单片机的数

字密码锁,其通过矩阵键盘输入开锁密码,当密码输入正确时,开

锁驱动电路实现开锁功能。STC89C51单片机由于其低功耗高性能

等特点,成为了基于单片机的密码锁开源设计的很好参照样本。

然而,数字密码锁因为其没有实体密钥的缺陷也成为了数字密

码锁容易被破解的缺陷,导致其安全性能大打折扣。于是乎,将数

字密码自动动态更新成为了一种很好的技术解决方案。对于动态密

码锁,廖杰等人设计出了一款基于云计算的动态密码锁系统以增强

密码的安全性。为实现密码锁与密钥的分离,密码锁和移动端通讯

成为了发展的一大趋势,目前GSM模块由于其与手机号一一对应

的关系,成为了动态密码锁与移动终端通讯的最佳选择。董一鸣等

人在基于STC89C52单片机的数字密码锁的基础上设计了一种利用

GSM模块与手机进行短信通讯的动态密码锁系统。而在于移动设备

的通讯上,首先随着GSM模块的广泛使用,张柏畅等人设计出了基

于GSM智能密码锁短信双工模式的通讯方式。

本研究调查发现,GSM模块以西门子公司出品的TC35模块为例,

市场价格约为100元,这样的价格比密码锁所采用的核心芯片89C52系

列还贵不少。于是,高昂的价格会成为动态密码锁的运用限制条件,

并且由于GSM模块需占用一张SIM卡,成为了其很累赘的一点。

相比之下,HC05蓝牙模块成本较低,调试较为简单;然而由

于其连接方式安全性低,即所有移动设备均可进行蓝牙匹配连接,

缺乏一机一锁的对应安全关系,使蓝牙模块在移动设备通讯密码锁

方面的运用受到限制。受到方凯彬等人提出的一种密码锁短信动态

口令公开验证模型的启发,将用户静态安全口令和动态密码相结合

应当是一种较好的提高安全性的方法。

我们的研究希望能在保证密码的安全性的基础上,采用价格更为低

廉的HC05蓝牙芯片与移动终端进行通讯最大化降低这款密码锁的成本。

1 系统总体设计

本设计的核心单元将采用STC89C52单片机最小系统,以及相

应的实现功能的外设。旨在实现通过STC89C52单片机产生动态密

码并保存、自动更新,之后用户可通过手机蓝牙连接,回答安全令

获得随机生成的动态密码的动态密码锁。从而实现动态密码以及静

态安全令双重密码保护的功能,既确保密码的安全性,同时相比于

基于GSM模块进行通讯的密码锁,降低生产成本。

图1 系统总体运行流程图

如图1所示,为系统总体流程图。开锁进程总体包括用户端操

作以及单片机端操作。密码锁在无外界信号时,自动产生动态随

机密码,并储存于EEPROM中,这样即使外界有盗窃密码的企

图,也会受到随时更新的密码限制。当单片机接收到用户端开锁

请求时,即从预存的3个安全令中随机发送一个到用户端进行安

135

ELECTRONICS WORLD

技术交流

图2 电路原理图

全令验证,而用户端则此时需要输入安全令信息,如输入正确,

则单片机端对比后提供目前的动态密码;如输入错误,则需重新

输入,多次失败后激活报警程序。用户输入正确动态密码后,继

电器启动完成开锁操作。

1.1 硬件设计

图1所示为利用Altium Designer绘制的动态密码锁电路原理图,其中

一共包括8个部分:STC89C52芯片、AT24C02芯片、DS1302芯片、HC05

蓝牙模块、LCD1602显示器、4

×

4矩阵键盘、继电器、提示灯LED。

STC89C52芯片是STC推出的新一代超强抗干扰/高速/低功耗

的51单片机STC89C52,它是采用8051核的ISP(In System Pro-

gramming)在系统可编程芯片,指令代码完全兼容传统的8051单

片机。如图2所示,单片机核心模块为8051单片机最小单元,其

包括了振荡电路、复位电路以及STC89C52芯片本身。其中多数

引脚均采用了外接排阻上拉至VCC的设计,用于增加I/O口输入输

出信号稳定性。

AT24C02芯片作为密码的储存单元,AT24C02芯片因为其掉电不

丢失数据,起到EEPROM的作用,其中该芯片的SCL和SDA引脚分别

与单片机P21和P20引脚连接。LCD1602承担了这款密码锁的人机交

互显示界面,它是由字符型液晶显示屏(LCD)、控制驱动主电路

HD44780及其扩展驱动电路HD44100,以及少量电阻、电容元件和结

构件等装配在PCB板上而组成,其支持2行各16字符显示。

HC05蓝牙模块则承担了通讯功能,其中P31引脚与模块的RXD

接口连接,P30引脚接模块的TXD模块,GND、VCC则对应与单

片机相应接口连接,与其匹配的移动终端软件可以由MIT APPIN-

VENTOR制作。DS1302芯片是组成该系统的外部时钟源,成为了

增加功能性的设施。LED小灯、嗡鸣器等起到提示、报警功能。最

后再由单片机控制继电器模块实现锁芯的开合。其中4×4矩阵键盘

包括了0-9数字按键、确认、返回键以及上、下翻页键;其采用先

列后行,拉至低电平,交叉检测按键按下的检测方式。

1.2 程序设计

程序框架设计:

根据本设计的目的,除主函数外,可以划分为6个功能模块,

即6个头文件:I

2

C、key、LCD、code、timer、Bluetooth,如图3所

示。其中,I

2

C模块负责利用I2C通讯模式实现单片机与其对应外设

的通讯,例如和AT24c02芯片通讯实现EEPROM的功能;key模块则包

含了按键扫描的代码实现;LCD模块包含了LCD1602显示器的相应功

能使能、实现的函数;code模块则负责了动态随机码的生成、自动更

新储存等功能;timer模块实现了定时器中断的相应配置;Bluetooth模块

136

ELECTRONICS WORLD

技术交流

Step5则是列举了输入过程中若干情况的系统

应答情况。Step6则是完成了最终显示,成功

解锁或是失败。

图3 代码功能模块框架

(3)定时器中断

定时器中断中,首先进行时长判断,

达到预定更新密码的时长,则进行利用定时

器产生数字做种产生随机数,之后将6位随

机密码储存在EEPROM中。同时进行0-2随

机数生成,决定随机产生的预存3个安全问

题,以便在之后获得解锁请求后调用。

(4)蓝牙串口中断

蓝牙串口中断触发方式为蓝牙模块接收

到外界信息时触发,进入中断后,首先向移

动设备发送安全问题,等待移动设备回复。

由于受到该型51单片机SBUF寄存器容量影

响,安全令答案仅支持2字节大小,可使用

数字或字母组合。接收到安全问题回复后进

行答案对比,若正确,则发送最新的动态密

码至移动端;若错误,则有三次重试机会,

否则触发报警功能。

2 实际运行测试

实际测试中使用到:51单片机开发板如

图5所示;安卓手机作为移动端;BTClient蓝

图4 程序流程图

牙接收、发送程序。

(1)上电后,LCD第一行显示“biter 02”,第二行显示“wel-

come”。

(2)之后按任意键进入菜单页面,菜单页面可通过按上、下

翻页键实现滚动选择,选择光标在最右侧成楔形。

(3)菜单首个选项为“unlock”选项,选择后进入密码输入

则主要负责蓝牙数据的收发以及安全令的储存对比等功能。

程序实现流程:

程序总共包括了4个过程,即:初始化、主循环、定时器中

断、蓝牙串口中断。程序流程框图如图4所示。

(1)程序初始化过程

程序的初始化过程包括了:相关参数的初始化赋值;单片机I/

O口引脚定义;程序标志位初始化;LDC1602以及USART串口的初

始化;从EEPROM中读取断电前最后更新的密码,如无则为初始密

码;定时器中断的初始化等。

(2)程序主循环

主循环中首先调用按键读取相关函数,读取是否有按键输入,

之后利用键值判断更新step标志位。step函数组中包括了step0~step6

等,均有一个标志值step指明函数运行进程,他们由主循环中的一

个case条件语句进行判断进而推进单片机程序按步骤进行。Step0

是初始界面的显示,当按键按下时,step值自动加一,进入到下一

步。Step1、step2是相对紧密的两个函数,step2是初始化选择菜单页

面,而之后自动执行step2即菜单滚动、选择功能的实现。Step3则是

初始化密码输入界面,之后进入step4以“*”展示所输入的密码。

图5 单片机开发板

137

ELECTRONICS WORLD

技术交流

界面,可通过矩阵按键输入密码。

(4)菜单第二个选项为“change password”选项,选择后在

输入正确密码后可实现手动更改密码的功能。

(5)菜单第三个选项为“enable dtmm”选项,选择后可实现

使能或失能自动更新生成动态密码的功能。

密码并储存,储存成功后LED指示灯闪烁。

(7)密码的获取可通过安装在手机上的BTClient程序,匹配

到HC05蓝牙模块。当手机端输入按键“9”时,触发单片机发送安

全问题至手机,这里的按键也可根据用户需求更改。安全问题显示

后可以输入2字符的安全令答案,之后获得动态密码。本研究中测

试了三次,分别体现了动态随机码生成,以及随机抽取的三个安全

问题的功能,分别如图6、图7、图8所示。

(8)开锁成功后显示“welcome”。

由图6和图7可以看到,经过一定时间等待,系统自动生成了新

的随机密码,安全问题由于一定概率,从三个预设安全问题中抽取

图6 测试样例一 图7 测试样例二

到了同一个问题。由图7和图8可以看到,再经过一定时间等待,安

全问题和随机密码都发生了变化。

相比于普通的电子密码锁,一款动态密码锁的设计能很大程度

提高它的安全性;而当下动态密码锁多采用GSM模块实现与移动

端通讯,成本较高;本设计的基于51单片机及蓝牙模块通讯的动

态密码锁,在保证动态密码生成功能的前提下,实现通过蓝牙与

手机通讯,设置随机抽取的静态安全问题,很大程度上提高了蓝

牙模块的安全性,而同时降低了动态密码锁的生产成本和使用繁

图8 测试样例三

琐性,因此具有较广阔的应用前景。

(6)若使能动态密码功能,即可在既定时间内自动更新随机

(上接第134页)

使用嵌入式处理器与UWB活动节点以及INS系统相连,接收

距离与惯导信息,实时解算位置坐标。使用小型四旋翼无人机携

带上述装置在场地手动飞行。试验场地保持空旷,为模拟NLOS环

境,在处理器每次接收的UWB基站距离信息中,随机选取3个基站

加入方差

的高斯误差。记录纯UWB定位坐标,LOS环境下融

由图2可以看出,融合算法相较于纯UWB系统,定位的

精确性与稳定性均有提升。其中在LOS环境下表现较好,在

NLOS环境下仍存在一定误差,但能够控制在较小的范围内,

并保持稳定。

为了能够量化的评估算法性能,本文选取8个场地中的固定

点,使用激光测距仪测量其真值坐标。参考(马思源.基于IMU/

UWB/码盘的移动机器人导航定位方法研究),在每个固定点出

取20组位置解算数据,对每个点采用平均欧氏距离作为误差指

合坐标,NLOS环境下融合坐标轨迹,为方便观察,仅选取X,Y坐

标作平面轨迹如图2所示。

表1 UWB节点误差统计

测试点

1

2

3

4

5

6

7

8

实际坐标

(10,10,2)

(25,10,2)

(10,20,2)

(25,20,2)

(10,10,5)

(25,10,5)

(10,20,5)

(25,20,5)

误差(LOS)/m

0.235

0.197

0.202

0.184

0.139

0.167

0.179

0.168

误差(NLOS)/m

0.497

0.378

0.347

0.588

0.203

0.351

标,衡量定位准确性。如表1所示,融合定位系统在LOS环境下

的平均误差为0.184m,在NLOS环境下的平均误差为0.378m,算

法稳定程度高,能够在NLOS环境下运行。

本文设计了一种基于松耦合结构的UWB与INS系统融合定位方

法,通过实验对比组合定位系统在LOS与NLOS环境下的相对于纯

UWB定位系统的性能提升,同时量化的给出了系统的定位误差。

本文所提出的组合定位的方法相较于单一系统,在定位性能上有

明显提升。在室内环境,特别是由于复杂环境引起的NLOS环境

0.267

0.392

下,组合定位能够较好的完成定位任务,满足精确性与稳定性的

要求,具有较强的实用性。

138

发布评论

评论列表 (0)

  1. 暂无评论