一:功能介绍:

1、系统组成:采用stm32f103c8t6核心板+DHT11温湿度+DS1302时钟模块+LCD1602显示屏+蜂鸣器+继电器+按键
2、通过DHT11传感器采集温湿度,显示到LCD1602上面;
3、通过DS1302时钟模块读取当前时间,显示到LCD1602上面;
4、通过按键设置定时喂食时间,显示到LCD1602上面;
5、当喂食时间到达,打开继电器进行喂食操作;

二:实物演示视频

254-基于stm32单片机多功能宠物定时自动喂食器

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

void Display(void)
{
	char xxx=0,yyy=0;
	//T1 温度
	WrByte1602(0,0,'T'); //.
	WrByte1602(0,1,'='); //.		
	WrByte1602(0,2,AsciiCode[wendu%100/10]);
	WrByte1602(0,3,AsciiCode[wendu%10]);
	WrByte1602(0,4,' ');	
	//T2 湿度
	WrByte1602(0,8,'H'); //.
	WrByte1602(0,9,'='); //.		
	WrByte1602(0,10,AsciiCode[shidu%100/10]);
	WrByte1602(0,11,AsciiCode[shidu%10]);
	WrByte1602(0,12,' ');		


	xxx=0;yyy=1;

	
	WrByte1602(yyy,xxx++,AsciiCode[shi%100/10]);//时间显示
	WrByte1602(yyy,xxx++,AsciiCode[shi%10]);
	WrByte1602(yyy,xxx++,':');		

	WrByte1602(yyy,xxx++,AsciiCode[fen%100/10]);
	WrByte1602(yyy,xxx++,AsciiCode[fen%10]);
	WrByte1602(yyy,xxx++,':');	
	WrByte1602(yyy,xxx++,AsciiCode[miao%100/10]);
	WrByte1602(yyy,xxx++,AsciiCode[miao%10]);




	WrByte1602(yyy,xxx++,' ');	                  //定时显示
	WrByte1602(yyy,xxx++,'T');		
	WrByte1602(yyy,xxx++,AsciiCode[xiaoshi%100/10]);
	WrByte1602(yyy,xxx++,AsciiCode[xiaoshi%10]);
	WrByte1602(yyy,xxx++,':');		

	WrByte1602(yyy,xxx++,AsciiCode[fenzhong%100/10]);
	WrByte1602(yyy,xxx++,AsciiCode[fenzhong%10]);
	WrByte1602(yyy,xxx++,' ');	
	
}

int main(void)
{	
	//时钟配置
	SystemInit();		
	SystemCoreClockUpdate();
  //引脚配置
	GPIO_Configuration();
	//LCD1602初始化
	Init1602();
	NVICConfig();
	//RCC时钟开启
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
	DS1302_Init();
	delay_ms(300);
	//DS1302_Write_Time();	
	DS1302_Get_Time(time_data);	//读取时间	
		shi=time_data[9]*10+time_data[10];
		fen=time_data[11]*10+time_data[12];
		miao=time_data[13]*10+time_data[14];	
	xiaoshi=shi;
	fenzhong = fen+1;
	
	while (1)
	{		

		delay_ms(10);
	    		

				 //读取室内温湿度
				 DHT11_receive(&shidu,&wendu);
					DS1302_Get_Time(time_data);	//读取时间	
		shi=time_data[9]*10+time_data[10];
		fen=time_data[11]*10+time_data[12];
		miao=time_data[13]*10+time_data[14];			
         //显示全部参数
				 Display(); 
		
				 //按键扫描
				 anjiansaomiao();
     //定时时间到
     if(xiaoshi==shi && fenzhong==fen )
		 {
			 PBout(10)=0;//继电器LED灯亮 开始喂食
		 }
		 else  PBout(10)=1;//继电器LED灯灭 喂食关闭
		 
			if(wendu>35)   PBout(11)=0;//环境温度过高  蜂鸣器提醒
			else PBout(11)=1;
	}
}				  

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

 五:实物图展示:

六: 资料清单展示:

资料包百度网盘下载链接

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