基于STM32的温湿度检测TFT屏幕proteus恒温控制仿真系统

一、引言

本文介绍了一个基于STM32的恒温控制箱检测系统,该系统通过DHT11温湿度传感器采集环境中的温湿度数据,并利用TFT LCD屏幕进行实时显示。通过按键切换页面显示,通过按键切换实现恒温控制箱的恒温控制。为了验证系统的可靠性和稳定性,我们采用了Proteus仿真软件进行了系统仿真。如果觉得我的文章对你有帮助,不妨点赞关注,谢谢!

墨小羽ovo个人主页

系统实现

1.该系统通过DHT11温湿度传感器采集环境中的温湿度数据,并利用TFT LCD屏幕进行实时显示

2 第三个第四个按键实现温度阈值增减的控制,第一个和第二个按键进行LCD屏幕页面切换。

在这里插入图片描述

在这里插入图片描述

3.通过第一个和第二个按键进行PWM调速,实现电机转动速度的调节,进行恒温控制

项目教程资料分享

本项目用到的资料源码已经放到交流群中,需要的可以加群获取。一起学习,互相进步。

在这里插入图片描述

项目实现

二、系统设计

2.1 硬件模块组成

1.STM32F103RCT6单片机

2.DHT11温湿度传感器

3.TFT LCD屏幕和按键组成。

4.L298N电机驱动模块

5.LED灯模块

2.2 软件部分组成

1.KEIL5开发环境2.Proteus仿真软件

2.3 系统硬件电路

在这里插入图片描述

2.4 软件设计

2.4.1 系统初始化

在这里插入图片描述

2.5 DHT11运行检测函数

在这里插入图片描述

在这里插入图片描述

2.6 按键运行检测函数

在这里插入图片描述

在这里插入图片描述

2.7 pwm调节温度

在这里插入图片描述

在这里插入图片描述

3. 函数实现

3.1 温湿度检测dht11库函数

    #include "dht11.h"#include "delay.h"//切换数据线模式输入输出PB6void DHT11_ChangeMode(__DHT11_MODE mode){RCC_APB2PeriphClockCmd(DHT11_CLK, ENABLE);GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Pin = DHT11_PIN;if(mode == MODE_OUTPUT)GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;	//推挽输出elseGPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入GPIO_Init(DHT11_PORT, &GPIO_InitStructure);	}__DHT11_DATA dht_data;__DHT11_DATA test;//读取数据//失败返回 0//成功返回 1u8 DHT11_ReadData(__DHT11_DATA * dht11){u8 result = 0;u8 count = 0;u8 data[5] = {0};DHT11_ChangeMode(MODE_OUTPUT);//切换输出模式DHT11_OUTPUT(1);//开始信号DHT11_OUTPUT(0);Delay_ms(20);//延时,持续输出低电平18~30msDHT11_OUTPUT(1);//等待响应DHT11_ChangeMode(MODE_INPUT);//切换输入模式while(DHT11_ReadPinState() == 1){count++;Delay_us(1);if(count >= 100)	return 0;}count = 0;while(DHT11_ReadPinState() == 0){count++;Delay_us(1);if(count >= 100)	return 0;}count = 0;	for(u8 i=0; i<40; i++){while(DHT11_ReadPinState() == 1){count++;Delay_us(1);if(count >= 100)	return 0;}count = 0;while(DHT11_ReadPinState() == 0){count++;Delay_us(1);if(count >= 100)	return 0;}count = 0;	Delay_us(30);if(DHT11_ReadPinState() == 1){data[i/8] |= (1<<(7-(i%8))); //置一}else{data[i/8] &= ~(1<<(7-(i%8)));//清零}}//校验if(data[0]+data[1]+data[2]+data[3] == data[4]){dht11->Hum = data[0];dht11->Tem = data[2];result = 1;}else{result = 0;}return result;}

3.2 系统定时器中断

    //系统定时器中断服务函数void SysTick_Handler(void) //1mS{RunTime++;Led_RunTime++;DHT11_RunTime++;GUI_Time++;}

3.3 按键检测函数

