STM32项目分享:智能宠物喂食系统

目录

一、前言

二、项目简介

1.功能详解

2.主要器件

三、原理图设计

四、PCB硬件设计

1.PCB图

五、程序设计

六、实验效果

七、资料内容

项目分享


一、前言

项目成品图片:

哔哩哔哩视频链接:

https://www.bilibili.com/video/BV1zy411z751/?share_source=copy_web&vd_source=097fdeaf6b6ecfed8a9ff7119c32faf2

(资料分享见文末)

二、项目简介

1.功能详解

基于STM32的智能宠物喂食系统

功能如下:

  1. 使用STM32F103C8T6单片机做主控制器。
  2. 使用OLED屏实时显示宠物窝的温度、湿度,投喂食物次数。
  3. 使用DHT11检测宠物窝的温湿度。
  4. 使用光敏电阻检测环境变化情况。
  5. 使用步进电机控制投食。
  6. 使用蓝牙模块实现手机通讯,可以使用手机控制投食、开关灯、模式切换

2.主要器件

  • STM32F103C8T6最小系统板
  • DHT11温湿度传感器
  • OLED显示屏(7针SPI协议)
  • BT04A蓝牙模块
  • 步进电机
  • 光敏传感器
  • LED灯

三、原理图设计

四、PCB硬件设计

1.PCB图

五、程序设计

cpp 复制代码
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);	
	}											    
}	

六、实验效果

七、资料内容

项目分享

相关推荐
腾飞的信仰41 分钟前
单片机,主循环和中断资源访问冲突的案例
单片机·嵌入式硬件
花落已飘1 小时前
STM32 Bootloader:使用文件头加载并启动应用程序
stm32·bootloader
猿来不是梦2 小时前
RT_Thread内核源码分析(五)——内存管理@小堆内存管理算法
stm32·单片机·算法·系统架构·rt_thread操作系统
JXNL@3 小时前
STM32外设学习之USB
stm32·嵌入式硬件·学习
aerror9 小时前
使用mpu6500/6050, PID,互补滤波实现一个简单的飞行自稳控制系统
单片机·飞控
yifa2016040411 小时前
STM32、Arduino和51单片机
stm32·学习·51单片机
tyl211013 小时前
凌科芯安国产安全MCU简介
单片机·嵌入式硬件·安全
郦77714 小时前
国产入门级32位单片机PY32F002A开发板
单片机·嵌入式硬件
passer__jw7671 天前
【51单片机】6. 定时器、按键切换流水灯&时钟Demo
单片机·51单片机
Wendy_robot1 天前
【零基础勇闯嵌入式岗】从单片机低功耗中获得的启发
c++·单片机·嵌入式硬件