摘 要:本文设计了一种基于STM32单片机的智能手环,具有健康监测、运动追踪和通信等功能。首先,利用心率传感器、温度传感器和加速度传感器对用户心率、体温和步数等数据进行实时监测,利用OLED电子显示屏模块对健康指数进行记录。其次,基于蓝牙模块,手环可以与用户手机进行数据传输和通信,具有实时通知提醒功能。最后,手环还添加了蜂鸣器模块,当健康指数超过或低于预设值时,蜂鸣器会被触发报警并提醒用户。本设计能够解决传统手环功能单一、设计复杂等问题,同时为智能技术的发展提供新的思路。
关键词:STM32单片机;心率检测;温度检测;计步器;智能手环
中图分类号:TP 216 " " " " " " " 文献标志码:A
随着生活水平提高和科学技术发展,人们开始关注自身的健康状况。智能穿戴设备随之也受到越来越多的青睐。作为一种便携式、佩戴舒适的智能设备,智能手环受到了广泛欢迎。本文设计了一款基于STM32单片机的智能手环,综合运用单片机、传感器等技术对用户健康数据进行实时监测和记录,同时支持与电子设备的数据传输和通信功能[1]。该设计包括STM32单片机、心率传感器、温度传感器、计步器、蓝牙模块和蜂鸣器模块等,前4个模块可以对人体心率、温度和步数等数据进行采集。蓝牙模块的作用是将单片机与电子设备进行无线连接,便于实时接收和调节数据,进而分析这些数据,进一步了解用户的健康状况,并将数据传送至OLED显示屏上,方便人们随时查看。蜂鸣器模块具有报警和提醒作用,当检测到健康指数超出或低于预设值时,蜂鸣器会立刻报警并提醒用户。综上所述,该智能手环符合社会需求,具有良好的市场价值和广阔的发展前景。
1 智能手环系统总体结构和功能介绍
基于STM32单片机的智能手环系统总体结构主要包括软件和硬件2个部分。软件部分是将编写好的程序写入单片机的存储器中,。指令逐条进入CPU,并在CPU内执行,执行结果由I/O接口输出。硬件部分包括STM32单片机与温度传感器、心率传感器以及时钟传感器等设备,根据原理图和设计规范进行组装与焊接,以实现预期功能[2],对人体的心率、温度和步数进行检测。除此之外,整个电路系统还包括蓝牙、按键和蜂鸣器等模块,利用蓝牙将检测的数据传输至手机App,按键电路的作用是调节转换各个模块,蜂鸣器的作用是提醒用户健康指数出现异常。
1.1 系统总体结构
该系统由9个主要部分构成,包括温度检测模块、心率检测模块、时钟模块、蓝牙模块、计步模块、显示模块、按键模块、蜂鸣器以及STM32控制芯片。这些模块协同工作,共同实现系统的各项功能[2]。STM32控制芯片是本设计的核心,可控制其他模块的运行。各个模块的程序代码缓存在存储器中,单片机里的CPU按照指令执行程序。执行结果为MAX30102心率传感器检测心率、DS18B20温度传感器采集人体温以及ADXL345计步器统计运动步数。系统整体结构如图1所示[3]。心率检测、温度检测、时钟显示、按键和计步器模块均是将采集的数据传送至单片机,进一步进行数据处理,因此这些模块的箭头都是指向STM32单片机的。液晶显示、蓝牙和蜂鸣器是将单片机数据处理结果发送到这些模块,液晶显示各个传感器测得的数据,蓝牙将数据传送到用户手机,蜂鸣器具有报警功能。
1.2 功能介绍
该手环以STM32单片机作为核心控制器,其接口电路如图2所示。单片机STM32F103C8为系统的核心部分,在图2中记为U1。引脚配置一般包括数字输入输出、晶振输入/输出、通信接口、时钟和复位等。通过引脚与其他模块进行连接,运行后可以实现各个模块的功能。心率检测模块和温度检测模块的作用分别为采集人体的心率和体温数据。同时,蓝牙模块数据主要是通过无线通信传输到手机;计步器通过记录步数来反映运动量。检测的心率、温度、步数、时间的数值后显示在液晶屏上,方便使用者随时查看身体各项健康指数。这个手环还具有报警功能,如果心率、体温和步数超过预设阈值,那么声光报警器会发出响声,同时红灯被点亮。除此之外,手环上的按键系统可用于切换功能、调整设置等操作。在按键操作过程中手环上可以显示用户的健康数据、运动数据和通知等。如果用户的某一项健康指数偏高或偏低,警报器就会立马发出报警提醒,该功能能够为用户提供安全保障,将风险降到最低。
2 智能手环硬件设计
基于STM32单片机智能手环的硬件设计部分主要包括MAX30102心率传感器、DS18B20温度传感器、ADXL345计步器模块、DS1302时钟模块、蜂鸣器模块和蓝牙模块等[2]。该设计使用的单片机型号为STM32-F103C8T6,这是一款基于32位ARM Cortex-M3内核的微控制器,由意法半导体(ST Micro electronics)生产[4]。该微控制器具有性能高、功耗低、体积小和集成度高等优点,广泛应用于家电、汽车、医疗、通信和航空等多个领域,在物联网和智能家居等技术中具有重要作用。STM32单片机的基本结构主要包括负责执行指令和处理数据的中央处理器、用于连接和控制外部设备的I/O端口、产生定时信号和控制时间序列的定时器和计数器、与其他设备进行通信的串行通信接口、管理各种中断事件的中断控制器、驱动各个模块运行的系统时钟以及控制工作电压、电流并保证单片机稳定运行的电源管理单元。这些部分协同合作,使单片机能够实现各种复杂的功能,使其广泛应用于各种嵌入式系统。
2.1 心率检测模块
心率检测采用MAX30102传感器。MAX30102是一个集成的心率监测传感器模块,可在手环上进行心率采集、检测[5]。大窗口的左边小窗口里有3个LED灯,它们会发出红光和红外光等;右边的小窗口相当于一个光源反射接收器。当检测心率时,须将手指放在窗口上,此时感应光源照射到手指上。随着心脏跳动,血液也会像脉冲一样流过,照射到手指上的红光会被红色血液吸收一部分,其他部分被反射到接收器上。采集反射回来的信号,可以得到反射回来的光的强度。发射光源类似冲激信号,反射回来的光同样如此。由反射光得到的冲激信号的频率其实就是心脏跳动的频率,由此可检测用户心率。
2.2 温度检测模块
本设计利用DS18B20数字温度传感器进行温度测量。该传感器内部集成了1个温度传感器和1个模数转换器(ADC)[6]。温度传感器的核心器件是温度敏感电阻器,随着温度变化,其电阻值也会发生相应变化。模数转换器的作用是将温度传感器采集的温度模拟信号转换为数字信号,将其传输到STM32单片机里,进行进一步的数据分析,得到精确的温度值。因此传感器测得的温度值精度和分辨率更高,可以提供0.5 ℃的温度精度。DS18B20通过数据线供电,只需要接2个引脚即可完成数据传输和供电。该传感器有一个金属探头,在测温过程中,温度传导更快、灵敏度更高。
2.3 计步器模块
计步功能由ADXL345加速度传感器实现。ADXL345是一种性价比较高的三轴加速度传感器,其具有体积小、功耗低以及测量范围广等特点,广泛应用于制作便携计步器领域[7]。它的主要作用是采集数据,并将采集的模拟信号转换为数字信号,将加速度的变化值输送到单片机进行数据处理,相当于整个系统的信号产生和转换模块[8]。计步器的原理是通过检测人体行走时脚步的振动来判断步数。加速度传感器能够检测人体行走过程中的脚步的振动,并将这些振动转换为电信号。分析加速度信号可以评估人体的行走状态。利用算法对三轴加速度传感器的角度进行计算,再利用计算的角度推算用户的步数,从而实现计步的功能[8]。计步器电路如图3所示,其中ADXL345为加速度传感器,记为U。该计步器可以通过SPI(3线或4线)或IC2数字接口访问,非常适用于移动设备。
2.4 时钟模块
DS1302是一款高性能、低功耗的实时时钟芯片,它只需要较小的电流就能启动时钟传感器,使用简单串口就可以将其与STM32单片机进行通信连接,并显示年月日、时分秒和星期。时钟模块可以使用12 h或24 h计时,本设计采用的是24 h计时[9]。时钟模块电路原理如图4所示,其中实时时钟串行计时芯片DS1302为原理图的第三部分,记为U3。该设备利用同步串行通信与单片机进行交互,具有RST(复位)、I/O(输入输出)和SCLK(串行时钟)接口。在断电情况下,时钟电路会生成一个电子信号,利用二极管的单向导通特性,使时钟继续运作。串行数据传输不仅能为掉电保护电源提供可编程的充电功能,还允许随时关闭充电功能[10]。当SCLK为低电平时进行数据操作,相邻操作间有1个上升沿和1个下降沿,设定工作最低电压为3 V,最高电压为5 V,运行程序可得到时钟模块模拟分析仿真图(如图5所示),SCLK的上升沿触发数据传输的开始,下降沿是数据有效的结束,只有在SCLK为低电平情况下,数据才会被锁存,以保证数据传输的可靠性。
2.5 蜂鸣器模块
蜂鸣器电路原理如图6所示。蜂鸣器电路由电阻、三极管和蜂鸣器3个部分组成,由单片机的I/O端口控制蜂鸣器。由于启动蜂鸣器需要较大电流,不能直接连接单片机,因此要加1个三极管。三极管具有放大电流(放大200倍)的作用,加1 kΩ电阻是为了进行限流。将三极管整体作为蜂鸣器的开关,运行后的蜂鸣器工作模拟分析仿真如图7所示。在三极管基极端电阻前输入一个脉冲波,设定最低工作电压为3 V,最高工作电压为5 V,脉冲宽度为167 ms,输出端放置1个探针。当单片机的输出口电平为高电平时,电流会通过蜂鸣器中的线圈产生磁场,磁场会吸引蜂鸣器中的振动片向电磁铁靠近,并与之接触。由于振动片和电磁铁间的接触是周期性的,因此振动片会产生周期性振动,从而引起蜂鸣器壳体内气体的周期性振动,最终发出声波。
2.6 蓝牙模块
采用HC-05主从一体的蓝牙模块进行单片机与手机App间的通信传输[10]。HC-05模块可以与PDA、手机以及电脑等具有蓝牙功能的设备进行配对。在手机上下载1个智能手环App,打开手机的蓝牙功能进行配对。一旦连接成功,就能够绕过内部蓝牙通信协议,将HC-05蓝牙模块直接用作串口,手机将能够控制电路板进行功能切换。各个模块采集的数据经CPU处理并得到准确数值后,通过蓝牙模块传输到用户的手机,方便用户实时查看。本文设置人的正常心率范围为60次/min~100次/min,温度为15 ℃~37.3 ℃。
3 智能手环软件设计
本文智能手环的软件设计主要是编写各个模块的程序代码,编译运行成功后将程序烧录到单片机里。将这些程序存放于存储器中等待CPU执行。所有程序运行完成后由I/O口输出,输出数据将显示在OLED电子显示屏上。
主程序模块的运行过程如下所示。系统接通电源后需要配置各个传感器的引脚,然后初始化集成电路总线(Inter-Integrated Circuit,IIC),由OLED进行液晶显示,利用ADXL345进行数据采集。采集完成后蓝牙串口会初始化,等待发送数据。DS18B20进行温度采集,心率传感器获取当前心率值,时钟显示当前时间。再将数据通过蓝牙发送到手机端,并控制OLED显示当前采集的数据。进而进入按键扫描,判断按键是否按下,如果按下,那么处理按键扫描函数。使用Keilu Vision 5软件编写整个系统程序,并进行系统调试,检验所编写的程序是否能够顺利运行。最后检查各个功能的实现,采用模块化编程的方法对心率检测模块、温度检测模块以及计步器等各模块分别进行程序编写。在编写程序过程中建立工程文件,并命名为project,进而开始编写程序、编译并运行。
4 结语
本文基于市场需求分析和STM32单片机的特性,设计了一款基于STM32单片机且功能丰富、稳定可靠的智能手环。设计重点关注主要功能的实现,优化用户界面设计、数据处理和算法,以降低系统的复杂性。并通过试验验证了该智能手环在步数统计、心率监测和温度监测等方面的可行性和准确性。利用温度和心率传感器进行数据采集和分析,可以得到用户健康指标,进一步提高用户的生活质量。利用手机与手环的蓝牙通信功能,用户可以实时访问手环的数据。该智能手环在设计过程中充分发挥了STM32单片机的资源和特性,优化了任务调度、电源管理以及低功耗设计,使系统能够对温度、步数以及测心率等功能进行高速转换,具有效能高、功耗低的优点。该设计还具有良好的用户交互性和信息展示性,符合用户对智能手环的期望。
参考文献
[1]付静飞.健康监测与服务系统研究与开发[D].西安:西安理工大学,2018.
[2]李鸣佩.智能手环设计和研究[J].科学技术创新,2021(28):194-196.
[3]曾贵苓.基于STM32单片机的智能手环设计[J].西安文理学院学报,2023,26(3):72-76.
[4]惠鹏飞.基于STM32的蓝牙无线多功能智能手环[J].高师理科学刊,2023,43(11):27-31,38.
[5]牛佳伟.基于STM32的电磁加热温度控制系统设计[J].哈尔滨职业技术学院学报,2024(2):113-116.
[6]黄文静.基于STM32的老人健康手环系统设计[J].山西电子技术,2023(6):5-7,60.
[7]秦瑀阳.老年人跌倒检测报警装置的研究与设计[D].大连:大连海事大学,2013.
[8]赵华峰.基于单片机的三轴加速度计步器设计与实现[J].信息与电脑,2017(20):115-116.
[9]刘卫东,曾绍杰,李超,等.浅析基于单片机的数字时钟与温度显示系统的设计[J].山东工业技术,2018(14):163.
[10]张继峰.实时时钟芯片DS1302在教学中的研究与应用[J].黑龙江科技信息,2017(5):12.
通信作者:梁成功(1980—),男,山西忻州市人,副教授,研究方向为凝聚态物理、电子科学与技术。
电子信箱:lcgsyssx@163.com。