摘要
本文设计了一种基于STC89C52单片机的宠物智能定时喂食投食系统。该系统通过MQ-2烟雾检测模块检测喂食器内的食物余量,结合DS1302时钟芯片实现定时喂食功能。同时,系统通过WT588D语音模块提供语音提示,并通过按键进行时间设置和校准。通过Protues仿真验证了系统的可行性和稳定性。
关键词:STC89C52单片机;宠物喂食;定时投食;MQ-2烟雾检测;DS1302;WT588D;Protues仿真
一、引言
随着人们生活水平的提高,宠物已经成为许多家庭的重要成员。然而,由于工作繁忙或其他原因,许多宠物主人在喂食方面存在困难。为了解决这一问题,本文设计了一种基于STC89C52单片机的宠物智能定时喂食投食系统。该系统能够根据预设的时间段自动打开继电器,实现定时喂食功能,并通过MQ-2烟雾检测模块检测食物余量,确保宠物的健康饮食。
二、系统设计方案
本系统主要由STC89C52单片机、MQ-2烟雾检测模块、DS1302时钟芯片、WT588D语音模块、继电器和按键组成。其中,STC89C52单片机作为系统的核心控制器,负责接收各模块的信号并控制继电器的开关;MQ-2烟雾检测模块用于检测喂食器内的食物余量;DS1302时钟芯片提供时间信息;WT588D语音模块用于提供语音提示;继电器用于控制喂食器的开关;按键用于设置和校准时间。
三、硬件设计
STC89C52单片机STC89C52是一款常用的8位单片机,具有高性能、低功耗的特点。在本系统中,它负责接收各模块的信号,并根据预设的时间段控制继电器的开关。
MQ-2烟雾检测模块MQ-2是一款常用的烟雾检测传感器,对烟雾有良好的灵敏度。在本系统中,它用于检测喂食器内的食物余量,当食物不足时发出信号,提醒主人添加食物。
DS1302时钟芯片DS1302是一款高性能、低功耗的实时时钟芯片,具有掉电时钟仍在走的特点。在本系统中,它提供时间信息,确保喂食时间的准确性。
WT588D语音模块WT588D是一款高性能的语音模块,支持多种语音格式。在本系统中,它用于提供语音提示,例如提醒主人添加食物或喂食时间已到等。
继电器与按键继电器用于控制喂食器的开关;按键用于设置和校准时间。
四、软件设计
软件设计主要包括单片机初始化、时间设置与校准、食物余量检测、定时喂食控制等部分。单片机首先进行初始化设置,然后通过按键设置和校准时间。在预设的时间段内,单片机根据DS1302提供的时间信息控制继电器的开关,实现定时喂食功能。同时,MQ-2烟雾检测模块不断检测食物余量,当食物不足时发出信号,单片机接收到信号后通过WT588D语音模块发出提示。
五、Protues仿真
利用Protues软件对系统进行仿真测试。在仿真环境中搭建系统的电路模型,设置各模块的工作参数和初始状态。通过模拟按键操作设置时间,观察继电器的开关状态以及WT588D语音模块的提示情况。通过调整MQ-2烟雾检测模块的输入信号,验证食物余量检测功能的准确性。通过多次仿真测试,验证系统的稳定性和可靠性。
六、结论
本文设计了一种基于STC89C52单片机的宠物智能定时喂食投食系统。通过硬件和软件的设计实现了定时喂食、食物余量检测、语音提示等功能。通过Protues仿真验证了系统的可行性和稳定性。该系统具有结构简单、成本低廉、操作方便等优点,可广泛应用于宠物喂食领域。
#include <reg52.h>
#include"LCD1602.h"//液晶
#include" 1302.h"//DS1302时钟芯片
#include "EepRom.h"
#include"wt588.c" //语音播报
#define uchar unsigned char
#define uint unsigned int
//-------------------------------------------硬件定义
sbit key1=P3^3;//按键
sbit key2=P3^4;
sbit key3=P3^5;
sbit key4=P3^6;
sbit key5=P3^7;
//---------------------------------------> Dis variable
bit ShanShuo=0; //闪烁
//------------------------------》时间
uchar state=0 ;
///----步进电机--------------------------------------------
unsigned char code gaofz[]= //正转数据高四位
{0x10,0x30,0x20,0x60,0x40,0xC0,0x80,0x90};
unsigned char code gaozz[]= //反转数据 高四位
{0x90,0x80,0xC0,0x40,0x60,0x20,0x30,0x10};
#define QuanShu 2050
#define DelayS 1
uchar FangXiang = 0; //电机转动方向 = 0表示关但是已经关上了所以不动
unsigned char loop = 0;
//---定时------------------------------------------
uchar ding_shi[4] = {0};//定时小时存储
uchar ding_fen[4] ={0};//定时分钟存储
bit kai_guan1= 0; //开关定时标志位
bit kai_guan2= 0;
bit kai_guan3= 0;
bit kai_guan4= 0;
bit shou_dongF = 0;
uchar i = 0;
bit only_flag=0; //只允许播报一次
//---函数初始化------------------------------------------------
void Timer0Init(void);//50毫秒@11.0592MHz
void Read_Memory();//读存储
void Key_Dispose(); //按键处理函数
void Display();//显示函数
void BuJinDianJi() ; //步进电机驱动函数
/****语音播报 显示有冲突**/
//********************************************************************************************
void main() //主函数
{
Timer0Init();
LCD1602_cls(); //定时器初始化以及液晶初始化
Read_Memory();//读存储
while(1)
{
Key_Dispose();
Display();//显示函数
if(!state)read_time1(); //读取时间函数
if(FangXiang==0) only_flag=1;
else if(FangXiang==1)
{
if(only_flag==1)
{
only_flag=0;//清零 只允许播报一次
Send_threelines(0); //语音播报 吃饭了
}
}
BuJinDianJi();
}
}
//==========================================延时函数
void Delay(uint delayi)//短延时函数
{
while (delayi)
{
delayi--;
time_data[0]=ds1302read(0x81);
time_data_1[0]=time_data[0]/16*10+time_data[0]%16;
time_data[1]=ds1302read(0x83);
time_data_1[1]=time_data[1]/16*10+time_data[1]%16;
LCD1602_write(0,0xC0+3);
LCD1602_write(1,0x30+time_data_1[1]/10);
LCD1602_write(1,0x30+time_data_1[1]%10);
LCD1602_write(1,':');
LCD1602_write(1,0x30+time_data_1[0]/10);
LCD1602_write(1,0x30+time_data_1[0]%10);
}
}
//===============================================步进电机
bit jishi_J = 0;
void BuJinDianJi() //步进电机驱动函数
{
static uint bujin1i = 0 ;
if(FangXiang==0)
{
P1&=0x0F;
}
else if(FangXiang==1)
{
for(; bujin1i<QuanShu; bujin1i++)
{
P1&=0x0F; //步进电机用到的四个口清零
P1|=gaozz[loop]; //给电机的四个口中有1为1,其他口数值不变
loop=(loop+1)%8; //循环加,Loop变化范围是 0 - 7,这样结合上一句话就可循环将转动数据送给P2
Delay(DelayS);//; //短延时一下,调节这个短延时,可以控制步进电机的转动速度,越小就越快
}
jishi_J = 1;
}
部分代码....
资料下载地址:
https://docs.qq.com/doc/p/ffc421513a628b30450ae742547c0b850456d7c8
相关知识
1912基于单片机宠物智能定时喂食投食系统设计(仿真 、程序、原理图)【毕设课设】
基于单片机的智能宠物喂食器设计
单片机毕设分享 基于STM32的智能宠物投喂系统
基于STM32的智能宠物看护喂养系统(程序源码+原理图+PCB+Boom表+实物操作说明)
通信工程毕设 单片机(stm32)远程智能宠物喂养系统
最新毕设 基于STM32的智能宠物投喂系统(全套资料)
电子信息毕设 基于STM32的智能宠物投喂系统(全套资料)
stm32毕设 基于STM32的智能宠物投喂系统(全套资料)
基于单片机的宠物喂食系统设计(32+蓝牙+WIFI版)
毕设项目:宠物之家管理系统(JSP+java+springmvc+mysql+MyBatis)
网址: 1912基于单片机宠物智能定时喂食投食系统设计(仿真 、程序、原理图)【毕设课设】 https://m.mcbbbk.com/newsview269093.html
上一篇: [1173]基于JAVA的宠物仪 |
下一篇: 主人给宠物测试智力,土拨鼠,松鼠 |