目录
一、前言
二、项目简介
1.功能详解
2.主要器件
三、原理图设计
四、PCB硬件设计
PCB图
五、程序设计
六、实验效果
七、资料内容
项目分享
一、前言
项目成品图片:
哔哩哔哩视频链接:
https://www.bilibili.com/video/BV19hmMY6ErU/?spm_id_from=333.1387.upload.video_card.click&vd_source=199aed5297a00e80e1faf7e270afe8d7
(资料分享见文末)
二、项目简介
1.功能详解
基于STM32的智能宠物喂食系统(升级版)
功能如下:
- 主控芯片为STM32单片机
- 显示屏显示当前时间、温湿度以及食物重量
- 传感器测量当前食物重量,以实现投放食物和停止喂食
- 可以调节投喂时间和投喂重量
- 每天定点提醒宠物进食
- 可以自动操作也可以手动操作
- 开机显示 时间 温湿度,宠物重量以及当前模式
- 手机APP显示信息并完成控制
2.主要器件
- STM32F103C8T6最小系统板
- DHT11温湿度传感器
- OLED 屏幕(4针IIC)
- 光电红外传感器
- 水位传感器
- HX711称重传感器
- JQ6500语音模块
- 水泵模块
- 步进电机
- ESP8266-01S模块(WIFI)
三、原理图设计
四、PCB硬件设计
PCB图
五、程序设计
int main(void)
{
DelayInit();//系统延时函数初始化
DelayMs(1000);
uart_init(9600);//串口以初始化 波特率设置为9600
ESP8266_Init(); //WIFI模块初始化
LED_Init();
Key_Init();//按键引脚初始化
Start_Mode();//判断启动模式有无APP
motor_io_Init();//步进电机控制脚初始化
DHT11_Init();
TIM2_Int_Init(10000,3600);//输出话定时器 这边用到定时器2作为0.5秒钟中断发生源
TIM_Cmd(TIM2, ENABLE);//开启定时器2
DS1302_init(0x23,0x02,0x18,0x14,0x30,0x30);//时钟模块初始化
//I2C_Configuration();//开启IIC功能
music_play1();
OLED_Init();//OLED屏幕初始化
OLED_CLS();//清屏
Init_HX711pin();
Get_Maopi();
mod = 0;//开机显示开机界面
bluemod=0;
Readflash(set_code,0,20); //读取内部保存数据
DelayMs(10);
if(set_code[19] != 66)//对比内部数据是不是以及被重新覆盖 是的话载入初始化数据
{
OLED_ShowStr(0,0,"===NO FLASH===",2);
Writeflash(0,begin_code,0,20);//写入初始化数据
DelayMs(500);
Readflash(set_code,0,20);//读取写写入后的数据
sprintf(str,"Init System [%2d]",set_code[19]);//显示验证数据
OLED_ShowStr(0,4,(unsigned char *)str,2);
DelayMs(1500);
OLED_CLS();//清屏
LED_Init();
}
while (1)
{
if(mod == 0)//待机模式下
{
Get_Weight();
DS1302_Readtime(); //获取当前日期/时间
}
DHT11_Read_Data();
display();//显示程序
testdata=0;
if(start_mode) //模式判断
esp8266_play();
key();//按键程序
if(run_mod == 0) run();//自由在自动模式下才检测时间
}
}
六、实验效果
七、资料内容