APP下载

基于STM32的蓝牙无线多功能智能手环设计

2023-12-19惠鹏飞邹立颖周健

高师理科学刊 2023年11期
关键词:手环血氧蓝牙

惠鹏飞,邹立颖,周健

基于STM32的蓝牙无线多功能智能手环设计

惠鹏飞,邹立颖,周健

(齐齐哈尔大学 通信与电子工程学院,黑龙江 齐齐哈尔 161006)

将蓝牙技术应用到智能手环,发挥其低功耗的优势,设计了蓝牙无线多功能智能手环.设备以STM32为核心处理器,包括加速度传感器、心率血氧传感器、OLED液晶显示器、电源线路、PM2.5传感器、DS1302时钟芯片和温度传感器.利用加速度传感器监测重力加速度,进而判定人体的行走速度和姿态,将监测数据转换成计步的功能.利用心率血氧饱和度传感器采集人体的心率血氧饱和度信息,数据经放大处理后发送至单片机,并将步数、心率血氧饱和度、温度、时间显示在OLED屏幕上.使用JDK和Android SDK 开发了手机APP,能够通过HC-05无线蓝牙把当前的数据发送到手机端进行显示,方便用户随时观察自身体征状况.该智能手环工作性能稳定,操作方便,数据显示准确,具有较好的实用价值.

智能手环;STM32;传感器;蓝牙;计步器;液晶显示

随着人们健康意识的提高,便携式可穿戴人体体征监测设备逐渐受到人们青睐.智能手环作为一种便携式可穿戴健康监测设备,具有检测诸如心率血氧、运动步数、时间、环境信息等功能,而且可以将这些信息显示在手环显示屏上[1],但如果有陪练人员在身边,陪练人员无法得知手环穿戴者当前的状况.目前,市场上很多智能手环并未应用蓝牙传输,低功耗优势不明显.还有些手环仅在手环上用屏幕显示数据,没有对应的手机APP.设计一款既保证穿戴者随时观察自身健康数据,也方便陪练人员随时观察运动者状态的多功能智能手环就非常契合当前需要.

基于此,本文应用物联网技术设计蓝牙无线多功能智能手环,该智能手环涵盖STM32单片机、传感器、手机APP、蓝牙、C#程序设计等多项技术,开发了智能手环的硬件电路和手机端上位机界面,并进行了功能测试.各模块电路功能正常,手机APP端可准确显示心率和血氧、步数、温度、PM2.5等信息.该智能手环对于穿戴者和陪练人员随时掌握人体生理指标和健康状况,具有重要实际意义.

1 蓝牙无线多功能智能手环的硬件设计

1.1 系统总体设计方案

蓝牙无线多功能智能手环由主控制单片机、蓝牙数据传输模块、计步电路、数据信息采集模块、时钟电路、液晶显示电路、手机端上位机等组成.系统硬件电路按照功能可分为主控制器STM32、蓝牙无线数据传输电路、按键电路、PM2.5传感器电路、DS18B20温度采集电路、心率血氧传感器电路、液晶显示电路.硬件整体构成见图1.

图1 系统硬件整体构成

手环以STM32为数据处理中心,通过DS18B20采集当前温度,PM2.51051A负责采集当前空气中PM2.5浓度,心率血氧传感器采集当前人体心率血氧含量,ADXL345进行计步,OLED液晶显示屏显示当前信息,通过HC05将数据无线传输到手机端进行显示,采用按键就可以进行修改,操作非常方便快捷.

1.2 STM32单片机最小系统电路设计

智能手环控制部分的核心为STM32单片机最小系统,这是一个完整的计算机系统,其以微芯片为核心,负责对智能手环工作过程的相关控制.包括晶振电路、定时器电路、输出设备和通信端口等[2-3].单片机最小系统电路见图2.

图2 STM32单片机最小系统电路

1.3 电源功能模块电路设计

单片机的供电通过直流5 V供电,电源模块主要分为一个三脚电源底座和一个六脚电源开关.电源开关中的2脚和5脚作为单片机的接地脚,可根据实际需要适当选择[4],即可以1脚输入,4脚输出,2脚为接地端,或者3脚输入,6脚输出,5脚为接地端.如果有12 V或其他电压的传感器,也可能通过升压模块把5 V提高至更高的电压,从而实现供电.

