硬件开发_基于物联网的鸽笼养殖系统
一.系统概述
鸽笼饲养自动化系统:
-
核心控制器:系统以STM32单片机为核心控制器,负责数据处理和系统功能的控制。
-
环境参数监测:系统配备DHT11传感器,用于监测鸽笼内的温度和湿度。当温度超出设定阈值时,系统会自动启动风扇以降低温度。同时,MO-135传感器用来监测二氧化碳(CO2)浓度,一旦浓度超过安全阈值,将触发报警,并控制舵机转动以改善通风。
-
食物和水位监测:通过称重传感器实时检测食物的剩余量,当剩余量低于设定值时,系统会自动进行喂食。此外,水位传感器用于监测水的液位,当液位低于设定阈值时,系统也会进行自动加水。
-
数据显示:使用OLED显示屏,实时显示鸽笼内的温湿度、CO2浓度、食物余量和水位等信息,便于用户观察。
-
数据上传与远程控制:系统通过无线通信将收集到的数据上传至监控端,用户可以在监控端设定各项参数的阈值,并进行远程控制操作。
-
设备控制与报警:系统会根据温度阈值自动启动风扇,并根据CO2浓度调整通风窗的开关。采用继电器控制实现自动投喂食物。在环境参数超标时,系统将触发蜂鸣器发出报警声,以提醒用户。

二.电路设计
电路图使用Altium Designer进行设计:
-
核心控制单元:采用STM32F103C8T6单片机作为系统的主控,构建最小系统电路,作为整个电路的核心。
-
温湿度检测:使用DHT11传感器进行温湿度监测,传感器通过one-wire总线与单片机的GPIO引脚连接。
-
压力检测:采用HX711压力模块进行压力测量,它的DAT和SCK数据引脚分别与单片机的GPIO引脚相连。
-
CO2浓度检测:使用MQ-135气体传感器监测二氧化碳浓度,将传感器的模拟输出引脚接入单片机的模拟输入引脚。
-
数据显示:通过一块0.96寸的OLED12864显示屏进行信息展示,采用IIC总线与单片机进行通信。
-
水位监测:使用铜制水位感应板的电阻式水位传感器,其模拟输出端连接到单片机的模拟输入端。
-
投喂控制:通过继电器实现自动投喂,继电器的控制输出引脚连接至单片机的GPIO引脚。
-
窗户控制:通过舵机调节窗户的开关,舵机的控制线连接到单片机的GPIO口。
-
数据上传:通过ESP8266-01S模块将监测到的数据上传至上位机,模块通过UART串口与单片机进行通信。
-
报警系统:使用有源蜂鸣器进行报警,蜂鸣器由NPN三极管驱动,以实现声响提醒。

三.程序设计
#include “sys.h”
#include “delay.h”
#include “adc.h”
#include “math.h”
#include “key.h”
#include “servor.h”
#include “OLED_I2C.h”
#include “Beep_Led_Relay.h”
#include “Control_Report_To_Police.h”
void BeepBB(u8 OF);
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
delay_init(); //延时函数初始化
TIM4_Init(300,7200);
Adc2_Init();
Servor_GPIO_Config_Time2_Init();
Beep_init(); //PB8
Relay_init(); //PB12-14
Relay_0=0;Relay_1=0;Relay_2=0;//风扇 食物 水
OLED_Init(); //PB6 PB7
while(DHT11_Init()){} //PC15
HX711_InIt();Get_Maopi(); //PB10-11
ALi_ESP8266_GPIO_Init(); //PA2 PA3 PA8
MQTT_Buff_Init();
AliIoT_Parameter_Init();
OLED_CLS();
OLED_ShowCN(0,0,0);OLED_ShowCN(0+16,0,1); OLED_ShowCN(64,0,2);OLED_ShowCN(64+16,0,3);//温度湿度
OLED_ShowStr(0,2,"CO2",2);//CO2
OLED_ShowCN(0,4,4); OLED_ShowCN(0+16,4,5);//食物
OLED_ShowCN(0,6,6); OLED_ShowCN(0+16,6,7);//水量
BeepBB(1);
while(1)
{
OLED_Display_Cotrol(); //显示控制函数
}
}
四.资料内容

24-32-131
更多推荐
所有评论(0)