【单片机毕业设计选题24038】-基于STM32的木材厂环境监测系统

news2024/12/24 8:31:25

系统功能:

系统上电后根据采集到的传感器值自动控制,温度过高后自动开启风扇通风降温,湿度过

高后自动开启风扇除湿,光照过低后自动开启补光,雨量过高蜂鸣器报警,火焰传感器检

测到火灾后蜂鸣器报警并打开水泵灭火。

主要功能模块原理图:

电源时钟烧录接口:

单片机和按键输入电路:

传感器采集电路:

继电器控制电路:

资料获取地址

系统主要功能模块代码

初始化代码:

  /* USER CODE BEGIN 1 */



  /* USER CODE END 1 */



  /* MCU Configuration--------------------------------------------------------*/



  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */

  HAL_Init();



  /* USER CODE BEGIN Init */

    InitVar();

  /* USER CODE END Init */



  /* Configure the system clock */

  SystemClock_Config();



  /* USER CODE BEGIN SysInit */



  /* USER CODE END SysInit */



  /* Initialize all configured peripherals */

  MX_GPIO_Init();

  MX_USART1_UART_Init();

  MX_ADC1_Init();

  /* USER CODE BEGIN 2 */

//在HAL库初始化串口1后调用

    HAL_Delay(100);

    SetUart1RxToInput();

    HAL_Delay(50);

//uart1打开接收中断

    HAL_UART_Receive_IT(&huart1, (uint8_t*)&uart1RecBuff, 1);

    InitOled();

    InitOledDisp();

    ResetDHT11();



  /* USER CODE END 2 */

系统控制代码:

//系统信息更新

void SystemControl(void)

{

    static uint8_t updateCnt = 0;

   

    updateCnt++;   

    if(updateCnt>=SYSTEM_UPDATE_INTER)

    {

        updateCnt = 0;

        if(DHT11ReadData()==0)  //DHT11温湿度读取OK

        {

            ;

        }

        UpdateBleData();

    }

    ReadSensorVal();

}

蓝牙上报系统信息:

//更新BLE数据

void UpdateBleData(void)

{

    printf("Temp:%02d Humi:%02d\r\n", DHT11_Data.temp_int, DHT11_Data.humi_int);      

    printf("Light:%04d Water:%04d\r\n", getLightVal, getRainVal);    

//系统状态

    if(fireState==true)

    {

        printf("Fire:Alarm\r\n");

    }

    else

    {

        printf("Fire:Normal\r\n");

    }

}

此设计提供的资料包含原理图PCB(包含PDF,AD,立创EDA三个版本),源代码,系统框图,主程序流程图,物料清单(包含使用到的器件手册),功能操作说明等。

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

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

相关文章

(漏洞检查项) | 任意文件包含漏洞 file-include

(漏洞检查项)|任意文件包含漏洞 file-include 漏洞场景 1.含有动态包含语句 2.有类似于文件读取的url 漏洞描述 攻击者可以利用任意文件包含漏洞,读取任意文件,对服务器造成危害。 程序开发人员为了代码的灵活性,常常会将包含文件的路径…

c++重载(运算符)

1)C入门级小知识,分享给将要学习或者正在学习C开发的同学。 2)内容属于原创,若转载,请说明出处。 3)提供相关问题有偿答疑和支持。 对于系统的所有操作符,一般情况下,只支持基本数…

算法:链表

目录 链表的技巧和操作总结 常用技巧: 链表中的常用操作 题目一:反转一个单链表 题目二:链表的中间结点 题目三:返回倒数第k个结点 题目四:合并两个有序链表 题目五:移除链表元素 题目六&#xff…

【快速排序】| 详解快速排序 力扣912

🎗️ 主页:小夜时雨 🎗️专栏:快速排序 🎗️如何活着,是我找寻的方向 目录 1. 题目解析2. 代码 1. 题目解析 题目链接: https://leetcode.cn/problems/sort-an-array/ 我们上道题讲过快速排序的核心代码&a…

三元表达式解析器

题意:其实本质上就是三目运算 ,只不过跟我们以往的三目运算不同的是,这一系列的运算可以把T 和 F 都参与到运算中。设x5 表达式 x>2?T:F 最终返回T. 思路: 1.从后往前遍历字符数组 2.如果遇到的是 非?和 非&…

[C++][设计模式][中介者模式]详细讲解

目录 1.动机2.模式定义3.要点总结 1.动机 在软件构建过程中,经常会出现多个对象相互关联的情况,对象之间常常会维持一种复杂的引用关系,如果遇到一些需求的更改,这种直接的引用关系将面临不断的变化在这种情况下,可以…