//按键检测函数		按键松开后才会响应
/*
0 没有按键按下,1 :PA1对应的按键
*/
u8 Get_KeyValue(void)
{u8 keyvalue = 0;if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==RESET){while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_1)==RESET){}keyvalue = 1;}if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)==RESET){while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_2)==RESET){}keyvalue = 2;flag=1;}if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3)==RESET){while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_3)==RESET){}keyvalue = 3;}if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4)==RESET){while(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_4)==RESET){}keyvalue = 4;}return keyvalue;
}

四、总结

本博客介绍了基于STM32的恒温控制箱检测系统,通过DHT11传感器采集温湿度数据,TFT LCD屏幕实时显示,并使用按键进行页面切换和温度阈值调整。Proteus仿真验证了系统的可靠性。未来可考虑引入PID控制算法提升控制精度。希望本教程对您有所帮助,
觉得实用不妨点赞关注。在编写博客的过程中,我尽量保持内容的准确性和完整性,但也难免会有疏漏或错误之处。欢迎各位读者指出其中的问题,帮助我不断进步。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电影交流平台小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;电影类型管理&#xff0c;留言反馈管理&#xff0c;电影中心管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;电影中心&#xff0c;留言反馈 开发系统&#xff1a;Window…

PAI3D: Painting Adaptive Instance-Prior for 3D Object Detection论文讲解

PAI3D: Painting Adaptive Instance-Prior for 3D Object Detection论文讲解 1. 引言2. PAI3D框架2.1 Instance Painter2.2 Adaptive Projection Refiner2.3 Fine-granular Detection Head 3. 实验结果3.1 消融实验 1. 引言 3D目标检测对于自动驾驶来说是一个非常重要的模块&a…

昇思25天学习打卡营第14天|ResNet50迁移学习

学AI还能赢奖品&#xff1f;每天30分钟&#xff0c;25天打通AI任督二脉 (qq.com) 在实际应用场景中&#xff0c;由于训练数据集不足&#xff0c;所以很少有人会从头开始训练整个网络。普遍的做法是&#xff0c;在一个非常大的基础数据集上训练得到一个预训练模型&#xff0c;然…

Vue3学习(二)

回顾 DOM原生事件event对象 当事件发生时&#xff0c;浏览器会创建一个event对象&#xff0c;并将其作为参数传递给事件处理函数。这个对象包含了事件的详细信息&#xff0c;比如&#xff1a; type&#xff1a;事件的类型&#xff08;如 click&#xff09;target&#xff1a…

微信小程序毕业设计-英语互助系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

31 - 最新2024版SpringCloud学习记录 - 关于cloud各种组件的停更/升级/替换

有子曰&#xff1a;“其为人也孝弟&#xff0c;而好犯上者&#xff0c;鲜矣&#xff1b;不好犯上&#xff0c;而好作乱者&#xff0c;未之有也。君子务本&#xff0c;本立而道生。孝弟也者&#xff0c;其为仁之本与&#xff1f;” 几种常用的SpringCloud组件 黑色&#xff1a;…

继承QAbstractListModel,结合QListView

这里想要写一个QAbstractListModel的子类&#xff0c;学习一下如何实例化QAbstractListModel。 QAbstractListModel子类化-CSDN博客 QVariant与自定义类型互转之奇巧淫技_qt 类型转 qvariant-CSDN博客 #pragma once#include <QStyledItemDelegate> #include <qmeta…

【windows|012】光猫、路由器、交换机详解

&#x1f341;博主简介&#xff1a; &#x1f3c5;云计算领域优质创作者 &#x1f3c5;2022年CSDN新星计划python赛道第一名 &#x1f3c5;2022年CSDN原力计划优质作者 ​ &#x1f3c5;阿里云ACE认证高级工程师 ​ &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社…

51单片机-让一个LED灯闪烁、流水灯(涉及:设置单片机的延迟函数)

目录 设置单片机的延迟&#xff08;睡眠&#xff09;函数查看单片机的时钟频率设置系统频率、定时长度、指令集 完整代码生成HEX文件下载HEX文件到单片机流水灯代码 设置单片机的延迟&#xff08;睡眠&#xff09;函数 查看单片机的时钟频率 检测前单片机必须连接电脑并打开&…

AI与EHS管理结合:融合创新,赋能绿色安全生产

