250-基于stm32单片机多功能智能消毒衣柜(源程序+原理图+元件清单)

        一:功能介绍:

1、系统组成:采用stm32f103c8t6核心板+DHT11温湿度+DS1302时钟模块+LCD1602显示屏+光敏传感器++继电器+风扇+按键+LED
2、通过DHT11传感器采集温湿度,显示到LCD1602上面;
3、通过DS1302时钟模块读取当前时间,显示到LCD1602上面;
4、通过按键设置消毒灯关闭时间,显示到LCD1602上面;
5、当光照检测低于50(阈值程序可调),代表衣柜关闭,自动打开消毒灯进行消毒;
6、当光照检测大于等于50(阈值程序可调),代表衣柜打开,自动关闭消毒灯;
7、当定时的时间到达,自动关闭消毒灯;
8、当湿度大于70(阈值程序可调),自动打开继电器开启风扇换气;

二:实物演示视频

250-基于stm32单片机多功能智能消毒衣柜

三:程序代码展示(采用C语言编写,使用keil5编译,代码有中文注释,新手容易看懂)

 

void DHT1DelayNms(uchar ms)
{       
	int i;
  while(ms--)
	{
		i=2000;
		while(i--);
	}
}

/***延时10us***/
void DHT1DelayNms10us()
{
	int i=20;
  while(i--);
}
/***延时30us***/
void DHT11Delay30us()		//@11.0592MHz
{
	int i=60;
  while(i--);
}

int mm=200;
/********主机发出开始信号*******/
uchar DHT11_Start()           //请结合时序图分析
{
		unsigned char i;
         DHT11_IO_1;
         DHT1DelayNms10us();
         DHT11_IO_0;
         DHT1DelayNms(20);   //保持电平时间大于18ms
         DHT11_IO_1;
				for(i = 0;i<250;i++)
				{
					if( DHT11_ReadBit() == 0 )
					{
					 //判断从机是否发出 80us 的低电平响应信号是否结束
					 mm=200;
					 while( DHT11_ReadBit() == 0 && mm--);
					//判断从机是否发出 80us 的高电平,如发出则进入数据接收状态
											 mm=200;
					 while(DHT11_ReadBit() == 1&& mm--);
					 return 1;
					}
				}
					 return 0;				
				
}
/********DHT11接收一个字节数据*******/
uchar receive_data()
{
         uchar i;
         data_byte=0;
         for(i=0;i<8;i++)
         {
                data_byte<<=1;  
					 mm=200;
                while((!DHT11_ReadBit()&& mm--));//等待50us低电平结束
								DHT11Delay30us();
                if(DHT11_ReadBit()==1)    
                {
									data_byte|=0x1;
									 					 mm=200;
                   while((DHT11_ReadBit()&& mm--));
                }      
								else
								{
												 
								} 
         }
         return data_byte;
}
/********DHT11 receive data*******/
void DHT11_receive( int *h, int *t)
{
	uchar temp;

		uchar Tem_Z,Tem_X,Hum_Z,Hum_X,Check;

		if(DHT11_Start())
		{
			DHT11_IO_1;      //Pulled wait DHT11 response

			//Determine whether to issue a slave 80us high level, if you begin collecting data issued                
			Hum_Z = receive_data();   //采集温度整数部分
			Hum_X = receive_data();   //采集温度小数部分
			Tem_Z = receive_data();   //采集湿度整数部分
			Tem_X = receive_data();   //采集湿度小数部分
			Check = receive_data();   //Collection parity bit
			DHT11_IO_1;
			//校验
				temp = Hum_Z;
				temp +=Hum_X;
				temp +=Tem_Z;	
				temp +=Tem_X;			
				//校验通过
				if( temp == Check )
				{
					*h = Hum_Z;
					*t = Tem_Z;			
				}			

四:原理图文件展示(采用AD(Altium Designer)打开)

 五:实物图展示:

六: 资料清单展示:

资料包百度网盘下载链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电子工程DIY工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值