课程设计,基于STM32的智能测温系统(程序+电路图+手机APP)!

1. 引言

大家好!在这个数字化时代,温度监测的重要性不言而喻。今天,咱给各位分享一个小项目,即基于STM32F103C8T6单片机的智能测温系统,它不仅能实时监测温度,还能通过手机APP远程管理和查看数据,可以说是温度监测的多面手。作者在这里还给大家准备了资料,可以拉到文末领取,里面的项目不少,可以先拿来练练手哦~

在这里插入图片描述

2. 器件准备

在动手之前,咱们得先把所需的器件准备齐全。下面是我们需要的器件清单:

  • 核心单片机:STM32F103C8T6,这款单片机以其强大的处理能力和丰富的外设接口而受到青睐。
  • 温度检测模块:GY-906传感器,这款传感器以其高精度和高灵敏度而著称。
  • 数据显示模块:OLED显示屏,用于实时显示温度数据和用户设定的温度阈值。
  • 数据存储模块:AT24C256模块,负责存储温度数据。
  • 数据传输模块:蓝牙模块,用于将数据上传至手机APP。
  • 语音播报模块:JR6001模块,用于语音播报温度信息。
  • 按键:四个按键,用于调整温度阈值、清空存储数据和拍照功能。

3. 原理图

接下来,让咱们一起来看看这个智能测温系统的原理图。这张图详细展示了各个模块之间的连接关系和工作原理。

在这里插入图片描述

大家在查看时可以发现,每个模块都扮演着重要的角色,它们共同协作,确保系统能够稳定运行。

核心单片机
STM32F103C8T6作为系统的核心,负责协调各个模块的工作,处理传感器数据,并控制其他模块的运行。

温度检测模块
GY-906传感器负责实时监测环境温度,并将数据传输给STM32单片机。这款传感器以其出色的性能,确保了温度数据的准确性。

数据显示模块
OLED显示屏不仅能够实时显示当前的温度读数,还能显示用户设定的温度阈值,让用户对系统状态一目了然。

数据存储模块
AT24C256模块作为数据存储单元,能够存储大量的温度数据,方便用户随时查看和分析。

数据传输模块
蓝牙模块使得系统能够与手机APP进行通信,实现数据的远程传输和监控。

语音播报模块
JR6001模块能够在温度超过预设阈值时发出语音提示,增加了系统的交互性。

4. 示例代码

代码是系统的基石,下面是一些关键的示例代码。
首先是主程序,这段代码它包含了多个功能模块,用于实现温度监测、显示、存储和传输。

int main(void)
{	

	delay_init();
	Store_Init();		
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);// 设置中断优先级分组2
	uart3_init(9600);							 //串口3初始化波特率为9600
	AT24C256_Init();
	OLED_Init();	 //延时初始化 //初始化LED灯	
	Key_Init();
	HC05_Init();
	Timer_Init();

	LED_Init();
	LED1=!LED1;
	
	SMBus_Init();

	OLED_Clear();
	OLED_ShowChinese(0,0,"温度:");
	OLED_ShowString(100,0,"C",OLED_8X16);
	OLED_Update();
	OLED_ShowChinese(0,16,"阈值:");
	OLED_Update();
	
	OLED_ShowChinese(0,32,"存储数据");
	OLED_ShowString(64,32,":",OLED_8X16);
	OLED_Update();
	
	OLED_ShowChinese(0,48,"存储地址");
	OLED_ShowString(64,48,":",OLED_8X16);
	OLED_Update();
	
	yuzhi=Store_Data[1];
	dizhi=Store_Data[2];

	USART_SendString(USART3, "A7:00012\r\n"); 
	delay_ms(10);
		
	while(1)
	{
		OLED_ShowFloatNum(48,0,temp,2,2,OLED_8X16);
		OLED_Update();
		
		OLED_ShowNum(48,16,yuzhi,2,OLED_8X16);
		OLED_Update();
		
		KeyNum=Key_GetNum();

		if(KeyNum==1){

			Store_Data[1]++;
			Store_Save(); 
			yuzhi=Store_Data[1];

		}

		if(KeyNum==2&&yuzhi>0){

			Store_Data[1]--;
			Store_Save(); 
			yuzhi=Store_Data[1]; 

		}

		if(KeyNum==3){
			
			Store_Data[2]=dizhi=1;
			Store_Save();

		}

		if(KeyNum==4){
			
			AT24C256_WriteFloat(dizhi,temp);
			
			AT24C256_ReadFloat(dizhi);
			OLED_ShowFloatNum(70,32,temp,2,2,OLED_8X16);
			OLED_Update();
			
			dizhi+=4;
			Store_Data[2]=dizhi;
			Store_Save();
		
			send_AT24C256_FloatsAsStrings(1,dizhi-1);
		}
		OLED_ShowNum(80,48,dizhi,5,OLED_8X16);
		OLED_Update();

	}

}