随着科技的不断进步&#xff0c;人工智能AI已经在我们的日常生活中扮演了重要角色。在环保、健康和安全这个重要领域&#xff0c;也就是我们常说的EHS管理中&#xff0c;AI也正发挥着神奇的作用。 咱们知道&#xff0c;一个公司要想好好运转&#xff0c;确保工人安全、保护环境…

万字长文|下一代系统内存数据加速接口SDXI解读

本文内容分为5章节&#xff0c;总计10535字&#xff0c;内容较多&#xff0c;建议先收藏&#xff01; 1.SDXI技术产生的背景 2.SDXI相比DMA的优势 3.SDXI实现原理与架构 3.1 描述符环原理解读 3.2 上下文管理介绍 3.3 AKey与RKey解读 3.4 错误日志和状态管理 3.5 跨Function访…

【python】OpenCV—Aruco

文章目录 Detect ArucoGuess Aruco Type Detect Aruco 学习参考来自&#xff1a;OpenCV基础&#xff08;19&#xff09;使用 OpenCV 和 Python 检测 ArUco 标记 更多使用细节可以参考&#xff1a;【python】OpenCV—Color Correction 源码&#xff1a; 链接&#xff1a;http…

opengl箱子的显示

VS环境配置&#xff1a; /JMC /ifcOutput "Debug\" /GS /analyze- /W3 /Zc:wchar_t /I"D:\Template\glfwtemplate\glfwtemplate\assimp" /I"D:\Template\glfwtemplate\glfwtemplate\glm" /I"D:\Template\glfwtemplate\glfwtemplate\LearnOp…

复分析——第10章——Θ函数应用(E.M. Stein R. Shakarchi)

第10章 Θ函数的应用 (Applications of Theta Functions) The problem of the representation of an integer n as the sum of a given number k of integral squares is one of the most celebrated in the theory of numbers. Its history may be traced back to Diopha…

数据结构:期末考 第六次测试(总复习)

一、 单选题 &#xff08;共50题&#xff0c;100分&#xff09; 1、表长为n的顺序存储的线性表&#xff0c;当在任何位置上插入或删除一个元素的概率相等时&#xff0c;插入一个元素所需移动元素的平均个数为&#xff08; D &#xff09;.&#xff08;2.0&#xff09; A、 &am…

线性代数|机器学习-P21概率定义和Markov不等式

文章目录 1. 样本期望和方差1.1 样本期望 E ( X ) \mathrm{E}(X) E(X)1.2 样本期望 D ( X ) \mathrm{D}(X) D(X) 2. Markov 不等式&Chebyshev不等式2.1 Markov不等式公式 概述2.2 Markov不等式公式 证明&#xff1a;2.3 Markov不等式公式 举例&#xff1a;2.4 Chebyshev不…

反向沙箱技术:安全隔离上网

在信息化建设不断深化的今天&#xff0c;业务系统的安全性和稳定性成为各公司和相关部门关注的焦点。面对日益复杂的网络威胁&#xff0c;传统的安全防护手段已难以满足需求。深信达反向沙箱技术&#xff0c;以其独特的设计和强大的功能&#xff0c;成为保障政务系统信息安全的…

【论文阅读】-- TimeNotes:时间序列数据的有效图表可视化和交互技术研究

TimeNotes: A Study on Effective Chart Visualization and Interaction Techniques for Time-Series Data 摘要1 介绍和动机2 文献2.1 时间序列数据探索2.1.1 数据聚合2.1.2 基于透镜2.1.3 基于布局 3 任务和设计3.1 数据3.2 领域表征3.3 探索、分析和呈现 4 TimeNotes4.1 布局…

安装KB5039212更新卡在25% 或者 96% 进度

系统之家7月1日消息&#xff0c;微软在6月11日的补丁星期二活动中&#xff0c;为Windows 11系统推出了KB5039212更新。然而&#xff0c;部分用户在Windows社区中反映&#xff0c;安装过程中出现失败&#xff0c;进度条在25%或96%时卡住。对于遇到此类问题的Windows 11用户&…

AI基本概念(人工智能、机器学习、深度学习)

人工智能 、 机器学习、 深度学习的概念和关系 人工智能 &#xff08;Artificial Intelligence&#xff09;AI- 机器展现出人类智慧机器学习 &#xff08;Machine Learning) ML, 达到人工智能的方法深度学习 &#xff08;Deep Learning&#xff09;DL,执行机器学习的技术 从范围…