基于STM32的智能手环设计与实现

2024-05-19 14:11廖菲钰文欢陈靖萱康意萌贾富川刘旭
电脑知识与技术 2024年9期
关键词:STM32单片机温度传感器

廖菲钰 文欢 陈靖萱 康意萌 贾富川 刘旭

摘要:为了更好地监测人体健康状况,设计了一款基于STM32核心控制模块的智能手环。该手环主要由人体健康数据监测模块、液晶显示模块和无线通讯模块组成。系统利用人体健康数据监测模块采集人体心率、血氧、体温和运动状况,对采集到的健康数据进行分析处理后在液晶显示模块输出显示,并将数据信息通过无线通讯模块发送至手机端。经过测试,该智能手环可以有效用于监测用户的健康状况。

关键词:温度传感器;STM32单片机;液晶显示屏

中图分类号:TP273    文献标识码:A

文章编号:1009-3044(2024)09-0099-05

开放科学(资源服务)标识码(OSID)

0 引言

随着科技的不断发展,人们对于健康和生活质量的关注程度越来越高。在这个背景下,智能手环作为一种可以实时监测人体健康状况的设备,受到了越来越多人的青睐。智能手环不仅可以实时监测用户的心率、血氧、体温、睡眠质量等生理指标,还可以通过连接手机App为用户提供运动计步等功能。因此,设计一款基于STM32的智能手环具有很高的实用价值和市场前景。

本设计旨在实现一款基于STM32的智能手环,通过对各种传感器的数据采集和处理,实现对用户健康状况的实时监测。本设计将采用高性能的STM32微控制器作为主控芯片,结合各种传感器和外围电路,实现对用户健康状况的全面监测。该手环由单片机电路、心率血氧检测模块、计步模块、液晶显示模块和温度传感器模块组成。心率血氧是指一般人心脏在安静状态下每分钟跳动的次数和当前人体血红蛋白氧含量是否正常。这是检验人体健康标准的一大指标,也是本次设计较为突出的一大重点。

1 设计方案

本设计采用STM32单片机作为主控模块,C语言作为主要编程语言。智能手环的传感器模块主要是心率血氧采集模块、计步模块和温度采集模块。这些模块包括加速度计、陀螺仪、心率传感器、血氧传感器等,用于采集用户的运动数据,实时监测用户身体机能,将检测到的数据传至单片机进行数据处理。单片机根据输入的数据对OLED液晶显示屏和蜂鸣器进行智能控制,实现数据显示和报警功能。如果用户体温超过设定阈值或者心率血氧不在设定范围内,则通过无线通讯模块将数据上传至手机App并进行报警提醒。系统框图,如图1所示。

2 硬件设计

智能手环包括心率血氧传感器模块、计步模塊、温度检测模块、OLED显示屏模块及Wi-Fi无线通讯模块,其硬件电路设计如图2所示。

2.1 心率血氧传感器模块

本次设计的心率血氧模块选用MAX30102红外模块。MAX30102是一种集成式脉搏氧饱和度血氧传感器模块,其工作原理是通过红外光和绿色光对生物组织进行血氧饱和度检测[1]。在本次设计中主要用于采集心率血氧信号。此模块对心率信号采集较为稳定,其抗干扰能力较强,测量的数值比较准确,波形稳定。心率血氧模块集成了一个红光LED和一个红外光LED、光电检测器、光器件,以及带环境光抑制的低噪声电子电路[2]。MAX30102采用一个1.8V电源和一个独立的5.0V用于内部LED的电源,应用于可穿戴设备进行心率和血氧采集检测,佩戴于手腕处[3]。标准的2C兼容的通信接口可以将采集到的数值传输给Arduino、KL25Z等单片机进行心率和血氧计算[4]。此外,该芯片还可通过软件关闭模块,待机电流接近为零,实现电源始终维持供电状态[5-6]。心率血氧传感器模块如图3所示。

图3  心率血氧模块电路图

2.2 计步模块

本次设计的计步模块选用ADXL345。ADXL345是一款小而薄的超低功耗三轴加速度传感器元件,具有13bit的解析度。经过容压变换器、增益放大、滤波器和电压信号输出得到步数。ADXL345与移动设备的匹配度非常高,该倾角传感器模块电路利用任一轴线上的加速度与佩戴者设定数值进行比较来侦测是否有步数移动[8]。计步模块如图4所示。

2.3 DS18B20温度检测模块

