【STM32单片机】温度报警控制系统设计


一、主要功能

本项目使用STM32F103C8T6单片机控制器,使用无源蜂鸣器模块、IIC OLED显示模块、DS18B20温度传感器、独立按键、继电器加热、散热设备等。

主要功能:
系统运行后,OLED显示温度、温度阈值,温度控制状态信息;
可按下K1和K2键调节温度下限值,K3和K4键调节温度上限值;
当温度高于上限,开启降温装置,蜂鸣器报警;
当温度低于下限,开启升温装置,蜂鸣器报警;
当温度正常,关闭升温和降温装置;


二、软件设计

/*
作者:嗨小易(技术QQ群:570487280)
*/


//系统数据显示
void sys_data_show(void)
{
	u8 buf[6];
	int temp;
	
	while(1)
	{
		//正温度显示
		if(sys_ctrl.sign==0)
		{
			buf[0]=' ';
			buf[1]=sys_ctrl.temp/100+0x30;
			buf[2]=sys_ctrl.temp%100/10+0x30;
			buf[3]='.';
			buf[4]=sys_ctrl.temp%100%10+0x30;
			buf[5]='\0';
			OLED_ShowString(5*8,0,buf,16);
		}
		//负温度显示
		else
		{
			temp=-sys_ctrl.temp;
			buf[0]='-';
			buf[1]=temp/100+0x30;
			buf[2]=temp%100/10+0x30;
			buf[3]='.';
			buf[4]=temp%100%10+0x30;
			buf[5]='\0';
			OLED_ShowString(5*8,0,buf,16);
		}
		
		//温度阈值下限显示
		if(sys_ctrl.set_temp[0]>=0)
		{
			buf[0]=' ';
			buf[1]=sys_ctrl.set_temp[0]/10+0x30;
			buf[2]=sys_ctrl.set_temp[0]%10+0x30;
			buf[3]='\0';
			OLED_ShowString(6*8,20,buf,16);
		}
		else 
		{
			temp=-sys_ctrl.set_temp[0];
			buf[0]='-';
			buf[1]=temp/10+0x30;
			buf[2]=temp%10+0x30;
			buf[3]='\0';
			OLED_ShowString(6*8,20,buf,16);
		}
		
		//温度阈值上限显示
		if(sys_ctrl.set_temp[1]>=0)
		{
			buf[0]=' ';
			buf[1]=sys_ctrl.set_temp[1]/10+0x30;
			buf[2]=sys_ctrl.set_temp[1]%10+0x30;
			buf[3]='\0';
			OLED_ShowString(6*8,40,buf,16);
		}
		else 
		{
			temp=-sys_ctrl.set_temp[1];
			buf[0]='-';
			buf[1]=temp/10+0x30;
			buf[2]=temp%10+0x30;
			buf[3]='\0';
			OLED_ShowString(6*8,20,buf,16);
		}
		
		//温度状态显示
		if(sys_ctrl.flag==0)
			OLED_ShowString(14*8,40,"  ",16);
		else if(sys_ctrl.flag==1)
			OLED_ShowString(14*8,40,"SW",16);
		else if(sys_ctrl.flag==2)
			OLED_ShowString(14*8,40,"JW",16);
		
		OLED_Refresh_Gram();//刷新显示缓存
		break;
	}
}

//系统数据设置
void sys_data_set(void)
{
	u8 key=0;
	
	key=KEY_Scan(0);
	
	//下限+
	if(key==KEY1_PRESS)
	{
		sys_ctrl.set_temp[0]++;
		if(sys_ctrl.set_temp[0]>99)sys_ctrl.set_temp[0]=-20;
	}
	//下限-
	else if(key==KEY2_PRESS)
	{
		sys_ctrl.set_temp[0]--;
		if(sys_ctrl.set_temp[0]<-20)sys_ctrl.set_temp[0]=99;
	}
	//上限+
	else if(key==KEY3_PRESS)
	{
		sys_ctrl.set_temp[1]++;
		if(sys_ctrl.set_temp[1]>99)sys_ctrl.set_temp[1]=-20;
	}
	//上限-
	else if(key==KEY4_PRESS)
	{
		sys_ctrl.set_temp[1]--;
		if(sys_ctrl.set_temp[1]<-20)sys_ctrl.set_temp[1]=99;
	}
}

