【单片机毕业设计7-基于stm32c8t6的智能温室大棚系统】

news2025/1/15 16:43:12

【单片机毕业设计7-基于stm32c8t6的智能温室大棚系统】

  • 前言
  • 一、功能介绍
  • 二、硬件部分
  • 三、软件部分
  • 总结


前言

🔥这里是小殷学长,单片机毕业设计篇7基于stm32的智能衣柜系统
🧿创作不易,拒绝白嫖可私

在这里插入图片描述


一、功能介绍

------------------------------------------智能温室大棚-----------------------------------------
1.OLED可实时显示当前空气温湿度,光敏值,土壤湿度,mq135空气质量
2.可通过按键进行空气温湿度上下限阈值修改,土壤湿度阈值和mq135阈值
3.超过阈值蜂鸣器发出警报,并可根据当前温度,湿度的值来进行风扇,水泵,加热片的控制
4 通过蓝牙将当前各个数据发送到手机蓝牙APP上,并可通过蓝牙进行界面切换和参数修改
5.通过语音进行界面切换和参数修改
6通过ESP8266将各个数据上传Onenet云平台进行远程数据显示


🔥 实物展示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

二、硬件部分

下面为该毕设中所用到的相关硬件说明,具体参数不做细节描述

硬件材料

在这里插入图片描述

PCB和原理图

在这里插入图片描述

在这里插入图片描述

三、软件部分

在这里插入图片描述

main.c部分代码

/*****************************************主函数*********************************/
int main(void)
{		
	 unsigned char *dataPtr = NULL;
	 unsigned short timeCount = 0;	//发送间隔变量
   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4	  
	 delay_init();            //延时初始化
	 LED_Init();              // led初始化
	 Relay_Init();             //继电器初始化
	 Buzzer_Init();          //蜂鸣器初始化
	 KEY_Exit_Init();         //按键初始化
	 Init_Usart();            //串口初始化
   bspNTCAdcInit();            //ADC初始化
	 DHT11_Init();            //温湿度初始化
	 TIM3_PWM_Init();         //定时器初始化
	 OLED_Init();			        //初始化OLED  
	 OLED_Clear(0);	          //清屏
	
	 Oled_WIFI();             //显示wifi连接
	 printf("wait wifi connect...\r\n");
#if WIFI
	 ESP8266_Init();					//初始化ESP8266 
	//printf("8266_INIT_END\n");
	 while(OneNet_DevLink())			//接入OneNET
	 delay_ms(500);
	 printf("接入onenet成功");
	 delay_ms(500);
	 OLED_Clear(0);	          //清屏
	 Interface_Init();        //主界面
	 Buzzer_Voice();          //开机蜂鸣器提示
	 Buzzer_Voice();
#endif
	while(1)
	{
		filter_data();                         //数据过滤
		DHT11_Read_Data(&temp,&humi);          //温湿度获取
		Ldr_task();                            //光敏处理
		Interface_Task(work_mode);             //界面显示任务
		Data_Task();                           //数据处理任务
		Logical_Task();                        //逻辑处理任务
		Usart_Task();                          //串口处理任务
		TIM_SetCompare2(TIM3,100-current_duty);	
#if WIFI
		if(++timeCount >= 150)		//时间间隔1s
		{
				OneNet_SendData();//发送数据给onenet	
				//printf("send_data_end\n");
				timeCount = 0;
				
				ESP8266_Clear();
		}	
		dataPtr = ESP8266_GetIPD(0);//获取平台返回的数据
		if(dataPtr != NULL)//如果返回数据不为空
			OneNet_RevPro(dataPtr);//平台返回数据检测		
		delay_ms(10);
		delay_ms(200);
#endif
	}
}

总结

上面为基于stm32f103c8t6的智能大棚系统设计相关的大致介绍,源码,pcb和原理图以及相关文档说明做了详细说明,有需可私

在这里插入图片描述
在这里插入图片描述

🧿创作不易,拒绝白嫖

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1513818.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Sqllab第一关通关笔记

知识点: 明白数值注入和字符注入的区别 数值注入:通过数字运算判断,1/0 1/1 字符注入:通过引号进行判断,奇数个和偶数个单引号进行识别 联合查询:union 或者 union all 需要满足字段数一致&…

基础小白快速入门opencv-------C++ 在opencv的应用以及opencv的下载配置

啥是opencv? OpenCV(开源计算机视觉库 Open Source Computer Vision Library)是一个跨平台的计算机视觉库,最初由Intel开发,现在由一个跨国团队维护。它免费提供给学术和商业用途,并且是用C语言写成的&…

doit,一个非常实用的 Python 库!

更多Python学习内容:ipengtao.com 大家好,今天为大家分享一个非常实用的 Python 库 - doit。 Github地址:https://github.com/pydoit/doit 在软件开发和数据处理过程中,经常会遇到需要执行一系列任务的情况,这些任务可…

华为数通方向HCIP-DataCom H12-821题库(多选题:161-180)

第161题 以下关于IPv6优势的描述,正确的是哪些项? A、底层自身携带安全特性 B、加入了对自动配置地址的支持,能够无状态自动配置地址 C、路由表相比IPv4会更大,寻址更加精确 D、头部格式灵活,具有多个扩展头 【参考答案】ABD 【答案解析】 第162题 在OSPF视图下使用Filt…

做伦敦银要等怎样的价格与行情?

