一、准备工具
- STM32f103VET6单片机一块
- ESP8266一块(此项目使用野火指南者,指南者自带ESP8266,其他型号单片机杜邦线自连即可)
- MAX30102心率血氧传感器
- 3.2寸LCD显示器
- 杜邦线5根
二、设计任务
- 可以通过MAX30102心率血氧传感器对用户的心率血氧进行采集,并用实时显示在LCD液晶屏上
- 可以设定一个固定的报警温度值显示在液晶屏上
- 用户心率低于60或者高于阈值报警、用户血氧低于阈值报警,报警形式包括:蜂鸣器发出滴滴声, LCD中心率血氧字符根据不同情况显示相应的报警颜色,报警颜色有红、蓝、品红
- 能够通过按键动态修改报警温度阈值
- LCD显示屏下方绘制心率波形图
- ESP8266将数据发送给TCP助手
三、系统硬件设计
3.1 系统模型设计
按键1设置心率阈值,按键2设置血氧阈值,MAX30102检测用户心率和血氧值。
当检测的用户心率值大于心率阈值时LCD当前心率一栏变为红色、蜂鸣器报警、LED红灯闪烁、串口输出警告。
当检测的用户心率值底于60时LCD当前心率一栏变为品红色、蜂鸣器报警、LED红灯闪烁、串口输出警告。
当检测的用户血氧浓度小于血氧阈值时LCD显示血氧过低警告、蜂鸣器报警、蓝灯闪烁、串口输出心率过低警告。
血氧波形图将检测到的血氧数据绘制出来,在未检测时y轴绘制为0。相应的颜色警告也会在波形图中显示。
ESP8266将单片机采集的数据通过联网的方式发送到TCP助手中并显示。


3.2 硬件连接
- 1、本系统使用野火指南者,由于该单片机自带ESP8266,因此无需连接。如果使用其他型号单片机,根据ESP8266用户手册连接即可。
- 2、STM32F103与MAX30102的连接,VCC<->3.3V,GND<->GND,SCL<->PC7,SDA<->PC8,IM<->PC9。
总电路连接图:

四、系统程序设计
基于STM32的血氧仪控制系统总体软件的设计,可以分为系统初始化、数据采集、数据处理、数据显示和系统控制。系统初始化包括各模块的初始化,包括MAX30102模块、LCD显示模块、按键模块、蜂鸣器模块等。同时还需要初始化串口通信模块。
采集数据主要是获取的血氧数据,进行数字转换和滤波处理,得到血氧饱和度和脉搏率数据。数据处理是对采集到的血氧饱和度和脉搏率数据进行处理。同时,还需要对数据进行校验和处理,确保数据的准确性和可靠性。将处理后的数据通过LCD显示模块显示出来。同时,还需要通过蜂鸣器模块进行声音提示,例如当血氧饱和度低于一定阈值时,发出警报声。系统控制即通过按键控制模块控制系统的工作模式,如调节警报阈值等。
程序设计流程图:

总结
基于STM32的血氧仪控制系统是一个适合初学者的STM32设计,本系统设计包含了GPIO的配置、ESP8266的配置与使用、传感器MAX30102的使用、按键中断、串口发送信息、LCD显示等的使用。本系统主要部分即心率血氧采集和WiFi数据传输,比较适合初学者学习理论知识后对知识的总结和融会贯通。
注意:购买前请再三确认,商品一旦出售概不退货,如有疑问请转至 疑问帮助