【单片机毕业设计】【mcuclub-dz-1100】基于单片机的智能宠物喂食器

在这里插入代码片
最近设计了一个项目基于单片机的智能宠物喂食器,与大家分享一下:

一、基本介绍

项目名:基于单片机的智能宠物喂食器
项目编号:mcuclub-dz-1100
单片机类型:STM32F103C8T6
具体功能:
1、通过时钟模块获取当前的时间,可以设置喂食的时间(三组,,有使能标志);
2、通过通过HX711监测当前实物的重量,喂食时间到投喂食物,重量大于最大值停止投喂,然后语音提醒宠物进食,
3、通过水位监测模块监测当前的水位,监测到水位小于最小值,声光报警提醒自动进行加水,直到水位大于最大值;
4、通过DHT11监测当前环境温湿度,监测到温度或者湿度大于最大值自动打开通风风扇;
5、通过人体热释电监测当前环境是否有宠物,喂食时间到达监测到宠物取消语音提醒;
3、通过按键可以设置喂食时间、重量、水位、温湿度阈值;可以控制各器件
4、通过显示屏显示数据;
6、通过WiFi模块将测量数据发送到手机端,手机可以设置喂食时间、设置参数,控制各器件

二、32实物图

单片机型号:STM32F103C8T6

板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本上为插针式,个别降压芯片会使用贴片式。

供电接口:TYPE-C
请添加图片描述

三、原理图

软件版本:AD2013

电路连线方式:网络标号连线方式

注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构原理图
请添加图片描述

四、PCB图

由原理图导出,封装很大一部分都是作者自己绘制,不提供封装库,只提供连接好的源文件。中间有一个项目编号,隐藏在单片机底座下,插入单片机后不会看到。

两层板,上下覆铜接地。
请添加图片描述

五、系统框图

此次设计是基于STM32F103C8T6单片机的基于STM32的智能宠物喂食器的设计;该设计主要可以分为三部分:输入、输出和中控。中控部分采用STM32F103C8T6单片机作为主控芯片,主要是对输入进行处理然后控制输出;
输入又可以分为七部分:第一部分是温度检测模块,通过此模块获取温湿度值;第二部分是水位检测模块,由此模块可以检测当前环境的水位值。第三部分是重量检测模块,由此模块可以获取当前重量值。第四部分是红外检测模块,由此模块可以获取当前是否有宠物;第五部分是时钟模块,由此模块可以获取当的时间;第六部分是按键模块,通过按键可以设置阈值以及控制继电器的开关;第七部分是供电电路,主要是用来对整个系统进行供电;
输出主要可以分为四个部分:第一部分是显示部分,显示当前时间,温度,湿度,水位,重量;第二部分是声光报警模块:当水位小于最小值进行报警;第三部分是语音播报模块:当重量检测模块由最小值到达最大值进行语音播报;第四部分是继电器模块:通过继电器进行投喂、加水和通风
除此之外WIFI模块可以做为输入和输出:获取到当前的温度,湿度,水位以及重量还可以设置阈值和控制继电器的开关。
请添加图片描述

六、软件设计流程

请添加图片描述

七、部分程序展示

软件版本:keil5

逻辑程序和驱动程序分开,分布于main.c和其他.c文件

/**********************************
函数名:处理函数
传参值:无
返回值:无
**********************************/
void Manage_Function(void)
{
	if(display_num == 0)										//测量界面
	{
		if(temp_value > temp_max*10 || humi_value > humi_max*10)		//温度或湿度大于最大值打开通风
		{
			RELAY_TF = 1;
			
			flag_tf = 0;
		}
		else																	//否则关闭通风
		{
			if(flag_tf == 0)
			{
				RELAY_TF = 0;
			}
		}
		
		if((ds1302_buf[4] == time_hour_1 && ds1302_buf[5] == time_min_1 && ds1302_buf[6] == 0 && flag_time_1 == 1) ||
			 (ds1302_buf[4] == time_hour_2 && ds1302_buf[5] == time_min_2 && ds1302_buf[6] == 0 && flag_time_2 == 1) ||
			 (ds1302_buf[4] == time_hour_3 && ds1302_buf[5] == time_min_3 && ds1302_buf[6] == 0 && flag_time_3 == 1))	  //达到定时时间打开投喂
		{
			flag_tw = 1;
		}
		
		if(flag_tw == 1)											//当投喂标志位为 1
		{
			if(weight_value < weight_max)				//重量小于最小值 打开投喂
			{
				RELAY_TW = 1;
			}
			else
			{
				flag_tw = 0;
				RELAY_TW = 0;

				flag_bb = 1;
			}
		}
		else																	//否则关闭投喂开始语音播报
		{
			if(RELAY_TW == 1)
			{
				RELAY_TW = 0;

				flag_bb = 1;
			}
		}

		if(flag_bb == 1)
		{
			if(time_num % 80 == 0)
			{
				Huart2_Send_Str("  过来吃饭了");
			}
		}
				
		if(RT == 0)														//当人体热释电触发关闭播报
		{
			flag_bb = 0;
		}
		
		if(water_value < water_min)						//水位小于最小值打开加水
		{
			RELAY_JS = 1;
			
			if(time_num % 20 == 0)
			{
				ALERT = !ALERT;
			}
		}
		else if(water_value > water_max)			//水位大于最大值关闭加水
		{
			RELAY_JS = 0;	
			
			ALERT = 0;
		}
	}
	else																		//设置界面
	{
		ALERT = 0;
		RELAY_TF = 0;
		RELAY_TW = 0;
		RELAY_JS = 0;	
	}	
	
	if(flag_finish_5s == 1)									//5秒上传一次数据
  {
    flag_begin_5s = 0;
    Aliyun_Send_Data();
    flag_begin_5s = 1;
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

单片机俱乐部--官方

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

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

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

打赏作者

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

抵扣说明:

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

余额充值