基于STM32单片机的智慧防丢失系统设计与实现
来源:用户上传
作者:雷思睿
摘 要:基于STM32单片机,通过在相关物品身上安装简易蓝牙防丢器,将防丢失装置固定在易丢失的物品上,在手机与防丢器之间建立连接,利用安装在手机的APP查看物品与人距离,超过预设距离后手机端响铃马上报警提醒用户。同时利用手机APP呼叫防丢失器,装置发出蜂鸣声以达到示意指引用户的目的。文章对此设计进行了阐述。
关键词:蓝牙技术;单片机;无线通信;防丢失器
1 蓝牙技术概述
蓝牙的核心主要是利用跳频技术。因超低功耗优势,使得蓝牙技术得以广泛应用,从而诞生蓝牙防丢器这种产品。为了满足大众的使用需求,新一代蓝牙4.0防丢器产品已经出现。蓝牙4.0防丢器即智能蓝牙防丢器,采用最新蓝牙4.0技术,专门为iPhone/iPad设计的防丢器。工作原理主要是通过距离变化来判断物品是否还控制在用户的安全范围内,又因为设计简单轻巧,携带方便,很快得到市场认可。
2 无线防丢器主要代表设计
无线防丢器设计是基于物联网技术基础上设计的。目前按市场分类,当前主流的智能防丢器主要有两种:一种是形式比较单一,主要以防丢贴片或防丢挂件形式存在的用于设备防丢的智能防丢器;一种是以智能穿戴设备、服饰、鞋等形式多样的用于人防丢的防丢器。目前有关无线防丢器在实际生活中有以下两种应用。
2.1 基于雷达的追踪器
基于雷达的追踪器,也被称为“无线电定位”,此类无线防丢器是利用电磁波探测目标的电子设备,雷达发射电磁波对目标物体进行照射并接收其返回波,由此获得目标至电磁波发射点的距离、距离变化率、方位、高度等信息。美国的雷达追踪器Stick-N-Find,将防丢器附着于物品表面,如果物品找不到了,可利用手机查看与之匹配的APP,并从APP显示的数据了解物品与自己的距离,并根据APP的动态指引与距离的变化,即可找到失物[1]。
2.2 虚拟牵引绳
用于预防认知症老人、孩童走失,把贴片放在老人、孩子身上。用户端APP自带的蓝牙功能与防丢器进行信号通信,当预防主体跑出手机端预先设置的安全距离,手机端接收不到信号则将发出警报。按技术分类,目前智能防丢器的种类有蓝牙/WiFi智能防丢器、GPS智能防丢器、RFID智能防丢器等,比较新颖的是结合磁场或传感器技术的智能防丢器。
3 基于STM32单片机的智慧防丢失系统的设计
基于STM32单片机的智慧防丢失系统包含由单片机和通信模块组成的防丢装置与利用Android Studio开发的手机APP两部分。通过蓝牙通信可以知道附有蓝牙标签的物品距离,当距离超过一定程度,用户手机端响铃警报。还可利用匹配的手机APP的呼叫装置,通过蜂鸣让用户知道物品的大致位置[2]。
3.1 系统框架
智慧防丢失系统主要分为用户端与蓝牙防丢器两部分。用户端建立自带在Android系统的手机端上,通过Java进行程序编写。程序设计大体分为以下4个模块:蓝牙通信、人机交互界面、报警和信号处理。蓝牙防丢器是一个由STM32单片机、蓝牙模块和蜂鸣器组成的防丢失硬件装置,可进行无线信号采集、串口通信模块和驱动模块,收发信号进行数据交流并反馈到客户端。
3.2 系统设计主要任务
系统构成分为硬件电路设计和软件设计。硬件中由一个STM32单片机作为主机连接蓝牙模块和蜂鸣警报器,构成一整个无外壳的蓝牙防丢失装置。手机端安装基于Java语言自行开发的应用软件,打开APP,预先设置安全距离,若用户手机端与装置的距离超过预设,则手机响铃发出警報。蓝牙范围中,用户还可通过APP呼叫防丢器,以确定失物大体位置。在整个过程中需要加强单片机对蓝牙模块进行功能控制。无线防丢失系统的硬件设计包含单片机、信号转换电路和蜂鸣报警器等。
3.3 系统设计技术分析
蓝牙防丢器主要技术手段:网络编程技术、Android开发技术、C语言与Java语言的运用等。通过低功耗蓝牙的信号进行数据转换传输,通过对无线传感器网络中的RSSI进行逻辑处理,计算失物与自己的距离。所使用到的编程工具有Android Studio,Keil;系统硬件分为3个部分,分别是STM32单片机、蓝牙模块及蜂鸣器。关于通信模块的设计主要包括蓝牙模块串口通信,TCP/IP簇实现互联,进行信号采集、蓝牙模块驱动程序的设计。软件部分为带有蓝牙功能的APP设计,其中包括用户界面设计、网络编程、View绘制[3]。
3.4 系统用户端模块方案设计
本系统用户端功能主要分为蓝牙连接和通信。APP与蓝牙防丢器通信;蓝牙信号处理和转换:将扫描到蓝牙信号强度指示(Received Signal Strength Indication,RSSI)通过后台计算转为距离;蓝牙报警功能:当蓝牙防丢器超出一定距离,用户收到警报;同时用户还可通过APP呼叫防丢器,此时防丢器发出蜂鸣声进行回应。
4 基于STM32单片机的智慧防丢失系统实现
4.1 系统硬件设计
4.1.1 STM32F103C8T6单片机的设计
STM32F103C8T6有ARM公司的高性能“Cortex-M3”内核,是32位处理器,可以升频到72 MHz。STM32单片机与蓝牙模块通过串口通信进行互连,串口通信是一种设备间十分常见的串行通行方式,其操作简单便捷,且大部分电子设备都支持。
4.1.2 HC-05蓝牙模块的设计
选用蓝牙模块为HC-05,其采用CSR主流蓝牙芯片,蓝牙V2.0协议标准。自带连接状态指示灯,LED快闪表示没有蓝牙连接;LED慢闪表示进入AT命令模式。这款蓝牙模块可与自带蓝牙的笔记本电脑、蓝牙适配器等设备进行无缝连接。HC-05蓝牙通信模块具有两种工作模式:命令响应工作模式和自动连接工作模式。 蓝牙实现的功能包括:(1)扫描其他蓝牙设备。(2)为可配对的蓝牙设备查询蓝牙适配器。(3)建立RFCOMM通道。(4)通过服务搜索来链接其他的设备。(5)与其他的设备进行数据传输。(6)管理多个连接。
4.1.3 蜂鸣器电路的设计
主板通过USB数据线供电后,用户通过手机进入系统蓝牙配对HC-05,然后打开APP,此时即可以收到信号并计算距离,超过预设距离则报警。如果用户要呼叫蓝牙防丢装置,则在APP最下面的列表点击HC-05,然后点击呼叫即可。
4.2 系统软件设计
4.2.1 APP开发介绍
智慧防丢失APP的设计主要基于Android平台,通过APP可以看到绑定物品的距离和报警情况。
采用Android Studio进行手机端的程序编写,单片机采用Keil进行程序编写然后通过仿真器将代码烧录到目标板(PC端仿真器驱动已经安装完毕为前提),当用户端能通过蓝牙模块与单片机建立连接后,用STM32单片机进行程序测试。由于HC-05蓝牙模块可支持通用AT指令,所以单片机的串口中断可对蓝牙模块进行一些操作。手机软件通过蓝牙连接到单片机,单片机根据接收到的不同的信号数据做出不同的响应。需要设计出一个有着友好界面UI,简洁清晰,便于用户的操作与体验的APP。将布局中的选项按钮赋予不同的服务任务,将其与通信模块通过接口相连从而进行数据的传输与判断。添加其他模块功能按钮,如报警模块中的暂停蜂鸣警报。
4.2.2 APP程序设计
在主界面中,设计者可通过主界面整体设计的标签<RelativeLayout/>来实现一个规范、模块化界面,<RelativeLayout/>标签在UI的结构优化中有至关重要的作用,它可以删减多余的层级,优化UI。若要实现相对关系的布局,則可使用<RelativeLayout/>,其目的是通过删减多余或者额外的层级,进而优化整个Android系统下布局Layout的结构。在RelativeLayout下包含了其他UI组建,代表了视图切换组件,因此可以将多个图层View层叠加在一起,便于用户通过滑动来选择相应的功能。
4.2.3 报警模块设计
报警模块主要用于提示用户,同时客户利用手机端APP也可以呼叫蓝牙防丢器。当蓝牙防丢器超过安全距离,手机APP响铃警报。Java中的铃声通过RingtoneManager管理,RingtoneManager管理来电铃声、提示音、闹钟铃声等,可根据实际应用需求通过定义不同的函数接口来实现不同的功能。
[参考文献]
[1]刑子扬.基于手机APP的无线自动奶茶机[J].科学技术创新,2019(2):25.
[2]何生毫,周川湖,刘宇昊,等.基于STM32的无线定位追踪系统[J].计量与测试技术,2018(30):15-78.
[3]何诚刚.安卓移动设备外部通信接口板的设计[J].电子设计工程,2017(1):114-118.
转载注明来源:https://www.xzbu.com/8/view-15177248.htm