void TIM2_IRQHandler(void)
{
	if (TIM_GetITStatus(TIM2, TIM_IT_Update) == SET)		
	{
		temp=SMBus_ReadTemp();	
		if(temp>yuzhi){	
			USART_SendString(USART3, "A7:00011\r\n"); //温度异常
			delay_ms(10);
			GPIO_SetBits(GPIOA, GPIO_Pin_0); 
			GPIO_ResetBits(GPIOA, GPIO_Pin_1);			
		}
		else{
			GPIO_SetBits(GPIOA, GPIO_Pin_1); 
			GPIO_ResetBits(GPIOA, GPIO_Pin_0); 
		}				
		TIM_ClearITPendingBit(TIM2, TIM_IT_Update);			//清除TIM2更新事件的中断标志位													
	}
}

以下这段代码则是用于操作STM32单片机上的FLASH存储器。里面的函数允许用户读取和写入FLASH中的数据,以及擦除FLASH的页面。

void MyFLASH_ProgramWord(uint32_t Address, uint32_t Data)
{
	FLASH_Unlock();							//解锁
	FLASH_ProgramWord(Address, Data);		//编程字
	FLASH_Lock();							//加锁
}

/**
  * 函    数:FLASH编程半字
  * 参    数:Address 要写入数据的半字地址
  * 参    数:Data 要写入的16位数据
  * 返 回 值:无
  */
void MyFLASH_ProgramHalfWord(uint32_t Address, uint16_t Data)
{
	FLASH_Unlock();							//解锁
	FLASH_ProgramHalfWord(Address, Data);	//编程半字
	FLASH_Lock();							//加锁
}

5. 应用场景

关于智能测温系统呢,它可是个多面手,它不仅能在实验室里大显身手,还能在工业现场和智能家居中发挥重要作用。下面,就可以看看这个系统在不同场景下的应用:

家庭智能恒温
想象一下,外面大雪纷飞,你窝在沙发上,手里拿着一杯热可可,而你的智能测温系统正默默地工作着,确保室内温度始终保持在你最喜欢的22度。无论是暖气还是空调,它都能自动调节,让你的家始终保持舒适。而且,通过Wi-Fi,你甚至可以在下班路上就远程调整家中的温度,一进门就是温暖如春。

工业设备温控
在工业领域,温度控制同样重要。比如,一台精密的机床在工作时,如果温度过高,可能会导致零件变形,影响产品质量。而智能测温系统就能实时监控设备的温度,一旦检测到异常,就能及时发出警报,甚至自动调节冷却系统,确保设备始终在最佳状态下运行。

农业温室控制
在现代农业中,温室的温度控制对于作物生长至关重要。测温系统能够精确控制温室内的温度,为作物提供最适宜的生长环境。而且,通过集成更多的传感器,如湿度传感器、光照强度传感器,我们的系统还能进一步提升智能化水平,帮助农民实现精准农业。

实验室温度控制
在实验室里,无论是化学实验还是生物实验,温度的控制都是实验成功的关键因素之一。智能测温系统能够提供精确的温度监测,确保实验条件的稳定性。而且,通过数据存储模块,实验过程中的温度变化都能被记录下来,方便后续的数据分析和实验复现。

冷链物流温度监控
在冷链物流中,温度的精确控制对商品的保鲜至关重要。使用STM32温度监控系统,可以实时监控运输过程中的温度变化,确保商品在合适的温度下存放,减少损耗,保证商品的新鲜度。

通过这些应用场景,我们就能看到,这个系统不仅能够提供精确的温度监测,还能通过智能化的控制和管理,能够切实地为各行各业带来便利和效率的提升的。

6. 资料领取

资料可以点击链接进行获取免费领取单片机资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值