【单片机毕业设计】鸡舍环境检测 | 鸭舍环境检测 | 畜牧业环境检测

2024-02-08 03:20

本文主要是介绍【单片机毕业设计】鸡舍环境检测 | 鸭舍环境检测 | 畜牧业环境检测,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    最近设计了一个项目基于单片机的鸡舍环境监控系统,与大家分享一下: 

 

一、基本介绍

项目名:鸡舍环境监控
项目编号:mcuclub-hj-017
单片机类型:STC89C52、STM32F103C8T6
具体功能:
1、通过DHT11检测温湿度,温度过高或湿度过高时,进行通风
2、通过MQ-135配合ADC0832检测鸡舍内有害气体,当气体浓度大于设置最大值,进行通风
3、通过DS1302同步时间,可以设定开灯的时间区
4、通过光敏电阻配合ADC0832检测光照值,当光照值低于设置最小值且在开灯的时间区内,进行补光
5、通过按键可修正时间、设置温湿度上限值、光照最低值、气体最大值、开灯的时间区,还可以手动控制通风和开灯及切换模式
6、通过显示屏显示测量数据
扩展功能:通过蓝牙模块将测量数据发送到手机端,并可以控制通风和开灯及切换模式

二、51实物图

单片机型号:STC89C52

板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本上为插针式,个别降压芯片会使用贴片式。

供电接口:TYPE-C

三、51仿真图

仿真软件版本:proteus8.9

电路连线方式:网络标号连线方式

注意:部分实物元器件仿真中没有,仿真中会用其他工作原理相似的元件代替,这样可能导致实物程序和仿真程序不一样

 四、32实物图

单片机型号:STM32F103C8T6

板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本上为插针式,个别降压芯片会使用贴片式。

供电接口:TYPE-C

 五、原理图

软件版本:AD2013

电路连线方式:网络标号连线方式

注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构原理图

 六、PCB图

由原理图导出,封装很大一部分都是作者自己绘制,不提供封装库,只提供连接好的源文件。中间有一个项目编号,隐藏在单片机底座下,插入单片机后不会看到。

两层板,上下覆铜接地。

七、系统框图

本设计以单片机为核心控制器,加上其他模块一起组成此次设计鸡舍的整个系统,其中包括中控部分、输入部分和输出部分。中控部分采用了单片机控制器,其主要作用是获取输入部分的数据,经过内部处理,逻辑判断,最终控制输出部分。输入由六部分组成,第一部分是光照强度检测模块,通过该模块获取当前的光照强度值;第二部分是(氨气、苯)检测模块,通过该模块获取当前环境中的氨气和苯;第三部分是温湿度检测模块,通过该模块检测当前环境的温度、湿度;第四部分是时钟模块,通过该模块获取当前时间;第五部分是按键模块,通过该模块可以切换界面、设置阈值、切换模式等;第六部分是供电模块,通过该模块可给整个系统进行供电。输出由三部分组成,第一部分是显示模块,通过该模块可以显示监测的数据以及设置的阈值;第二部分继电器模块,控制补光、通风;除此之外还有蓝牙模块,将检测的数据通过蓝牙传输到用户的手机,用户也可以通过手机发送对应的指令对其通风等进行控制。具体系统框图如图所示。

 八、软件设计流程

系统的主流程图如图所示。在主程序中:首先对各个模块进行初始化,随后进入while主循环,在主循环中,首先进入第一个函数按键函数,该函数主要分为两部分,第一部分为调用按键扫描函数获取按键键值,第二部分通过键值进行相应的处理操作,包括切换界面、手动通风、修改时间、设置温度、湿度、光照强度、有害气体浓度、定时时间等;紧接着进入第二个函数监测函数,该函数主要通过调用相应的驱动函数获取测量值并将检测的数据通过蓝牙发送到用户的手机上,用户也可以通过手机发送指令;紧接着进入第三个函数显示函数,该函数显示监测值及阈值;最后进入第四个函数处理函数,/温度/湿度/有害气体大于最大值,通风,当照值低于设置最小值且在开灯的时间区内,进行补光

 九、部分程序展示

软件版本:keil5

逻辑程序和驱动程序分开,分布于main.c和其他.c文件

void Manage_function(void)
{uint time_shi,time_fen;           									//当前时间if(flag_display == 0)																//测量界面{if(flag_mode == 0)																//自动模式{time_shi = ds1302_buf[4];          			 				//获取当前时间time_fen = ds1302_buf[5];  if(time_shi_begin*60+time_fen_begin > time_shi_end*60+time_fen_end)						//开始时间>结束时间{if((time_shi_end*60+time_fen_end <= time_shi*60+time_fen) && (time_shi*60+time_fen < time_shi_begin*60+time_fen_begin))		//当前时间不在设置的时间内flag_time_on = 0;else																																				//否则在设定范围之外flag_time_on = 1;}else if(time_shi_begin*60+time_fen_begin < time_shi_end*60+time_fen_end)			//开始时间<结束时间{if((time_shi_begin*60+time_fen_begin <= time_shi*60+time_fen) && (time_shi*60+time_fen < time_shi_end*60+time_fen_end))		//当前时间在设置的时间内flag_time_on = 1;else																																				//否则在设定范围之外flag_time_on = 0;}if(temp_value > temp_max *10||humi_value > humi_max*10||gas_value > gas_max )	//温度/湿度/有害气体大于最大值,通风{RELAY_TF = 0;}else{RELAY_TF = 1;}if(light_value < light_min && flag_time_on == 1)//当照值低于设置最小值且在开灯的时间区内,进行补光{RELAY_BG = 0;}else	{RELAY_BG = 1;}}}else																	//设置界面{RELAY_BG = 1;RELAY_TF = 1;}
}

这篇关于【单片机毕业设计】鸡舍环境检测 | 鸭舍环境检测 | 畜牧业环境检测的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/689761

相关文章

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本

Windows环境下解决Matplotlib中文字体显示问题的详细教程

《Windows环境下解决Matplotlib中文字体显示问题的详细教程》本文详细介绍了在Windows下解决Matplotlib中文显示问题的方法,包括安装字体、更新缓存、配置文件设置及编码調整,并... 目录引言问题分析解决方案详解1. 检查系统已安装字体2. 手动添加中文字体(以SimHei为例)步骤

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

C++ 检测文件大小和文件传输的方法示例详解

《C++检测文件大小和文件传输的方法示例详解》文章介绍了在C/C++中获取文件大小的三种方法,推荐使用stat()函数,并详细说明了如何设计一次性发送压缩包的结构体及传输流程,包含CRC校验和自动解... 目录检测文件的大小✅ 方法一:使用 stat() 函数(推荐)✅ 用法示例:✅ 方法二:使用 fsee

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

OpenCV实现实时颜色检测的示例

《OpenCV实现实时颜色检测的示例》本文主要介绍了OpenCV实现实时颜色检测的示例,通过HSV色彩空间转换和色调范围判断实现红黄绿蓝颜色检测,包含视频捕捉、区域标记、颜色分析等功能,具有一定的参考... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可