44-基于stm32单片机温室大棚温湿度光照自动抽水散热源程序、原理图、元器件清单实物制作

本文介绍了一款基于STM32单片机的温室大棚监控系统,通过DHT11传感器监测温湿度,光敏模块检测光照强度,并利用按键设置阈值控制风扇、水泵和LED灯。程序包括主函数、按键初始化和温湿度光照处理逻辑。

功能介绍:采用stm32单片机作为主控CPU,采用DHT11传感器采集温湿度,采用光敏模块采集当前的光照强度,通过按键设置温度和湿度的阈值,当温度大于阈值,风扇打开进行排气并且蜂鸣器报警,当湿度小于阈值,水泵打开抽水,当光照强度低于设置阈值,LED灯打开进行补光,文末有资料分享:

44-基于stm32单片机温室大棚温湿度光照自动抽水散热(程序+原理图+元器件清单全套资料)

 

程序打开办法:特别注意:下载资料包以后一定要先解压!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。  

void KEY_Init(void)
{
 	GPIO_InitTypeDef GPIO_InitStructure;
 
 	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//使能PORTA,PORTE时钟

	GPIO_InitStructure.GPIO_Pin  = GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_1;//KEY0-KEY2
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //设置成上拉输入
 	GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIOA2,3,1
}

int main(void)
{
	u32 sgp30_dat;
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
	delay_init();
	uart_init(9600);
	
	OLED_Init();
	OLED_ColorTurn(0);
	OLED_DisplayTurn(0);	
	OLED_ShowString(0,0,"TEMP:",16);   OLED_ShowString(70,0,"C",16); 	OLED_ShowString(110,0,"%",16);
	OLED_ShowString(0,16," SET:",16);
	OLED_ShowString(0,32," LUX:",16);
	OLED_ShowString(0,48," SET:",16);
	OLED_Refresh();
	DHT11_Init();
	Adc_Init();
	KEY_Init();
	LED_Init();
	LED=1;Q1=Q2=BEEP=1;

	while(1)
	{

		if(KEY0==0)//按键设置光照阈值
		{
			gm_buf++;
			if(gm_buf>300) gm_buf=50;
		}
		if(KEY1==0)//按键设置温度阈值
		{
			wendu++;
			if(wendu>99) wendu=1;
		}
		if(KEY2==0)//按键设置湿度阈值
		{
			shidu++;
			if(shidu>99) shidu=20;
		}
		
		gm=(3330-Get_Adc_Average(ADC_Channel_0,10))/10;//读取光敏
		DHT11_Read_TempAndHumidity ( & DHT11_Data );//获取传感器温湿度
		
		OLED_ShowNum(50,0,DHT11_Data .temp_int,2,16);//显示温度
		OLED_ShowNum(90,0,DHT11_Data .humi_int,2,16);//显示湿度
		
		OLED_ShowNum(50,16,wendu,2,16);//显示设置温度
		OLED_ShowNum(90,16,shidu,2,16);//显示设置湿度
		
		OLED_ShowNum(50,32,gm,3,16);//显示光照强度
		
		OLED_ShowNum(50,48,gm_buf,3,16);//显示光敏设置值
			OLED_Refresh();

if(DHT11_Data .temp_int>wendu) //温度大于设置
{
	Q2=0;
	BEEP=0;
}
else
{
	Q2=1;
	BEEP=1;
}

if(DHT11_Data .humi_int<shidu) //湿度小于设置
{
	Q1=0;
}
else
{
	Q1=1;
}

if(gm<gm_buf) LED=0;//光照小于设置
else LED=1;

 下面是原理图文件展示:

百度云盘资料分享链接 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值