目录
一、前言
项目成品图片:
哔哩哔哩视频链接:
(资料分享见文末)
二、项目简介
1.功能详解
基于STM32的智能宠物喂食系统
功能如下:
- 使用STM32F103C8T6单片机做主控制器。
- 使用OLED屏实时显示宠物窝的温度、湿度,投喂食物次数。
- 使用DHT11检测宠物窝的温湿度。
- 使用光敏电阻检测环境变化情况。
- 使用步进电机控制投食。
- 使用蓝牙模块实现手机通讯,可以使用手机控制投食、开关灯、模式切换
2.主要器件
- STM32F103C8T6最小系统板
- DHT11温湿度传感器
- OLED显示屏(7针SPI协议)
- BT04A蓝牙模块
- 步进电机
- 光敏传感器
- LED灯
三、原理图设计
四、PCB硬件设计
1.PCB图
五、程序设计
int main(void)
{
u8 temperature=0;
u8 humidity=0;
extern u8 foodnum; //设置温度
extern int auto_flag;
delay_init(); //延时函数初始化
uart_init(9600); //串口初始化为9600
LED_Init(); //初始化与LED连接的硬件接口
TIM5_PWM_Init(9999,143);
//TIM4_CH_Init(200);
//SystemInit();
DHT11_Init();
KEY_Init();
EXTIX_Init();
OLED_Init();
OLED_Clear();
//Adc_Init(); //ADC初始化
Moto_Init(); //电机
//delay_init(); //延时函数初始化
OLED_ShowCHinese(0,0,0);
OLED_ShowCHinese(16,0,2);
OLED_ShowString(32,0,": C");
OLED_ShowCHinese(0,2,1);
OLED_ShowCHinese(16,2,2);
OLED_ShowString(32,2,": %");
OLED_ShowCHinese(0,4,3);
OLED_ShowCHinese(16,4,4);
OLED_ShowString(32,4,":");
OLED_ShowCHinese(84,4,5);
// OLED_ShowString(0,2,"NowTemp: C");
// OLED_ShowString(0,4,"Foodnum: ");
SetJointAngle(90);
while(1)
{
DHT11_Read_Data(&temperature,&humidity);
KEY_Scan();//调用按键函数
// SetJointAngle(90);
OLED_ShowInt(64,0,temperature);
OLED_ShowInt(64,2,humidity);
OLED_ShowInt(64,4,foodnum);
printf("温度: %d 湿度: %d 喂食次数: %d \r\n",temperature,humidity,foodnum);
//printf("kcal:%d\r\n",temperature);
delay_ms(1000);
}
}
六、实验效果
七、资料内容