收藏和点赞,您的关注是我创作的动力
概要
本设计采用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