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

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

相关文章

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. 通过脚本安装验证安装:配置镜像源(可

python获取cmd环境变量值的实现代码

《python获取cmd环境变量值的实现代码》:本文主要介绍在Python中获取命令行(cmd)环境变量的值,可以使用标准库中的os模块,需要的朋友可以参考下... 前言全局说明在执行py过程中,总要使用到系统环境变量一、说明1.1 环境:Windows 11 家庭版 24H2 26100.4061

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

SpringBoot实现多环境配置文件切换

《SpringBoot实现多环境配置文件切换》这篇文章主要为大家详细介绍了如何使用SpringBoot实现多环境配置文件切换功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 示例代码结构2. pom文件3. application文件4. application-dev文

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题

《Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题》:本文主要介绍Ubuntu上手动安装Go环境并解决“可执行文件格式错误”问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录一、前言二、系统架构检测三、卸载旧版 Go四、下载并安装正确版本五、配置环境变量六、验证安装七、常见

Gradle下如何搭建SpringCloud分布式环境

《Gradle下如何搭建SpringCloud分布式环境》:本文主要介绍Gradle下如何搭建SpringCloud分布式环境问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Gradle下搭建SpringCloud分布式环境1.idea配置好gradle2.创建一个空的gr