1.4 分系统模块电路设计

“计数规则”用于确定步伐是否是一个节奏模式的一部分.ADXL345有“搜索规则”和“确认规则”两个工作状态,假设经过四个连续有效步伐之后,发现存在某种规则(in regulation),那么计步器就会刷新和显示结果,并进入“确认规则”工作模式.工作在这种模式时,每经过一个有效步伐,步伐计数器就会更新一次.只要存在一个无效步伐,立即返回“搜索规则”模式.

“时间窗口”的作用是排除无效振动.假设最快的运动速度为每秒5步,最慢速度为每秒1步.这样,两个有效步伐的间隔在时间窗口[0.2~2.0 s]之间,时间间隔不在窗口范围内的步伐都应该被排除.

1.4.2 心率血氧传感器电路 心率血氧传感器电路部分采用生物传感器模块MAX30102,该模块用于收集和监测手环使用者的心跳频率和血氧饱和度信息.MAX30102芯片集成在一个PCB模块上,内部增加一个1.8 V和3.3 V LDO稳压电路,可对模块单独供5.0 V电源.

MAX30102的VIN引脚表示电源的输入端,一般可接为3.3 V或5 V,VIN脚的电压是I2C总线的最上拉输入输出电平.SCL引脚连接I2C总线的时钟,SDA引脚是指接收I2C总线的设备,INT引脚为中断引脚,IR LED为接地端(但一般不接地),GND 端口为接地线,IRD和RD脚通常不使用[6].

1.4.3 OLED显示屏电路设计 本系统采用4引脚的OLED12864液晶模块作为显示模块,在智能手环的设计中,为了节省单片机的引脚,OLED采用I2C总线与STM32进行通信,通信过程的时序由SCL时钟线负责控制,指令和数据由SDA负责输出,包括开始、停止指令和显示的数据.

1.4.4 温度传感器电路 智能手环利用温度传感器DS18B20采集温度信息,DS18B20与微处理器连接后,仅须占据一个I/O端口,并拥有特殊的单线接口方法.DS18B20可使用数据线供电,并具有超低耗电量运行方式[7].

1.4.5 蓝牙模块电路 本系统采用的无线通信器件为HC05蓝牙模块,其可与3.3 V或5 V单片机设备兼容.在工作时选用跳频和时分多址方式,使用伪随机的码序列来完成频移键控.HC05的VCC脚接5 V电源,EN脚不用,GND接地,RXD脚接STM32的6脚(RXD端).

1.4.6 DS0302时钟电路 本系统采用 DS0302作为时钟芯片,其晶体振荡器为32.768 kHz,是一种低功耗的实时ARM电路[8].时钟芯片有一个ARM寄存器,用于在内存中存储数据,还可以一次传输多个字节的时钟信号,时钟芯片的工作电压为2.5~5.5 V.

1.4.7 按键设置电路 智能手环共配置有4个控制命令的按钮:参数设置、设定加、设定减、清除当前步数,按键为独立型按键,每一个按钮配置一个独立的I/O线.键盘抖动的消除采用软件消除,当使用者按下按键时,会先向MCU输出一个低电平信号,并通过程序中输入的按键扫描函数来完成相应的功能.

1.4.8 PM2.5模块设置电路 PM2.5模块的输出通过串口转换到单片机,环境中的粉尘浓度与收集的电压值呈正比关系.测得电压值就能获得环境空气中的粉尘浓度,然后输出粉尘浓度对应的频率信号由STM32进行处理.

2 蓝牙智能手环的软件程序设计

主程序模块:系统上电后,需要配置多个传感器的引脚,然后初始化I2C 让OLED进行液晶显示和ADXL345进行数据采集,采集完成后蓝牙串口初始化等待发送数据,DS18B20进行温度采集,心率血氧传感器通过内部AD转换后获取心率血氧值,时钟显示当前的时间,PM2.5模块采集空气中PM2.5含量,最后把数据通过蓝牙发送到手机端,控制OLED显示当前采集到的数据,最后进入按键扫描判断按键是否按下,如果按下则处理按键扫描函数.