DS18B20主要由四部分组成:64位光刻ROM数据存储器,温度传感器,非易失性电可擦写温度报警触发器TH和TL,非易失性电可擦写设置寄存器。如果温度检测模块测量的温度值高于温度报警触发器TH或低于TL中的值,则DS18B20内部的报警标志位就被重置。DS18B20的测温范围为-55~+125℃,温度转换以16 位二进制方式输出,位数可通过设置寄存器进行更改。DS18B20温度检测模块如图5所示。

2.4 OLED显示屏电路模块

OLED使用普通的矩阵交叉屏,OLED位于交叉排列的阳极和阴极中间,通过对阳极和阴极组合的选通,可以控制每一个OLED的点亮和熄灭[7]。

液晶显示模块中P5是一个4孔的排针,专门供OLED液晶显示屏使用;显示屏的SCL引脚连接的是单片机的B6引脚,通过SCL引脚传输串行时钟数据;SDL引脚连接的是单片机的B7引脚,通过SDL引脚传输串行数据。OLED显示屏电路模块如图6所示。

2.5 报警模块电路

本次设计中,当检测到温度或心率血氧高于报警上限时,蜂鸣器报警。蜂鸣器由四部分组成,电阻、NPN三极管、蜂鸣器、LED灯。其中电阻为限流电阻,起到保护作用[9-10]。由于单片机电路非常小,无法提供蜂鸣器所需的电流,经过三极管将驱动电流放大至200倍,驱动蜂鸣器报警。报警模块电路如图7所示。

2.6 Wi-Fi无线通信设计

本次设计无线通信方面采用的是Wi-Fi模块,通过此模块可以把当前的数据发送到手机App上进行显示。无线数据传输选用ESP8266,通过此模块进行串口通信,在手机App就可以完成数据的传输和显示,传输数据稳定[11-12]。

无线通信部分采用ESP8266无线串口作为数据发送模块。在本次设计中的无线通信,通过Wi-Fi模块,单片机将温度和心率血氧值发送至手机端,并显示在App上。Wi-Fi无线通信设计如图8所示。

3 软件设计

完整的控制系统由硬件系统和软件系统组成,本设计利用STM32为控制中心,采用STM32F103C8T6芯片,利用Keil uVision5进行编程。设计主要分为主程序模块、液晶显示模块、按键模块、温度采集模块、报警模块、Wi-Fi模块6个模块。软件设计流程图如图9所示。

主程序模块:系统上电后,配置各个传感器的引脚,初始化IIC分别让OLED和ADXL345进行液晶显示和数据采集等操作,采集完成后Wi-Fi串口初始化等待发送数据,DS18B20进行温度采集操作,随后心率传感器获取当前心率值,最后将采集到的数据通过无线通讯模块发送到手机App端,同时控制OLED显示当前采集到的数据,进入按键扫描判断按键是否按下,如果检测到按键按下则处理按键扫描函数。

3.1 液晶显示模块程序设计

液晶显示屏正常工作需要写入命令控制字,随后写入需要显示的数据。如果液晶正在工作,则必须等待,直到液晶发出工作完成的信号时,才能够写入控制字和数据。液晶显示模块程序流程图如图10所示。

3.2 按键程序流程图

该智能手环共包含5个按键,按键功能分别是切换、清零、设置、加、减。切换的页面分别为设置心率上下限,设置血氧下限,设置温度上下限,最后回到温度、心率血氧、步数等总的中文显示界面。按键程序流程图如图11所示。

3.3 DS18B20温度采集程序流程圖

DS18B20中读取温度的过程如下:获取DS18B20中的温度值,该温度值为BCD码形式,随后转换为十进制形式输出温度值。此时输出的温度值是实际温度的一百倍。随后需要进行输出温度与实际温度的转换。首先需要初始化函数,其次读取温度传感器的温度,最后计算实际温度值。DS18B20温度采集程序流程图如图12所示。

3.4 蜂鸣器报警程序流程图

本次设计的报警模块采用了蜂鸣器声光报警。将蜂鸣器正极性的一端连接到三极管上,并增加一个1K的限流电阻防止三极管直接被导通,通过单片机IO口输出高电平。当管脚为高电平时,三极管导通,蜂鸣器的电流形成回路,发出声音,发光二极管闪烁,即实现报警。当管脚为低电平时,三极管截至,蜂鸣器不发出声音,发光二极管不闪烁,即不实现报警。蜂鸣器报警程序流程图如图13所示。

3.5 Wi-Fi程序流程图

本次设计采用的无线通信模块ESP8266,此模块需要和单片机进行串口通信,通过相应的AT指令集和利用 Wi-Fi模块的热点模式便可以实现对数据的无线传输操作。ESP8266集成了TCP/IP协议栈,可以直接连接到Wi-Fi网络,无需额外的外部芯片。电压连接3.3V,GND(地线)、TXD(发送数据)、RXD(接收数据) 便可以实现和单片机进行通信,紧接着手机端可以接受到当前Wi-Fi发送的数据信息。Wi-Fi程序流程图如图14所示。

