本人主要分享自己做项目的经验和,以下的由本人查资料自己整理而来,很乐意和有兴趣的小伙伴一起分享一下小项目的经验总结,同时如果有什么说的不对的地方可以评论出来,我尽可能快的回复大家。(如 果 感 兴 趣 的 可 以 关 注 我 之 后 还 会 继 续 更 新 关 于 3 2 的 一 些 小 项 目 , 谢 谢 大 家 !!!!)
注:文 章 末 尾 有 完 整 的 代 码 !!!!!!!!!
智能宠物投喂系统的设计越来越受到宠物主的关注,尤其是在现代生活节奏加快的背景下,繁忙的工作常常使得宠物主无法按时喂食宠物。基于STM32F103C8T6的智能宠物投喂系统,能够通过定时、远程控制等方式实现对宠物的自动投喂,提升宠物的生活质量,同时减轻宠物主的负担。
该投喂系统通过手机蓝牙控制分为自动投喂模式和手动投喂模式,根据温湿度传感器和光照传感器来判断是否需要进行投喂。
STATE:状态输出引脚。未连接时,则为低电平。连接成功时,则为高电平。可以在程序中作指示引脚使用;
RXD:串口接收引脚。接单片机的 TX 引脚(如果是5V MCU,需串联一个 220R 电阻);
TXD:串口发送引脚。接单片机的 RX 引脚;
GND:接地电源;
VCC:输入 3.2~6V 的电源(注意,上面一层邮票口的模块不能接 5V 的电源,需要底板降压至 3.3V);
KEY:主机用于清除配对的从机地址记忆(需要拉高电平 200ms 以上)
main.c代码
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "dht11.h"
#include "oled.h"
#include "Server.h"
#include "exti.h"
#include "key.h"
#include "stdio.h"
unsigned short phasecw[4] ={0x0800,0x0400,0x0040,0x0020};
unsigned short phaseccw[4]={0x0020,0x0040,0x0400,0x0800};
void Moto_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_10 | GPIO_Pin_11 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStructure);
GPIO_ResetBits(GPIOB,GPIO_Pin_5 | GPIO_Pin_6 |GPIO_Pin_10 |GPIO_Pin_11);
}
void MotoRcw(void)
{
int i;
for(i=0;i<4;i++)
{
GPIO_Write(GPIOB,phasecw[i]);
delay_ms(3);
}
}
void MotoRccw(void)
{
int i;
for(i=0;i<4;i++)
{
GPIO_Write(GPIOB,phaseccw[i]);
delay_ms(3);
}
}
void MotorStop(void)
{
GPIO_Write(GPIOB,0x0000);
}
void Motor_Ctrl_Direction_Angle(int direction, int angle)
{
u16 j;
if(direction == 1)
{
for(j=0;j<64*angle/45;j++)
{
MotoRccw();
}
MotorStop();
}
else
{
for(j=0;j<64*angle/45;j++)
{
MotoRcw();
}
MotorStop();
}
}
int main(void)
{
u8 temperature=0;
u8 humidity=0;
extern u8 foodnum;
extern int auto_flag;
delay_init();
uart_init(9600);
LED_Init();
TIM5_PWM_Init(9999,143);
DHT11_Init();
KEY_Init();
EXTIX_Init();
OLED_Init();
OLED_Clear();
Moto_Init();
OLED_ShowString(0,0,"NowHumi: %");
OLED_ShowString(0,2,"NowTemp: C");
OLED_ShowString(0,4,"Foodnum: ");
SetJointAngle(90);
while(1)
{
DHT11_Read_Data(&temperature,&humidity);
KEY_Scan();
OLED_ShowInt(64,2,temperature);
OLED_ShowInt(64,0,humidity);
OLED_ShowInt(64,4,foodnum);
printf("NowHumi %d NowTemp %d Foodnum %d rn",humidity,temperature,foodnum);
delay_ms(50);
}
}
如 果喜 欢 就 加个 关注 吧, 每 天 不 定时 更 新 一 些 小 项 目! !!!!!!!!!
相关知识
基于stm32智能图像宠物投喂喂养物联网单片机软硬件设计毕业生系统
基于STM32的宠物远程投喂和监测系统设计
让爱宠不再饿肚子:基于51单片机的定时宠物投喂自动喂食器
基于STM32的智能宠物看护喂养系统(程序源码+原理图+PCB+Boom表+实物操作说明)
基于STM32的宠物远程投喂和监测系统设计 Design of Embedded Pet Remote Feeding and Monitoringsystem Based on STM32
宠物智能投喂基于物联网技术的系统设计
毕业设计 基于STM32的智能宠物投喂系统(全套资料)
基于STM32的智能宠物监测自动喂养
猫咪网 宠物动物 网页设计 html源码 大作业
基于单片机的智能宠物投喂系统的设计
网址: 【32项目】基于STM32f103c8t6的智能宠物投喂系统(文章末尾有全网最完整的代码) https://m.mcbbbk.com/newsview486280.html
上一篇: 羊毛毡仿真宠物挣钱吗? |
下一篇: STM32宠物烘干箱:定时自动功 |