单片机设计-基于单片机的智能宠物监控设计

本文介绍了采用STM32F103C8T6的宠物管理系统设计,包括硬件电路设计(如DHT11温湿度传感器、LED灯等)、软件编程(freeRTOS多任务处理与底层驱动)及系统执行流程,旨在为宠物提供舒适环境并自动化管理。
摘要由CSDN通过智能技术生成

收藏和点赞,您的关注是我创作的动力

概要

  本设计采用STM32F103C8T6作为主控芯片。系统上电后,根据所需要求设定好温度值,室温传感器DHT11实时测试室内温度,单片机以采样频率(根据需求定)对室温传感器的温度值进行读取,单片机根据读取的温度值与阈值进行比对,如果温度值高于阈值,则打开风扇,实现降温效果;同时定时开启喂水装置,对宠物进行喂水;根据光照的不同,如果光照较弱则打开LED灯进行补光。在程序设计方面,本设计采用了freeRTOS操作系统,采用了多任务方式,增强了单片机处理的实时性。

一、宠物管理系统原理

1宠物管理系统原理架构

在这里插入图片描述

图2-1宠物管理系统原理

  本系统的总体架构包含如下部分:5.0V及3.3V供电部分,主控微处理器STM32F103C8T6,调试功能接口,存储器部分,传感器信息采集部分,串口通信部分,控制执行部分以及扩展接口功能。

2宠物管理系统总体执行流程

  宠物管理系统启动后,根据用户所养宠物的不同设定好温湿度值,以满足宠物对舒适度的需求。
  室温传感器DHT11实时采集室内温度,微处理器以用户所需的采样频率(即每隔多长时间采集一次温湿度值)读取温湿度传感器的温湿度值,并将读取的温湿度值与预设的温湿度值进行比较。如果温度值高于阈值,则打开风扇,以实现给宠物降温效果。
  根据宠物对水量的不同需求,定时开启喂水装置,对宠物进行喂水。
  微控制器采集光敏传感器的数值,并将所读取的光照强度值与所设阈值进行比对,如果光照强度值小于所设阈值,则打开LED灯进行补光。
  在程序设计方面,我们才用了freeRTOS操作系统,采用了多任务处理方式,将温湿度数据采集,定时喂水,光照强度采集等功能都放到任务重执行,任务的调度等都交由操作系统去实现,保证了业务功能执行的实时性和可靠性,同时简化了用户对程序执行过程的管理,极大的方便了用户对程序操作。

二、宠物管理系统的硬件设计

  主要介绍硬件功能的介绍,硬件功能电路实现,对于硬件电路的设计,我们使用的是Altium Designer V10,主要是设计了系统的原理图和PCB版图。对于硬件电路图的设计,主要有以下流程:原理图器件库的建立,PCB器件的封装库的建立,原理图器件的连接, PCB板图的布线,生成BOM表并根据BOM表购买焊接器件,制板,焊接电路板,调试电路板。

宠物管理系统硬件电路功能介绍

  在本节中宠物管理系统的硬件电路主要包含:供电电路,微处理器最小系统,存储电路,光敏传感器电路,TTL-UART转USB电路,SWD调试及外扩电路接口,按键电路等。

三、系统电路设计

设计电路原理图

在这里插入图片描述
在这里插入图片描述

PCB板设计图

在这里插入图片描述

附录C 程序

#include "bsp_adc.h"

app_adcType a_adcType;

uint32_t app_adcAverage(app_adcType * a_adcType)
{
   
	uint8_t adc_cnt = 0;
	
	for(adc_cnt=0; adc_cnt<ADC_SUM_NUM; adc_cnt++)
	{
   
		a_adcType->adc_sum += a_adcType->adc_dmaBuff[adc_cnt];
	}
	a_adcType->adc_average = a_adcType->adc_sum / ADC_SUM_NUM;
	a_adcType->adc_sum = 0;
	
	return a_adcType->adc_average;
}
void app_adcAverage(app_adcType * a_adcType)
{
   
	uint8_t adc_cnt = 0;
	
	for(adc_cnt=0; adc_cnt<ADC_TOTAL_NUM-1;)
	{
   
		a_adcType->adc_sum2 += a_adcType->adc_dmaBuff[adc_cnt++];
		a_adcType->adc_sum4 += a_adcType->adc_dmaBuff[adc_cnt++];
	}
	a_adcType->adc_average2 = a_adcType->adc_sum2 / ADC_SUM_NUM;
	a_adcType->adc_average4 = a_adcType->adc_sum4 / ADC_SUM_NUM;
	a_adcType->a
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值