基于蓝牙射频的智能防丢器设计与实现
2024-01-23胡艳茹
胡艳茹
(宁夏师范学院 物理与电子信息工程学院,宁夏 固原 756000)
0 引 言
针对时常困扰人们的寻找日常生活用品的问题,已有人尝试采用贴标签、射频识别等方法来解决[1-2]。市面上也出现了一些智能防丢器,但大多存在一些问题,如:操作上必须单独下载安装APP 后才能使用;使用中常发生连接不上,无法准确定位的现象;耗电量高、定位效果不好和效率低下等[3]。本文根据STM32 单片机控制技术的优点,设计实现了一种基于蓝牙连接,利用RSSI 算法准确定位,能够代替门禁卡的智能防丢器。防丢器的体型小巧,方便携带,手机端操作简便,能够真正地为人们提供便利[4-5]。
1 系统整体设计
智能防丢器采用STM32F103C8T6 作为主控芯片,通过2 颗3 V 锂电池提供电源。实现的主要功能有:日常生活用品定位、声光报警、门禁。图1 是智能防丢器系统电路。
图1 智能防丢器系统电路
2 硬件电路设计
硬件电路主要由电源模块、RFID 模块、蓝牙模块、核心模块组成。
2.1 电源模块
防丢器主控芯片选取型号为STM32F103C8T6,由于其工作电压为1.65 ~3.6 V,则选用AMS1117-3.3 稳压器,将电路电压稳定在3.3 V 左右[6]。电源转换电路如图2 所示。
图2 电源转换电路
2.2 蓝牙模块
本系统所选用的蓝牙串口通信模块是PW02 模块,基于蓝牙BLE5.0 协议架构,封装仅为6.8 mm×9.6 mm;功耗全部在毫安级以内,600 ms 广播周期待机最高平均功耗仅为23 μA,全速传输时功耗仅为619 μA[7-8]。相比其他公司的蓝牙模块传输时的10 mA 功耗,PW02 功耗仅为它们的1/16。图3 是PW02 蓝牙串口通信模块的实物图,模块尺寸比直径为1.05 cm 的硬币小很多。
图3 PW02 蓝牙串口通信模块的实物图
蓝牙模块采用的RSSI 算法主要是接收信号强度表示法。首先确定发射端的发射功率,并对接收端接收到的RSSI 数据进行检测;再对接收器和接收器的距离进行测量[9]。在此基础上利用接收到的信号强度信息,求出接收器与发射端之间的距离,并利用三角重心方法求解被测点的位置,如图4 所示。
图4 RSSI 方法
蓝牙测距方法主要是通过RSSI 和最小二乘迭代算法进行计算,其基本公式为:
式中:RSSI 为接收到的信号强度;d为信号受环境影响的衰减程度系数;S0为发射器与接收器相距1 m 时的信号强度。考虑到实际应用环境的复杂程度,在蓝牙定位功能投入使用之前进行大量测试以进行校准[10]。设计中蓝牙模块P02 引脚连接MCU 模块I/O1,复位RESET 引脚连接MCU 模块I/O2,P05、P06 引脚分别为蓝牙模块收发信息引脚,需要与主控模块TX、RX 引脚对应连接;P03 引脚必须要接高电平,整个蓝牙模块才能接通。
2.3 RFID 射频模块
RFID(Radio Frequency Identification),也就是所谓的“电子标签”,是一种非接触的信息访问技术,是物联网技术的一个重要组成部分。射频识别技术是通过无线通信来读出被测对象所携带的信息[11]。RFID 是一种典型的电子标签、读卡器和应用软件,其工作流程是首先通过读卡机生成射频磁场,然后通过天线发射出去。当日常生活用品被放入读卡机所产生的射频场中,它就会得到工作所需要的电能,并产生一个工作电压,然后激活电子标签,使其工作起来。电子标签接收到工作电能后,对自己内存中的资料进行调制,然后通过天线传送到卡片阅读机[12]。在收到电子标签所传送的资料后,该资料被传送到微处理器进行处理,以显示刷卡成功。其通信原理如图5 所示。
图5 RFID 通信原理
本设计采用无源RFID,它是最早、最成熟、应用最广的一种RFID 产品。它是利用无线射频识别装置接收到微波信号,并利用电磁感应线圈获得电能,实现信息交流。由于省去了电力供应,因此无源RFID 的体积可达毫米级或以下,其本身构造简单、造价低廉、故障率低、寿命长。
2.4 核心电路模块
本设计的核心处理器使用STM32 系列的STM32F103C8T6。它是内核为32 位的ARM®Cortex®-M3 微处理器芯片,代码效率高,配置的外设接口数量较多,并且集成度高、功能强、实时性良好、性价比高,常用于智能家居和智能设备上[13]。主控芯片通过采集蓝牙定位信号找寻防丢器,发出声光信号;当有日常生活用品丢失情况发生时,也会通过灯光闪烁加蜂鸣器报警的方式提醒用户,利用RFID 模块还能够实现门禁功能,用户入户通过刷卡开门。实物搭建的具体材料、数量及规格见表1所列。
表1 实物搭建材料
3 软件设计
本设计的软件程序部分是通过Keil 公司开发的MDK 软件来完成的,Keil 拥有强大的代码编译器、宏汇编、链接器、库管理以及一个强大的模拟调试器,利用μVision 把它们结合起来,实现了一套完整的联机模拟调试。通过软体或软体的模拟,可以较快地进行模拟和调试。本设计采用了Keil μVision5 的开发环境,可以极大地减少开发时间,使程序的开发速度更快、更有效率[14-15]。
3.1 系统整体工作流程
系统首先进行初始化,然后MCU 采集距离数据,蓝牙连接主控芯片后,对数据进行分析处理,进而实现定位。图6 是本系统的软件流程。
图6 系统的软件流程
3.2 蓝牙串口通信设计
本系统设计选取PW02 模块作为蓝牙通信模块,通过串口与STM32 的USART3 进行通信,完成数据的发送和接收。当蓝牙连接成功时,指示灯常亮蓝色;STM32 对防丢器与手机所处距离进行判断,如果大于1 m,防丢器进行声光报警,提醒用户。蓝牙模块工作流程如图7 所示。
图7 蓝牙模块工作流程
STM32 与蓝牙模块进行通信时,先配置中断收发器的I/O 口,将USART3 中的TX 引脚设置为推挽输出模式,同时将引脚输出时钟频率设为50 MHz,将RX 引脚设置为推挽浮空输入模式,此处不需要设置切换速率。本系统中的波特率一致配置成9 600 b/s,并且蓝牙模块的波特率也是9 600 b/s,两者的配置应当相同,这是很重要的一点,否则后续无法进行正常的通信。此外还需要在帧结尾传输1 个停止位,设置为无奇偶校验位,接着打开使能串口1 的中断,驱动部分代码如下:
3.3 射频模块
射频模块与主控模块通信流程如图8 所示,刷卡成功后显示器上会显示“读卡成功”字样。
图8 RFID 模块通信流程
4 系统测试
将程序经烧录软件下载至成型硬件电路中,并进行调试。调试完成后对电路板进行固定并美化成品,实物完成上电后整体效果如图9 所示。
图9 成品正反面效果
针对完整的智能防丢器系统进行功能测试,蓝牙模块测试内容包括蓝牙连接、响铃情况、灯光闪烁情况。蓝牙连接完成后蓝色灯光会闪烁,指示蓝牙已经连接,如图10 所示代表蓝牙模块连接成功。
如图11 所示,RFID 模块初始化后,指示灯常亮红色。
图11 RFID 模块初始化显示
将防丢器贴近刷卡感应区,收集得到完整的数据信息后,OLED 屏幕上就会显示刷卡成功,如图12 所示。如果没有显示,则可能原因为:(1)防丢器离传感器距离过远;(2)硬件发生故障。
图12 RFID 模块刷卡成功显示
5 结 语
本文设计的基于STM32 的智能防丢器,可以通过采集蓝牙定位信息找寻防丢器,当人与物品距离超过1 m 时,蜂鸣器会发出声音,模块会闪烁红色灯光,提醒用户防丢器丢失。另外,还可以通过RFID 模块实现刷卡,当防丢器未接触到模块时,屏幕显示读卡器;当防丢器接触到模块时,显示刷卡成功。防丢器小巧轻便,可轻松放入钱包、卡包等随身小包中,随时随地追踪需要查找的物品,基于近距离定位技术快速找回失物。