2.1 心率血氧采集程序设计

开发环境为Keil Uvision5,刻录程序使用STLINKV2下载器,按照如下步骤进行:

第一步对MAX30102的I2C进行通信设置,这需要在程序里面对I2C数据传输的引脚分别进行配置,之后对I2C进行初始化,函数为 bsp_InitI2C();

第二步MAX30102写寄存器,函数为maxim_max30102_write_reg(uint8_tuch_addr,uint8_tuch_data);

第三步MAX30102读寄存器,函数为maxim_max30102_read_reg(uint8_tuch_addr,uint8_t *puch_data);

第四步在MAX30102中初始化,函数为maxim_max30102_init();

第五步在MAX30102中读缓冲器FIFO,函数为maxim_max30102_read_fifo(uint32_t*pun_red_led, uint32_t *pun_ir_led);

第六步计算心率和血氧饱和度,通过检测PPG 周期的峰值和相应的红/红外信号的AC/DC,计算出SPO2的an/u比值和心率值.

2.2 液晶显示模块程序设计

一开始要写入命令控制字,并且也要把显示的数据写上去,目的是使液晶正常工作.当然要先使用该命令检查液晶是否工作,然后再写入命令控制字,那么正在工作时,想要写入控制字和数据就必须等到LCD发出工作完成信号.液晶显示模块程序流程见图3.

图3 液晶显示模块程序流程

2.3 蓝牙程序设计

软件编程部分还包括PM2.51051A程序设计、DS1302时钟程序设计以及按键时钟程序设计.

3 系统调试和功能展示

3.1 主控模块和显示屏调试

硬件调试是确保设备正常工作必不可少的步骤,只有这些硬件设备的指标正常时,才能进行软件测试.无线蓝牙智能手环包含了计步模组、心率血氧模块、体温模组、PM2.5模块、蓝牙模块和OLED显示屏,手环内部整体电路见图4.本设计使用OLED液晶模块和按键控制装置组成,当系统开启后,通过写入命令控制字,把需要显示的数据也写上去,目的是使液晶正常工作.不过碰到正在工作时,必须等到LCD发出工作完成信号才能写入控制字和数据.正常启动后,各项数值显示在OLED显示屏上.当开启蓝牙手环时,OLED显示屏初始化,调试出编写好的指令,显示各行数据,人员根据当前数据信息做出相应的调整.OLED屏幕数值显示见图5a.

图4 手环内部整体电路实物

3.2 心率血氧调试

当MAX30102心率血氧传感器接通STM32对应的接口时,传感器板上的电源灯亮,表明此时设备已连上供电线.由单片机处理心率血氧的浓度,输出与心率血氧浓度对应的信号,此传感器测试到的心率血氧浓度数据传输到手机显示于上位机.MAX30102心率血氧传感器测试见图5b.

3.3 DS18B20温度传感器测试

在温度感应器中,读出温度的过程是首先得到温度感应器中BCD码形式的温度数值,然后输出是通过转换的十进制形式.第一步是初始化功能,第二步读出环境温度感应器的环境温度,第三步监测实际的环境温度值.该传感器测量的温度数据被传输到手机并显示在上位机上.

3.4 三轴传感器调试

三轴传感器有两种通讯方法,本系统中为I2C数据传输方式.当ADXL345三轴传感器接通STM32接口时,地板上的LED灯亮起,表示此时已经连上了供电,LED为开关指示灯.上电后,ADXL345先进行初始化,写入开始信号和停止信号.

当接收应答信号时,ADXL345开始读取采集到的数据,读取ADXL345的加速度值,从而判断是否发生位移,如果读取到的数据为0XE5表示发生位移行走.此时传感器测试到的位移数据传输到手机并以步数显示在上位机.ADXL345测试见图5c.

图5 系统主要功能模块调试结果

手机端上位机显示界面见图6,手环佩戴者或陪练人员可以在手机APP端随时观察各项生理监测数值、步数及环境信息.

图 6 手机端上位机显示界面

