STM32的便携式手机蓝牙考勤机系统设计

发布者:rockstar7最新更新时间:2021-07-08 来源: 21ic关键字:STM32  便携式 手机看文章 扫描二维码
随时随地手机看文章

摘要:在研究各种考勤系统的基础上,提出了一种手机蓝牙实现考勤的方法。该系统采用STM32F103RBT6微处理器作为核心,利用蓝牙模块搜索手机蓝牙设备与本地数据库进行匹配,通过语音播报和液晶显示两种方式给出考勤结果。该设计可以改变传统的被动式考勤方式,且成本低、操作简便。


引言

目前,大部分考勤系统还是磁卡考勤系统,这类系统不仅签到速度慢,而且终端设备和磁卡也造成一定成本和浪费;指纹考勤、人脸识别考勤、视网膜考勤等新一代考勤技术虽然大大地提高了考勤效率和准确率,但是这类考勤机的费用较高、操作比较麻烦。以上几种都是采用被动式的考勤机制,科技的发展和生活节奏的加快为被动式考勤方式带来了新的挑战,手机蓝牙考勤机就是针对以上考勤机的缺点而设计的,使用手机蓝牙考勤机可以实现人员经过即可轻松签到。


1 考勤机硬件设计

1.1 系统整体硬件设计

如图1所示,考勤机系统主要由以下5个部分组成:基于Cortex-M3核的STM32F103RBT6微处理器作为核心控制器件,主要负责控制系统各部分的工作和交换数据;蓝牙模块用于搜索手机蓝牙设备,并将查找到的手机蓝牙设备地址通过异步串行通信发送给微处理器STM32F103RBT 6;SYN6288语音芯片通过UART接口来实现数据传输,实现“应到”与“实到”的人数语音播报;NOKIA5110液晶显示屏显示考勤结果,微处理器通过SPI1接口将考勤结果发送给显示屏进行显示;SD卡/U盘保存用户信息,微处理器通过SPI2接口将数据发送到SD卡/U盘,然后通过读取SD卡/U盘来获得签到者的信息。本系统出于便携的目的,采用了低功耗设计,系统只需外接两节普通1.5 V干电池即可连续工作数月以上。各部分均采用独立的硬件接口,互不干扰。

1.2 蓝牙模块及外围电路设计

系统所使用的蓝牙模块采用广州汇承信息科技有限公司生产的HC-05芯片。HC-05是民用级,支持当前绝大多数手机蓝牙设备,并可向上兼容其他更高协议。该模块具有集成度高、稳定性好、功耗低、外围电路少等优点,完全满足本系统的需求,图2是蓝牙模块的外围电路。其中STATUS_OUT是输出状态指示灯引脚,考勤时D1会闪烁,说明蓝牙模块正常工作;MOD引脚是蓝牙AT模式选择引脚;RXD和TXD是串口通信接口,实现串口通信功能。

a.JPG


1.3 STM32微处理器

STM32系列微处理器基于ARM Cortex—M3内核,是专为要求性能高、成本低、功耗低的嵌入式应用而设计的。本设计采用的是STM32F103 RBT6芯片,属于“增强型”系列,时钟频率最高可达72 MHz,内置32 KB RAM和128 KB高速Flash存储器。128位宽度的存储器接口和独特的加速结构使得32位代码能够在最大时钟速率下运行。在本系统中,使用了STM32F103RBRT6的UART0、UART1、SPI1、SPI2、RTC等功能,充分发挥了STM32F103RBT6的性能优势。


1.4 NOKIA5110液晶屏

NOKIA5110液晶屏具有以下特点:

①84×48的点阵LCD,可以显示4行汉字;

②采用SPI接口与主处理器进行通信,减少了接口信号线数量(包括电源和地在内的信号线仅有9条),支持多种串行通信协议(如AVR单片机的SPI、MCS-51的串口调试模式等),传输速率高达4 Mbps,可全速写入显示数据,无等待时间;

③可通过导电胶连接模块与印制版,不用连接电缆,用模块上的金属钩可将模块固定到印制板上,因而非常便于安装和更新;

④LCD控制器/驱动器芯片已绑定到LCD晶片上,模块的体积很小;

⑤采用低电压供电,正常显示时的工作电流在200μA以下,且具有掉电模式。


图3是考勤结果在NOKIA5110液晶上的显示效果图。该液晶模块操作简单,实用性强。

b.JPG

1.5 语音模块

