【毕业设计】_基于STM32单片机的智慧仓库环境检测(原理图+源码)

一. 系统概述

  1. 本系统设计以 STM32 单片机为核心控制器,通过温湿度传感器、烟雾传感器、光照传感器和火焰传感器采集仓库环境信息。采集到的数据将显示在屏幕上,并且可以通过按键设置各参数的阈值。系统可根据环境数据进行智能调节和报警:当温度低于下限阈值时,将启动加热装置;当温度高于上限阈值时,将启动降温装置;当湿度超过阈值时,将启动除湿装置;如果检测到有人且光照低于阈值,灯光将自动开启;当烟雾浓度超标或检测到火焰时,蜂鸣器将发出警报。

在这里插入图片描述

二. 仿真概述

  1. 使用 DHT11 传感器进行温湿度检测,通过光敏电阻模块检测光强度。人体检测和火焰检测则通过开关进行。在仿真中,按键用于设置各参数的阈值。温度过低时会启动加热,温度过高时会启动降温,湿度过高时会启动除湿。光强低于阈值且检测到有人的情况下,灯光会自动开启。若检测到烟雾或火焰,蜂鸣器会发出警报。

在这里插入图片描述

  1. 通过按下 DHT11 的红色按钮,可以调整温湿度设置。显示屏将同步更新温湿度数据。系统会根据温湿度超限情况自动加热、降温或除湿。

  1. 通过调节光敏电阻模块上的滑动变阻器,可以改变光强输入。当检测到有人且光强低于设定阈值时,系统会自动开灯。

在这里插入图片描述

在这里插入图片描述

  1. 如果检测到火焰,系统将激活蜂鸣器发出警报。

在这里插入图片描述

三.程序设计

int main(void)
{
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//2:2
	Init_Test();
	
	while(1)
	{
		Key_Scan(&key);
		if(key==1){ set++; if(set>5)set=0; key=0;OLED_ShowString(4,1,"               "); }
		if(set==1)
		{
			OLED_ShowString(4,1,"set tmin >");OLED_ShowNum(4,12,tl,2);
			if(key==2){tl++;key=0;}		if(key==3){tl--;key=0;}
		}
		if(set==2)
		{
			
			OLED_ShowString(4,1,"set tmax >");OLED_ShowNum(4,12,th,2);
			if(key==2){th++;key=0;}		if(key==3){th--;key=0;}
		}
		if(set==3)
		{
			
			OLED_ShowString(4,1,"set hmax >");OLED_ShowNum(4,12,hh,2);
			if(key==2){hh++;key=0;}		if(key==3){hh--;key=0;}
		}
		if(set==4)
		{
			
			OLED_ShowString(4,1,"set smax >");OLED_ShowNum(4,12,sh,2);
			if(key==2){sh++;key=0;}		if(key==3){sh--;key=0;}
		}
		if(set==5)
		{

			OLED_ShowString(4,1,"set lmin >");OLED_ShowNum(4,12,ll,2);
			if(key==2){ll++;key=0;}		if(key==3){ll--;key=0;}
		}
		
		DHT11_Read_Data(&t,&h);
		smo  =PCF8591_ADC_Input(0x90,1);if(smo>99)smo=99;//
		light=PCF8591_ADC_Input(0x90,0);if(light>99)light=99;//
		
		OLED_ShowString(1,1,"Temp:");OLED_ShowNum(1,6,t,2);OLED_ShowString(1,9,"Humi :");OLED_ShowNum(1,15,h,2);//OLED_ShowString(1,9," C");//OLED_ShowNum(1,14,tl,2);
		OLED_ShowString(2,1,"Smo :");OLED_ShowNum(2,6,smo,2);OLED_ShowString(2,9,"Light:");OLED_ShowNum(2,15,light,2);//OLED_ShowString(2,9," Rh");//OLED_ShowNum(1,14,tl,2);
		OLED_ShowString(3,1,"body:");OLED_ShowString(3,9,"flame:");
		if(Key4==0){OLED_ShowString(3,6,"H");}else{OLED_ShowString(3,6,"N");}
		if(Key5==0){OLED_ShowString(3,15,"H");}else{OLED_ShowString(3,15,"N");}
		
		if(t<tl)Relay1_1;else Relay1_0;
		if(t>th)Relay2_1;else Relay2_0;
		if(h>hh)Relay3_1;else Relay3_0;
		if(smo>sh || Key5==0)Relay5_1;else Relay5_0;
		if(light<ll && Key4==0)Relay4_1;else Relay4_0;
	}
}

24-32f-12

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值