基于STM32单片机的手机蓝牙无源锁设计
2021-09-27安徽理工大学电气与信息工程学院
安徽理工大学电气与信息工程学院 刘 旻
针对电网中现有的普通机械锁,存在如钥匙容易丢失、无法确定开锁人员和无法确定开锁时间、缺乏安全性等问题,设计了利用无线蓝牙模块和无线充电模块的手机蓝牙无源锁。具体功能有:增加了远程遥控开关锁、钥匙利用线圈的电磁感应来给锁具供电、显示锁具状态、保存锁具操作记录等功能。
手机蓝牙无源锁主要由智能挂锁、无线供电钥匙、管理平台、专用手机APP构成。该锁是在传统机械锁的基础上,增加了远程开关锁具、无线充电、APP中保存操作记录等功能。
1 手机蓝牙无源锁的总体设计
系统硬件部分主要由STM32单片机作为主控芯片、无线发送和接收的充电电源模块实现无线充电、蓝牙模块进行数据接收和传输、霍尔传感器模块感应锁具状态、电源模块提供稳定的3.3V直流电压、电机驱动模块带动电机转动,通过这些模块实现无线充电、进行移动终端和锁具之间的数据传输等功能。系统总体框图如图1所示。
图1 系统总体框图
2 硬件模块设计
2.1 霍尔传感器模块
通过霍尔传感器感应磁铁位置来判断锁具状态,当传感器MT1322AT未感应到磁铁时,传感器输出低电平,此时单片机引脚会感应出高电平;当传感器MT1322AT感应到磁铁时,传感器输出高电平,此时单片机引脚会感应出低电平。根据GPIO口读出的高低电平,来判断出锁具此时处于开锁还是关锁状态,从而驱动电机的正反转动。传感器模块如图2所示。
图2 传感器模块
2.2 电机驱动模块
电机驱动芯片9、10引脚的输入信号来自单片机,单片机通过给9、10引脚不同的信号来驱动芯片输出不同的电压。控制规律:输入信号IN1、IN2电位均为低电位时,电机处于闲置状态;IN1、IN2均为高电平时,电机停止转动;IN1为低电平,IN2为高电平时,电机反转;IN1为高电平,IN2为低电平时,电机正转。电机驱动模块如图3所示。
图3 电机驱动模块
2.3 蓝牙模块
RF-BM-4044B4是一种基于TI-CC2640的蓝牙低能耗数据模块。手机App通过蓝牙模块接收并处理数据包,处理结束后蓝牙模块再把手机发送的命令传送给锁具单片机,蓝牙模块作为数据传输中转站实现数据上传。可以通过控制LED灯显示连接状态,蓝牙连接成功,状态指示灯常亮;蓝牙断开连接,状态指示灯熄灭。蓝牙模块如图4所示。
图4 蓝牙模块
2.4 无线电源控制器和接收器的选型
BQ500212A和BQ51013BRHLR分别作为钥匙发送端和锁具接收端芯片,根据电磁感应原理传递能量实现无线充电。成本低、效率高、抗干扰能力强、充电稳定是选择它的重要原因。
3 软件设计
3.1 蓝牙通讯协议
(1)8位ID码:即锁的ID编码;
(2)1位命令:“W”——写命令,“R”——读命令,“O”——开锁命令,“C”——关锁命令;
(3)1位锁状态:“0”——错误状态,“1”——开状态,“2”——关状态,“3”——错误状态;
(4)2位随机码:伪随机数;
(5)4位开关次数:当前锁已经开关动作的总次数。数据包结构如图5所示。
图5 数据包结构
APP必须从查询包中获取当前锁的ID,以及4位开关次数。APP在发送命令为“O”,“C”的包时,必须ID和开关次数正确。而发送其他包时则不必考虑,只要总长度为16位即可。
3.2 系统流程图
此次设计中采用的是STM32F030C8T6作为主控芯片,使用的语言为C语言,基于Keil软件进行编程。
钥匙靠近小锁进行无线充电,系统进行初始化,霍尔传感器将采集得到的实时数据传送到锁具STM32单片机内,单片机根据所得到的数据按照我们所规定的协议打包成加密数据包,数据包通过蓝牙模块传送给移动终端,App通过对数据包的解密获得锁具状态,用户登录App点击图标进行开关锁操作,手机将这个操作命令同样以数据包形式通过蓝牙模块传送给小锁单片机,单片机根据协议对数据包进行解密然后下达开关锁命令,电机驱动模块收到命令做出相应的动作,实现锁具的开关操作。系统流程图如图6所示。
图6 系统流程图
结语:本文设计的基于STM32单片机手机蓝牙无源锁,实现了锁具状态的数据实时上传,远程操控开关锁,安全性和方便性得到了很大的提升,满足电网实际应用需求,有较好的发展前景。