本系统采用北京宇音天下公司出品的中高端TTS(文本到语音)芯片SYN6288。该芯片支持GB2312、GBK、BIG5及UNICODE内码格式的文本。语音合成效果清晰、自然、准确。芯片较强的中文姓氏处理能力使得因签到人员姓名的不确定性所导致误报的可能性大大降低。利用其内置的声音提示音,使得语音播报效果更加自然。


2 系统软件设计

2.1 系统软件总体流程

图4是系统总体流程图,从图中可以看出系统执行的一个总体过程。系统上电复位后,读取蓝牙模块的配置文件,通过菜单选择相应的考勤模式,搜索周边手机蓝牙设备地址,并与本地数据库蓝牙地址进行匹配。该考勤机系统可以实现手动考勤和定时考勤两种考勤模式;信息采集可以实现单独采集和批量采集两种方式;同时可以通过SD卡/U盘来保存数据。

c.JPG



下面是系统主程序,主要是实现系统菜单的选择,然后进入每个菜单模块进行操作,从而完成不同的考勤模式选择、系统配置、时钟设置和移动设备的选择等操作。

g.JPG


2.2 获取SD卡/U盘中的考勤数据库

首先,在SD卡/U盘建立一个考勤群体的Excel数据库文档,如图5所示;然后,通过实地信息采集,获得考勤人员的蓝牙地址,保存起来,如图6所示;考勤时搜寻手机蓝牙地址,并与数据库中的蓝牙地址进行比对,就可以实现考勤功能,如图7所示。考勤人员的数据库大小可以根据需要来定义,按照上面的步骤实现考勤的功能。

d.JPG


e.JPG


2.3 微处理器与蓝牙模块通信和数据处理

STM32F103RBT6的UART接口提供了一个分数波特率发生器,保证了数据通信的低误码率。同时,它支持同步单向通信和单线半双工通信,使用多缓冲器配置的DMA方式,可以缩短考勤数据交互与处理时间。因考虑到考勤过程中微控制器与蓝牙通信模块问涉及大量的数据信息的交互,为了保证数据的可靠性,配置蓝牙模块工作在AT模式2下(通信波特率38 400)。微控制器通过发送不同的AT命令,即可控制蓝牙模块获取有关蓝牙设备的相关信息。蓝牙模块在收集到蓝牙设备的相关信息后,通过UART通信将数据信息反馈给微处理器,微处理器在接收到蓝牙模块收集到的信息后,对报文进行分析整合,完成数据的处理。


结语

蓝牙技术与考勤设备相结合,以手机替代传统磁卡等作为签到标识的考勤方式,大大提高了考勤效率,在降低成本的同时方便了企业的管理。可以通过查找Excel文件数据库来获得考勤人员的数据,同时也易于文档的管理和保存。测试结果表明,该系统具有反应速度快、通过率高等优点,可实现对传统考勤系统的升级与替换,适应不同企业的需求,有着很好的应用前景。


关键字:STM32  便携式 引用地址:STM32的便携式手机蓝牙考勤机系统设计

上一篇:STM32使用FSMC总线方式控制LCD的方法
下一篇:STM32 CAN 通讯 标示符过滤器设置

推荐阅读最新更新时间:2024-11-17 06:16