//系统功能控制
void sys_fun_ctrl(void)
{
	//如果温度高于上限,打开降温,蜂鸣器报警
	if(sys_ctrl.temp>sys_ctrl.set_temp[1]*10)
	{
		RELAY_JW=0;RELAY_SW=1;
		sys_ctrl.flag=2;
		BEEP_Alarm(100,100);
	}
	//如果温度低于下限,打开升温,蜂鸣器报警
	else if(sys_ctrl.temp<sys_ctrl.set_temp[0]*10)
	{
		RELAY_JW=1;RELAY_SW=0;
		sys_ctrl.flag=1;
		BEEP_Alarm(100,100);
	}
	else 
	{
		RELAY_JW=1;RELAY_SW=1;
		sys_ctrl.flag=0;
	}
}




三、实验现象

B站演示视频:https://space.bilibili.com/444388619
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


联系作者

B站演示视频:https://space.bilibili.com/444388619
专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

  • 15
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 基于STM32的心率温度检测报警系统是一种利用STM32单片机进行心率和体温监测,并在异常情况下进行报警系统。 该系统包括以下几个主要模块:传感器模块、STM32模块、显示模块和报警模块。 传感器模块用于获取用户的心率和体温信号。通常可以使用心率传感器和温度传感器进行检测。心率传感器可以通过读取用户的脉搏来测量心率,而温度传感器可以用于测量用户的体温。 STM32模块是整个系统的核心部分,它负责接收传感器模块获取的信号,并进行处理和判断。例如,当心率超过设定的正常范围或体温超过设定的安全阈值时,STM32会触发报警模块。 显示模块用于显示用户的心率和体温数据,以及报警状态。可以使用LCD模块或OLED模块等进行显示,并通过STM32模块进行数据的传输和控制报警模块负责在异常情况下发出报警信号,以提醒用户或相关人员注意。可以使用蜂鸣器、LED灯或者发送报警信息到远程服务器等方式进行报警。 基于STM32的心率温度检测报警系统具有即时性、可靠性和便携性等优点。它可以用于个人健康监测、医疗设备等领域,为用户提供便捷的健康监测服务。同时,通过与其他智能设备的连接,还可以进行数据的存储和分析,从而更好地了解用户的健康状况。 ### 回答2: 基于STM32心率温度检测报警系统是一种能够实时监测人体心率和体温的智能设备。它基于STM32单片机进行数据采集和处理,并通过报警功能及时提醒用户。 首先,我们需要连接心率和体温传感器到STM32单片机上,通过传感器实时采集心率和体温数据。采集的原始数据经过滤波和处理后,得到准确的心率和体温数值。 其次,我们设置阈值来判断心率和体温是否超过正常范围。当检测到心率或体温超过预设的安全阈值时,系统立即发出报警信号。报警方式可以通过蜂鸣器、闪光灯或者手机短信等多种方式来进行提醒。 此外,为了提高系统的可靠性和稳定性,我们可以在系统中加入自动记录和存储功能。当心率或体温超过阈值时,系统自动记录下当前时间、心率和体温数值,并将数据存储到内部存储器或外部存储设备中。这样,用户可以方便地查看历史记录,并对个人身体状况进行分析和评估。 另外,为了便于用户使用,我们可以设计一个友好的用户界面。用户可以通过LCD显示屏、按键或触摸屏来设置阈值和查看实时心率、体温数值及历史数据。 总之,基于STM32心率温度检测报警系统是一种能够及时监测人体健康状况并提供报警功能的智能设备。它可以广泛应用于医疗、体育健身和个人健康管理等领域,为人们的生活和健康保驾护航。 ### 回答3: 基于STM32的心率温度检测报警系统,是一种用于监测和报警用户心率和体温异常情况的设备。该系统基于STM32微控制器,配备了心率传感器和温度传感器,并通过数据处理和判断算法,实时监测用户的心率和体温变化。 对于心率检测,心率传感器会采集用户的心电信号,并将其转化为数字信号输入给STM32微控制器。STM32根据预设的心率范围进行数据处理和判断,如果心率超过设定的阈值,系统将发出报警信号,提醒用户进行相关的措施。 对于温度检测,温度传感器会实时采集用户的体温,并将其转化为数字信号输入给STM32微控制器。STM32根据预设的体温范围进行数据处理和判断,如果体温超过设定的阈值,系统将发出报警信号,提醒用户可能存在发热的情况。 此外,系统还可以通过无线通信方式将检测到的数据传输给外部设备,如手机或电脑等,方便用户进行大数据分析和记录。同时,系统还具备自动报警功能,当系统检测到用户心率和体温异常持续一段时间后,将自动发出报警信号,以便用户及时寻求医疗救助。 基于STM32的心率温度检测报警系统具有可靠性、实时性和便携性等优点,适用于各种场合,如家庭、医疗机构以及运动员训练等。该系统对于用户的生命健康和安全具有重大意义,能够及时发现异常情况并采取及时的处理方式,为用户提供了更加全面的健康保障。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值