楼主: 松果儿4823
39 0

[经济学教育] 【单片机毕业设计】【dz-898】基于单片机的养殖场控制系统的设计 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

80%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
30 点
帖子
2
精华
0
在线时间
0 小时
注册时间
2018-4-2
最后登录
2018-4-2

楼主
松果儿4823 发表于 昨天 17:55 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

一、功能概述

项目名称:基于单片机的养殖场环境控制系统设计

项目标识码:dz-898

主控芯片型号:STM32F103C8T6

系统具备以下核心功能:

  • 利用DHT11传感器实时采集环境中的温度与湿度数据。当检测值超过设定上限时,自动启动通风装置;若湿度低于下限,则触发加湿操作,并同步启动声光报警提示。
  • 采用GP2Y10粉尘传感器监测空气中的颗粒物浓度。一旦浓度超出预设阈值,系统将启动排风设备并激活声光报警机制。
  • 配备光照强度检测模块,用于持续监控养殖区域的光照水平。
  • 集成实时时钟模块,支持用户设定定时任务,到达指定时间后自动执行喂食和供水操作。
  • 根据光照检测结果,若光线强度低于设定最低值,系统会自动开启补光灯以维持适宜光照条件。
  • 通过按键模块实现参数设置功能,可调整各项阈值,控制通风、补光、喂水及喂食等执行机构的工作状态。
  • OLED显示屏用于实时展示各类监测数据及系统运行状态信息。

二、系统结构框图

设计使用VISIO软件绘制整体系统架构图。

本系统以STM32F103C8T6作为主控单元,协同多个功能模块共同完成对养殖环境的智能调控。整个系统分为中央处理单元、输入模块和输出执行模块三大组成部分。

中央控制器:选用STM32F103C8T6单片机,负责接收来自各传感器的数据,进行逻辑分析与判断,并据此发出控制指令驱动外部设备动作。

输入部分由六个模块构成:

  1. 温湿度传感模块:用于采集当前环境的温度与湿度信息。
  2. 粉尘浓度检测模块:实时监测空气中粉尘含量。
  3. 光照强度检测模块:获取环境光照强度数据。
  4. 时钟模块:提供准确的时间基准,支持定时控制功能。
  5. 按键输入模块:实现界面切换、参数设置及模式选择等功能。
  6. 电源供电模块:为整个系统提供稳定电力支持。

输出部分包括三个主要模块:

  1. 显示模块:采用OLED屏幕,用于呈现监测数据及配置界面。
  2. 继电器控制模块:包含五个独立继电器,分别控制风扇、加湿器、补光灯、喂水装置和喂食装置的启停。
  3. 声光报警模块:在环境参数异常时发出视觉与听觉警报信号。

三、实物展示

主控芯片:STM32F103C8T6

PCB板特征:绿色双层电路板,厚度为1.2mm,上下层均覆铜并接地,提升抗干扰能力。大部分元器件采用直插封装形式,仅个别降压芯片使用贴片工艺。

供电接口类型:Type-C 接口,便于连接与供电。

四、电路原理图说明

设计软件版本:Altium Designer 2013(AD2013)

连线方式:采用网络标号方式进行电气连接。

注意事项:所提供的原理图为各功能模块的引脚连接示意图,并非模块内部详细电路结构图。

五、PCB布局图说明

PCB图由原理图导入生成,大部分元器件封装由设计者自行绘制,不单独提供封装库文件,仅提供完整连接的源工程文件。

电路板为双层结构,顶层与底层均进行覆铜处理并连接地线,增强系统稳定性与抗干扰性能。

板上设有项目编号标识,位置隐藏于单片机底座下方,安装单片机后该编号不可见。

六、程序代码展示

开发环境:Keil uVision5(Keil5)

软件架构上将逻辑控制程序与硬件驱动程序分离,分别存放于main.c及其他对应的.c源文件中,提高代码可读性与维护性。

/**********************************
函数名:按键函数
传参值:无
返回值:无
**********************************/
void Key_Function(void)
{
	key_num = Chiclet_Keyboard_Scan(0);		//按键扫描,获取键值
	if(key_num != 0)								      //有按键按下
	{
		switch(key_num)
		{
			case 1:								            //按键1:切换界面
				display_num++;
				if(display_num >= 12)
				{
					display_num = 0;
				}
	
				Oled_Clear_All();					      //清屏
			break;

			case 2:											      //按键2
				switch(display_num)
				{
					case 0:									      //界面0:选择继电器
						flag_relay++;
						if(flag_relay >= 6)
						{
							flag_relay = 0;
						}
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:毕业设计 控制系统 单片机 养殖场 function

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2025-12-5 21:13