STM32开发笔记9: STM32CubeF0固件架构
单片机型号:STM32CubeF0 本文介绍STM32CubeF0固件架构。 STM32CubeF0固件架构图如下图所示。 1、Board Support Package (BSP) This layer offers a set of APIs relative to the hardware components in the hardware boards (such as LCD, Audio, microSD and MEMS drivers). It is composed of two parts: • Component This is the driver
[单片机]
<font color='red'>STM32</font>开发笔记9: STM32CubeF0固件架构
如何修改STM32的USB例程为自己所用
如果要下载程序测试包 请点击此处http://blog.ednchina.com/computer00/143918/message.aspx 在万利学习板自带的演示例程中,有几个USB的例程。如果我们想实现一个USB功能,可以拿里面的例子来改。 那么具体要改哪些地方呢?首先要改各种描述符,然后是具体的数据处理。我们拿USB摇杆鼠标范例来修改,把它改成USB键盘。该范例在目录/Manley/EKBoard/EKSTM32F/USBDemo(8M osc)/USBDemo/USBLib/demos/JoyStickMouse下,将JoyStickMouse复制一份,改名为USBKeyboard,以用来修改。 描述符在文件u
[单片机]
STM32 TFT学习笔记——刷字符
主机环境:Windows 7 SP1 开发环境:MDK5.14 目标板:ST NUCLEO-F303RE TFT型号:2.4英寸,带触摸,SD卡,240*320分辨率,26万色 驱动IC:ILI9325 ST库版本:STM32Cube_FW_F3_V1.1.0 刷完图片之后,很自然就想进行刷字符实验,该刷字符实验其实跟刷12864液晶屏字符是一样的,因为都是点阵型液晶屏,需要我们把字符转换成点阵数据,这里就需要借助取字模工具了,这个网上有很多,这里使用的是PCtoLCD2002 这里需要注意的是取模方式,需要和你的ILI9325驱动相配合,这里我使用逐行式扫描,高位在前,阴码格式。如下: 刷字符和刷图片其实是一样的,唯
[单片机]
STM32的ADC详解和代码设计
01ADC简介 ADC是Analog-to-DigitalConverter的缩写。指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。 从STM32F207的数据手册中下图看到,STM32F207VC有3个精度为12bit的ADC控制器,有16个外部通道,而144脚的STM32F207Zx和176脚的STM32F207Ix因为带PF脚,所以多8个通道,为24个外部通道。各通道的A/D转换可以单次、连续、扫描或间断执行,ADC转换的结果可以左对齐或右对齐储存在16位数据寄存器中。 02STM32的ADC外设 上面说到,ST
[单片机]
<font color='red'>STM32</font>的ADC详解和代码设计
STM32 SysTick定时器和delay延迟函数
一,什么是Systick定时器   Systick定时器也叫滴答定时器,是内核级别的24位倒计数简单定时器,常用做延迟和系统心跳时钟(如:UCOS)   优点:节省MCU资源,不需要浪费一个定时器,只要不清除Systick使能位,就不会停止,即使在睡眠模式下也能工作   捆绑在NVIC中断优先级管理,能产生Systick异常(中断),可设置中断优先级 二,Systick相关寄存器   CTRL: Systick控制和状态寄存器   LOAD: Systick重装载寄存器   VAL: Systick当前值寄存器   CALIB: Systick校准值寄存器   定时器工作方式:   每经过一个Systick时钟周期,VAL寄存
[单片机]
<font color='red'>STM32</font> SysTick定时器和delay延迟函数
ESP32、GD32、STM32MCU的区别
01 前言 STM32:意法半导体在 2007 年 6 月 11 日发布的产品,32位单片机。 GD32:兆易创新 2013 年发布的产品,在芯片开发、配置、命名上基本模仿 STM32,甚至 GPIO 和 STM32 都是 pin to pin 的,封装不改焊上去直接用。有时候 STM32 的源码不修改,重新编译烧写到 GD32 上就可以跑。当然也有很多不同,比如串口驱动、USB 、库文件等。 ESP32:乐鑫公司 2017 年开发的产品,和 STM32、GD32 不同,ESP32 主要面向物联网领域,支持功能很多,但引出 GPIO pin 脚很少,因此大多数 GPIO 都有很多复用功能。出厂就集成蓝牙、WiFi 等物联网必备功
[单片机]
ESP32、GD32、STM32MCU的区别
便携式设备动态电源管理的Linux技术
  任何拥有笔记本电脑的人都会察觉,当依靠电池供电时,其便携设备的行为与使用交流主电源供电时不同——显示屏变暗、处理器的时钟变慢、系统只要有可能就会转入待机或睡眠状态。PDA用户也发现,在停止使用一段时间后显示屏将变暗,设备甚至进入睡眠状态。蜂窝电话用户也已经注意到,背景光和按键照明在完成拨号之后会熄灭。事实上,这些可见行为的背后是软硬件技术和节电机制在发挥作用。   全速运行、待机和睡眠等宏观行为利用CPU的固有能力通过降低工作电压或时钟频率来节省功耗。除了全面地改变系统状态外,大多数设备用户察觉不到的是,实际的电源管理也能够逐渐地改变系统状态,这种情况在一秒之内可以发生数百次。   任何动态电源管理策略的基础都是调整便携式设
[嵌入式]
STM32 SPI 收发数据 ---规则 + 问题解析
规则: 1) 高速同步串行口。3~4线接口(CS ,CLK ,MOSI,MISO),收发独立、可同步进行。 2)SPI分为主从模式,主模式提供时钟和片选选择信号. 3) 模式控制:CPOL用来控制时钟信号(clk)在空闲时候的状态;CPHA用来控制采样时刻时CLK的边缘动作。 CPOL CPHA 模式: 0 0 CLK空闲时为低电平,CLK上升沿采样数据。 0 1 CLK空闲为低电平,CLK下降沿采样数据。 1 0 CLK空闲时为高电平,CLK上升沿采样数据。 1 1 CLK空闲时为高电平,CLK下降沿采样数据。 1)SPI配置(3.01库): SPI_InitStructure.SPI_Direction = SPI_D
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved