本文主要是介绍61-基于stm32单片机心率血氧含量体温检测LCD1602显示蓝牙上传源程序、原理图、元件清单实物制作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
功能介绍:采用stm32单片机作为主控CPU,采用MAX30102采集当前的心率和血氧含量,采用DS18B20传感器采集温度,采用LCD1602显示屏显示温度,心率,血氧浓度,并且可以通过蓝牙HC-06模块将数据上传到手机APP,程序有中文注释,新手容易看懂,文末有资料分享:
下面是实物演示视频和相关实物图片
61-基于stm32单片机心率体温检测LCD1602显示蓝牙上传(程序+原理图+元件清单全套资料)
下面是程序部分展示(程序有中文注释,新手容易看懂)
程序部分展示:
int main(void)
{
int i=0;
USART_CONFIG();//串口初始化
IIC_GPIO_INIT();//IIC协议初始化
OLED_Init(); //OLED初始化
fill_picture(0x00);
Adc_Init();//adc初始化
Ds18b20_Init();//18b20初始化
DS18B20_Read_Temperature();//读取温度值
LCD1602_Init();//LCD1602初始化
MAX30102_GPIO();//心率传感器初始化
LCD1602_Init();//LCD1602初始化
beep=1;
Max30102_reset();//复位传感器
MAX30102_Config();
for(i = 0;i < 128;i++) //传感器校验
{
while(MAX30102_INTPin_Read()==0)
{
//读取FIFO
max30102_read_fifo();
}
}
while(1)
{
deal_Temp();//读取温度函数
blood_Loop();//读取心率函数
}
}
void IIC_Start(void)
{IIC_SCL_1;IIC_SDA_1;//启始信号建立时间 0.6us 400KHzIIC_Delay();IIC_SDA_0;IIC_Delay();//启始信号保持时间0.6usIIC_SCL_0;IIC_Delay();//时钟低电平时间1.3us
}void IIC_Stop(void)
{ IIC_SDA_0;IIC_SCL_1;IIC_Delay();//结束信号建立时间0.6usIIC_SDA_1;IIC_Delay();//总线空闲时间时间1.3us
}void IIC_Send_Byte(uint8_t byte)
{uint8_t i;//先发送高位for(i=0;i<8;i++){if(byte & 0x80){IIC_SDA_1;}else{IIC_SDA_0;}IIC_Delay();IIC_SCL_1;IIC_Delay();IIC_SCL_0;IIC_Delay();byte<<=1;}IIC_SDA_1; IIC_Delay();IIC_SCL_1;IIC_Delay();if(IIC_SDA_READ){ack=1;}else{ack=0;}IIC_SCL_0;IIC_Delay();
}uint8_t IIC_Receive_Byte(void)
{uint8_t receive=0;uint8_t i;//置数据线为输入方式for(i=0;i<8;i++){ receive<<=1;IIC_SCL_1;//置时钟线为高使数据线上数据有效IIC_Delay();if(IIC_SDA_READ){receive++;//读数据位,接收的数据位放入retc中}IIC_SCL_0; IIC_Delay();}return receive;
}
程序打开办法:特别注意:下载资料包以后一定要先解压!!!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。
下面是原理图,采用【AD】altium designer打开,文件中有安装包
下面是资料包里面包含的相关文件展示
百度云盘资料下载链接
这篇关于61-基于stm32单片机心率血氧含量体温检测LCD1602显示蓝牙上传源程序、原理图、元件清单实物制作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!