4 实物测试

最后一步是硬件整体测试,将智能手环在室内进行各项指标测试,通过温水模拟人体温度过高的情况。智能手环整体实物图如图15所示。启动该手环LED屏显示“欢迎使用智能手环”。实物运行图如图16所示。启动后OLED屏界面分为显示温度、心率、血氧、计步4部分。该手环有五个按键,功能分别是切换、清零、设置、加、减。切换的页面分别为设置心率上下限,设置血氧下限,设置温度上下限,最后回到原始界面(温度、心率血氧、步数等总的中文显示界面)。通过按键模块的设置功能,可以分别设置温度阈值为35-37℃,心率阈值为60-100bpm,血氧下限为95%。按键功能设置如图17所示。当三项指标的任意一项不在阈值范围内时,OLED黄灯闪烁,蜂鸣器进行报警。不在阈值内的数据将在智能手环的LED显示屏上不断闪烁,同时通过无线通讯模块将数据上传至手机端,手机端弹出红色报警提示框并显示“患者体征异常”。实物测试结果如表1所示。

5 总结

本文提出了基于STM32智能手环的设计与实现方法。主要阐述了心率血氧温度检测和无线传输通信两个部分。心率血氧温度检测模块分别选用MAX30102和DS18B20进行心率血氧和温度的采集,再通过无线通讯模块上传至手机App完成显示,这是本设计的创新之处。同时该手环对传染病防控有很大帮助,可以实现在零接触的条件下管理者实时监测佩戴者的身体数据,当监测数据不在设定阈值内时触发蜂鸣器报警,使管理者能够通过手机App及时发现情况并采取对应的措施,从而大大降低了危险性。

本款运动手环有利于减轻医疗负担,提高人们健康意识,通过对实物运行结果的分析,该手环已实现设计方案所预期的功能,性能稳定、检测数据精准、应用前景广泛。

参考文献:

[1] 姚立平,刘伟章,谭仲威,等.一种基于ZigBee的无线心率血氧实时监测系统研究[J].科技创新与应用,2022,12(29):52-56.

[2] 潘祉,陈黎明,马丽华,等.基于物联网技术的 “银发守护者” 的设计与实现[J].物联网技术,2023,13(8):121-126.

[3] 黄衍标,陈华珍,黄键鹏,等.基于腕部可穿戴设备的跌倒监护系统设计与实现[J].计算机测量与控制,2019,27(1):102-106.

[4] 赵帅豪,王坚.基于蓝牙定位的老年人室内跌倒监护系统设计[J].北京测绘,2020,34(3):333-337.

[5] 于福超,李元龙.一款基于北斗导航的智能导诊轮椅[J].中国科技信息,2020(15):53-54.

[6] 刘洪延,周正权,洪博恩.一种基于SMA丝的微型药物释放系统[J].科技创新导报,2020,17(1):100-101.

[7] 任振耀.基于单片机的老年人智能手环设计[J].电工技术,2023(18):5-9,12.

[8] 黄红霞,鲁令军,肖贵贤,等.一种单片机方案的智能家居系统设计与实现[J].湖北理工学院学报,2017,33(5):8-11.

[9] 曾贵苓,叶素娣,王苹.基于STM32单片机的智能手环设计[J].西安文理学院学报(自然科学版),2023,26(3):72-76.

[10] 惠鹏飞,邹立颖,周健.基于STM32的蓝牙无线多功能智能手环设计[J].高师理科学刊,2023,43(11):27-31,38.

[11] 张斌,丁娜娜,田晴豪.基于STM32的智能手环设计[J].微处理机,2023,44 (3):62-64.

[12] 任琦,王娟娟,李晨,等.老年人对智能手环的需求调查及分析[J].智能建筑与智慧城市,2022(11):31-34.

【通联编辑:梁书】

猜你喜欢
STM32单片机温度传感器
气象用温度传感器检定结果的测量不确定度评定与应用
温度传感器DS18B20在温度计设计中的应用
一种高性能CMOS温度传感器
XTR105电流变送器在温度传感器中的应用
基于STM32芯片的移动机器人的避障研究
基于STM32的两轮自平衡遥控小车设计
基于STM32单片机的智能手环设计与实现
基于STM32单片机的数码相框显示系统设计
一种自组网分布式无线温度传感器的设计
基于STM32的中老年人跌倒监测装置研究