4 结语

基于STM32的蓝牙无线多功能智能手环,集计步、人体心率、环境温度、血氧检测、环境PM2.5检测等多种功能于一体,通过蓝牙模块把当前的体征和监测数据发送到手机端上位机进行显示,这样保证了手环佩戴者和陪练人员都能随时观察运动者当前状态和环境参数.开发了系统的硬件电路和手机端上位机界面,完成了系统的功能调试.调试结果表明,蓝牙手环系统工作正常,系统功能指标符合预期,数据显示准确,操作方便,功能较全面,具有一定的推广应用价值.

[1] 陈立舜.基于双通讯模式的气动在线监控系统的研究与实现[D].成都:电子科技大学,2020.

[2] 刘育胜,宋鑫,李永乐,等.基于单片机防丢失设备的设计和实践[J].电脑知识与技术,2021,17(13):237-240.

[3] 李雪梅,车爱静,高焕明.基于加速度传感器的计步器设计[J].山东工业技术,2019(11):142,162.

[4] 吴全玉,贾恩祥,戴飞杰,等.便携式低功耗可穿戴心率血氧监测系统的设计[J].江苏理工学院学报,2020,26(4):53-61.

[5] Borda,Ann,Gilbert Cecily,et al.Consumer Wearable Information and Health Self Management by Older Adults[J] .Studies in Health Technology and InformatIcs,2018,246:42-61.

[6] LI Xue,NIE Lanshun,XU Hanchuan ,et al.Collaborative Fall Detection Using Smart Phone and Kinect[J].Mobile Networks and Applications,2018(23):775-788.

[7] 陈雪娇,缪文南.基于STM32的可穿戴体感控制系统设计[J].电子设计工程,2022,30(1):189-193.

[8] 孙皓楠,梁东云.智能手环心率监测系统设计[J].无线互联网科技,2022,19(5):59-60.

Design of bluetooth wireless multifunctional intelligent bracelet based on STM32

HUI Pengfei,ZOU Liying,ZHOU Jian

(School of Communication and Electronic Engineering,Qiqihar University,Qiqihar 161006,China)

Applying bluetooth technology to the intelligent bracelet and leveraging its low-power advantages,a bluetooth wireless multifunctional intelligent bracelet has been designed.The device uses STM32 as the core processor,including acceleration sensor,heart rate and blood oxygen sensor,OLED LCD display,power circuit, PM2.5sensor,DS1302 clock chip,and temperature sensor.Utilizing acceleration sensors to monitor gravity acceleration and determine the walking speed and posture of the human body,converting the monitoring data into a step counting function.The heart rate and blood oxygen saturation sensor is used to collect the information of the human body′ s heart rate and blood oxygen saturation.The data is amplified and sent to the microcontroller,and the steps,heart rate and blood oxygen saturation,temperature,and time are displayed on the OLED screen.A mobile APP has been developed using JDK and Android SDK,which can send current data to the phone for display through HC-05 wireless bluetooth,making it convenient for users to observe their physical condition at any time.The intelligent bracelet has stable working performance,convenient operation,accurate data display,and good practical value.

intelligent bracelet;STM32;sensors;bluetooth;pedometer;LCD display

1007-9831(2023)11-0027-06

TN919.72

A

10.3969/j.issn.1007-9831.2023.11.006

2023-07-19

黑龙江省省属高等学校基本科研业务费科研项目(145109147)

惠鹏飞(1980-),男,辽宁凌源人,副教授,硕士,从事无线传感器网络技术研究.E-mail:hui_pengfei@126.com

猜你喜欢

手环血氧蓝牙
爱心手环
蓝牙音箱的直线之美
智能血氧饱和度监测系统设计与实现
简单、易用,可玩性强Q AcousticsBT3蓝牙音箱
适合自己的才是最好的 德生(TECSUN) BT-50蓝牙耳机放大器
基于STM32血氧心率检测仪的研制
紧急:蓝牙指尖陀螺自燃!安全隐患频出
红手环志愿者服务团欢迎您的加入
学习监测手环
基于血氧模拟前端AFE4490的无创血氧测量模块设计