2-自动驾驶关键技术框架

框架 来自《自动驾驶汽车决策与控制》这本书 三大技术 车载平台的关键技术: 环境感知技术:这是自动驾驶车辆能够“看”和“感知”周围世界的技术。它包括使用摄像头、雷达、激光雷达(Lidar)和超声波传感器来检测和识别道路、障…

Efficient Unified Demosaicing for Bayer and Non-Bayer Patterned Image Sensors

这篇文章是 2023 ICCV 的一篇文章,主要介绍一套统一的去马赛克的算法框架的 由于手机 Camera 上 CMOS 的单个 pixel size 比较小,所以现在很多手机的 Camera CMOS 会采用一些独特的非 Bayer 模式的 CFA (Quad, Nona 以及 Q X Q) 等,这类非 B…

redis实战-添加商户缓存

为什么要使用缓存 言简意赅:速度快,好用缓存数据存储于代码中,而代码运行在内存中,内存的读写性能远高于磁盘,缓存可以大大降低用户访问并发量带来的服务器读写压力实际开发中,企业的数据量,少…

vs 2019 Release模式下采用Debug断点调试

由于Release默认模式是不能调试的,有时候我们需要调试,属性更改如下所示: 再次启动程序,就可以进行调试

C语言 for循环

for循环语句 //初始化 //判断 //调整 for(表达式1; 表达式2; 表达式3;)循环语句; 例: for循环里break for循环里continue 注:1.不可在for循环体内修改循环变量,防止for循环失去控制 2.建议for语句的循环控制变量的…

qiankun微前端:qiankun+vite+vue3+ts(未完待续..)

目录 什么是微前端 目前现有的微前端 好处 使用 子应用的页面在主应用里显示 什么是微前端 微前端是一种多个团队通过独立发布功能的方式来共同构建现代化 web 应用的技术手段及方法策略。 我的理解就是将一个大型的前端应用拆分成多个模块,每个微前端模块可以由…

《编译原理》阅读笔记:p25-p32

《编译原理》学习第 5 天,p25-p32总结,总计 8 页。 一、技术总结 1.lexical lexical这个单词后续会经常用到,所以首先要搞懂它的英文意思,不然看到中文的“词法,语法,文法”这三个词的时候就会懵了——l…

【操作系统期末速成】EP05 | 学习笔记(基于五道口一只鸭)

文章目录 一、前言🚀🚀🚀二、正文:☀️☀️☀️2.1 考点十一:死锁的概念与预防2.2 考点十二:死锁的避免一银行间算法2.1 考点十三:死锁的检测与解除 一、前言🚀🚀&#x…

Oracle、MySQL、PostGreSQL、SQL Server-空值

Oracle、MySQL、PostGreSQL、SQL Server-null value 最近几年数据库市场百花齐放,在做跨数据库迁移的数据库选型时,除了性能、稳定、安全、运维、功能、可扩展外,像开发中对于值的处理往往容易被人忽视, 之前写过一篇关于PG区别O…

Linux下安装RocketMQ:从零开始的消息中间件之旅

感谢您阅读本文,欢迎“一键三连”。作者定会不负众望,按时按量创作出更优质的内容。 ❤️ 1. 毕业设计专栏,毕业季咱们不慌,上千款毕业设计等你来选。 RocketMQ是一款分布式消息中间件,具有高吞吐量、低延迟、高可用性…

【工具分享】SQLmap

文章目录 工具介绍安装方式环境准备安装 sqlmap 工具介绍 sqlmap 是一个非常强大的自动化 SQL 注入工具,主要用于渗透测试和安全审计。它能够检测和利用 SQL 注入漏洞,进而访问数据库服务器。 GitHub:https://github.com/sqlmapproject/sql…

【Vue】单向和双向数据绑定

在 Vue.js 中,数据绑定可以分为单向数据绑定和双向数据绑定两种类型。 单向数据绑定 单向数据绑定是指数据从模型流向视图,即数据的变化会自动反映到视图中,但视图中的变化不会自动反映回模型。Vue.js 中的单向数据绑定主要通过以下方式实现…

【数据可视化技术】1、如何使用Matplotlib和Seaborn库在Python中绘制热力图

热力图是一种数据可视化技术,可以显示变量之间的相关性。这个代码段是数据分析和可视化的常用方法,特别适合于展示变量之间的相关性,对于数据科学和机器学习项目非常有帮助。 1、 导入必要的库 首先,确保你已经安装了matplotlib…

机器学习引领教育革命:智能教育的新时代

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀目录 📒1. 引言📙2. 机器学习在教育中的应用🌞个性化学习🌙评估与反馈的智能化⭐教学资源的优…