对于不同的伦敦银投资者来说,合适的入市价格和好的行情机会,标准可能并不一样,因为不同人有不同的交易策略、风险偏好和盈利目标。对于喜欢做趋势跟踪的投资者来说,一波明显而持续的上涨或下跌趋势,可能就是最好的行情…

yolov5-v6.0详细解读

yolov5-v6.0详细解读 一、yolov5版本介绍二、网络结构2.1 Backbone特征提取部分2.1.1 ConvBNSiLU模块2.1.2 C3模块2.1.2.1 BottleNeck模块 2.1.3 SPPF模块 2.2 Neck特征融合部分2.2.1 FPN2.2.2 PANet 2.3Head模块 三、目标框回归3.1 yolo标注格式3.2 yolov4目标回归框3.3 yolov…

数据结构-链表(二)

1.两两交换列表中的节点 给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。 输入:head [1,2,3,4] 输出:[2…

框架漏洞Shiroweblogicfastjson || 免杀思路

继续来讲一下我们的框架漏洞,先讲一下Shiro 1.Shiro反序列化 1.原理 Shiro的漏洞形成呢,就是因为存在了RememberMe这样的一个字段 Shiro 框架在处理 "rememberMe" 功能时使用了不安全的反序列化方法,攻击者可以构造恶意序列化数据&#xff0…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的危险物品检测系统(深度学习模型+PySide6界面+训练数据集+Python代码)

摘要:本文深入介绍了一个采用深度学习技术的危险物品识别系统,该系统融合了最新的YOLOv8算法,并对比了YOLOv7、YOLOv6、YOLOv5等早期版本的性能。该系统在处理图像、视频、实时视频流及批量文件时,能够准确识别和分类各种危险物品…

9、组合模式(结构性模式)

组合模式又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构,以一致的方式处理叶子对象以及组合对象,不以层次高低定义类,都是结点类 一、传统组合模式 举例,大学、学院、系,它们…

勾八头歌之数据科学导论—数据预处理

第1关:引言-根深之树不怯风折,泉深之水不会涸竭 第2关:数据清理-查漏补缺 import numpy as np import pandas as pd import matplotlib.pyplot as pltdef student():# Load the CSV file and replace #NAME? with NaNtrain pd.read_csv(Tas…

人工智能的幽默“失误”

人工智能迷惑行为大赏 随着ChatGPT热度的攀升,越来越多的公司也相继推出了自己的AI大模型,如文心一言、通义千问等。各大应用也开始内置AI玩法,如抖音的AI特效~在使用过程中往往会遇到一些问题,让你不得不怀疑&#x…

反向传播 — 简单解释

一、说明 关于反向传播,我有一个精雕细刻的案例计划,但是实现了一半,目前没有顾得上继续充实,就拿论文的叙述这里先起个头,我后面将修改和促进此文的表述质量。 二、生物神经元 大脑是一个由大约100亿个神经元组成的复…

HD_VG_130M数据集预处理

数据集介绍 HD_VG_130M是文生视频常用数据集,其视频来源于油管,可通过该谷歌云盘链接下载官方文件,如下所示,其中metafiles中包含20个json文件,请先将其全部下载到本地,假设保存地址为"E:/HD_VG_130M…

Android Gradle 开发与应用 (六) : 创建buildSrc插件和使用命令行创建Gradle插件

1. 前言 前文中,我们介绍了在Android中,如何基于Gradle 8.2,创建Gradle插件。这篇文章,我们以buildSrc的方式来创建Gradle插件。此外,还介绍一种用Cmd命令行的方式,来创建独立的Gradle插件的方式。 1.1 本…

开源大数据集群部署(十五)Zookeeper集群部署

作者:櫰木 1、集群规划 主机版本角色系统用户hd1.dtstack.com3.7.1followerzookeeperhd2.dtstack.com3.7.1leaderzookeeperhd3.dtstack.com3.7.1followerzookeeper 2、zookeeper kerberos主体创建 在生产中zk服务端和客户端票据可以设置成不通名称或相同名称&am…

钉钉与实在智能达成战略合作,实在Agent助力钉钉AI助理成为“新质生产力”

3月12日,浙江实在智能科技有限公司(简称“实在智能”)与钉钉(中国)信息技术有限公司(简称“钉钉”)签署战略合作协议,达成战略合作伙伴关系。 未来,基于双方创新领先的技…

普乐蛙VR航天体验馆设备VR体验带你登陆月球

周末节假日这款设备人流量chao多!景区?游乐场?电玩城爆滿,小编去了一次可是天天惦记着,学习/竞速/休闲/末日/kongbu,各种题材好过瘾! 亲测不踩雷设备推荐!华夏方舟——VR小白必玩的大…

学习Java的第九天

本章将学习什么是类的无参、带参方法又是什么 一、什么是类的无参方法 类是由一组具有相同属性和共同行为的实体抽象而来。对象执行的操作是通过编写类的方法实现的。显而易见,类的方法是一个功能模块,其作用是“做一件事情”。 1、类的方法必须包括以…

吴恩达机器学习笔记 十七 通过偏差与方差诊断性能 正则化 偏差 方差

高偏差(欠拟合):在训练集上表现得也不好 高方差(过拟合):J_cv要远大于J_train 刚刚好:J_cv和J_train都小 J_cv和J_train与拟合多项式阶数的关系 从一阶到四阶,训练集的误差越来越小…