87-基于stm32单片机粮仓仓库环境温湿度烟雾监测报警系统Proteus仿真+源码

news2024/11/24 4:30:50

资料编号:087

一:功能介绍:

1、采用stm32单片机+OLED显示屏+烟雾浓度检测+DHT11温湿度+电机+按键+蜂鸣器,制作一个温湿度采集、烟雾浓度采集,OLED显示相关数据,

2、通过按键设置温度上限、烟雾浓度上限,

3、当采集温度大于设置温度或者烟雾采集浓度大于设置浓度阈值,开启排气风扇,蜂鸣器报警提醒,

4、OLED显示屏显示采集温湿度、烟雾浓度和设置的温度、烟雾浓度阈值

二:仿真演示视频+程序简要讲解:(程序有中文注释,新手容易看懂)

三:设计软件介绍

本设计使用C语言编程设计,程序代码采用keil5编写,程序有中文注释,新手容易看懂,仿真采用Proteus软件进行仿真演示视频使用的是Proteus8.9版本;资料包里有相关软件包,可自行下载安装。

四:程序打开方法

特别注意:下载资料包以后一定要先解压!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。

5a5e71eeffab51f3ac81b1ea1be665f4.png

dd696a39a532366c7da8a96ddc8f4449.png

部分程序展示,有中文注释,新手容易看懂
b=ADC_GetConversionValue(ADC1);//读取烟雾浓度
    tmp=(float)b*(3.4/4096)*33;//转换ADC数据计算浓度值
    DHT11_Read_Data(&temp, &hum);//温湿度读取
    sprintf((char *)buf, "temp:%d C  ", temp);//整数转字符串 温度
    LCD_P6x8Str(2, 1, buf);//字符显示
    sprintf((char *)buf, "hum:%d   " , hum);//整数转字符串   湿度
    LCD_P6x8Str(2, 3, buf);//字符显示
    sprintf((char *)buf, "MQ2:%d ppm  ", tmp);//整数转字符串  烟雾
    LCD_P6x8Str(2, 5, buf);//字符显示
  if(KEY1==1) //设置按键
    {  
      while(KEY1!=0);
        buf1++;
      if(buf1>1) buf1=0;
    }
    if(KEY2==1&&buf1==0) //设置温度报警+
    {    
      while(KEY2!=0);
        buf2++;  
      if(buf2>100) buf2=100,LCD_Init();      
    }
    if(KEY3==1&&buf1==0) //设置温度报警-
    {    
      while(KEY3!=0);
        buf2--;  
      if(buf2<1) buf2=1,LCD_Init();      
    }
    
    if(KEY2==1&&buf1==1) //设置浓度报警+
    {    
      while(KEY2!=0);
        buf3++;    
      if(buf3>100) buf3=100,LCD_Init();      
    }


    if(KEY3==1&&buf1==1) //设置浓度报警-
    {    
      while(KEY3!=0);
        buf3--;    
      if(buf3<1) buf3=1,LCD_Init();      
    }
    sprintf((char *)buf, "SET:%d", buf2);//整数转字符串 温度
    LCD_P6x8Str(80, 1, buf);//字符显示
    sprintf((char *)buf, "SET:%d" , buf3);//整数转字符串   浓度
    LCD_P6x8Str(80, 5, buf);//字符显示


      
    if(temp>buf2||tmp>buf3)  beep=MORTOR1=0;//温度或者浓度过高  开启蜂鸣器报警和排气
    else beep=MORTOR1=1;
    
    if(buf1==0)
    {
      sprintf((char *)buf, "SET%d:TEMP", 1);//整数转字符串 设置温度
      LCD_P6x8Str(30, 7, buf);//字符显示
    }
    else 
    {
      sprintf((char *)buf, "SET%d:MQ2 ", 2);//整数转字符串 设置MQ2
      LCD_P6x8Str(30, 7, buf);//字符显示
    }

:仿真文件(采用Proteus打开)

271dacb5f313ec07ac1265d5614eaaa1.png

0c8fe8c7170f8f2623da51e0da5256a6.png

a596441db81874f4c8ec927b3585674e.png

六:资料清单展示(文件中包含的相关资料)

806cce1d8852637e06555848e0cc30f7.png

付费后即可在下方获取资料下载链接

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

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

相关文章

逻辑漏洞合集

0x01 未授权 未授权问题为普通用户登录或没有登录后&#xff0c;拼接js接口&#xff0c;构造报文&#xff0c;越权实现管理员的权限操作。原因&#xff1a;后端没有校验Cookie/Session的身份信息&#xff0c;以至于普通用户的权限可以实现管理员权限的功能。 First webpack打…

dll修复精灵怎么下载,vcruntime140.dll丢失该如何修复

vcruntime140.dll是Microsoft Visual C Redistributable中的一个动态链接库&#xff08;DLL&#xff09;文件。它是一种运行时库&#xff08;Runtime Library&#xff09;&#xff0c;用于支持使用Microsoft Visual C编写的程序的正常运行。作为一个DLL文件&#xff0c;vcrunti…

ModStartCMS v7.0.0 多语言开发优化,多个常用组件升级

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。 系统完全开源&#xff0c;基于 Apache 2.0 开源协议&#xff0c;免费且不限制商业使用。 功能特性 丰富的模块市…

超越传统测试方法:掌握最新的测试技术和工具

随着科技的不断进步和软件行业的快速发展&#xff0c;传统的测试方法已经无法满足现代软件开发的需求。为了提高测试的效率和准确性&#xff0c;测试人员需要及时掌握最新的测试技术和工具。本文将探讨一些创新的测试技术和工具&#xff0c;帮助测试人员超越传统的测试方法。 首…

Visual Studio 配置远程调试

1.在Visual Studio安装目录中找到远程调试工具(msvsmon.exe)。 2.将x64文件夹压缩成压缩包&#xff0c;然后拷贝到客户机 3.将pdb文件拷贝到客户机上版本对应的文件夹中。 4. 启动Visual Studio开始进行远程调试 选择“调试”> “附加到进程”

p-级数的上界(Upper bound of p-series)

积分判别法-The Integral Test https://math.stackexchange.com/questions/2858067/upper-bound-of-p-series https://courses.lumenlearning.com/calculus2/chapter/the-p-series-and-estimating-series-value/ 两个重要级数&#xff08;p级数和几何级数&#xff09; ht…

探索OLED透明屏方案的设计与应用

OLED透明屏作为一种新兴的显示技术&#xff0c;正逐渐在商业展示、新媒体互动和智能家居等领域展现出广阔的应用前景。 在这篇文章中&#xff0c;尼伽将深入探讨OLED透明屏方案的设计和应用&#xff0c;展示其在提升用户体验和创造商业价值方面的优势。 一、OLED透明屏方案的设…

web前端tips:js继承——组合继承

上篇文章给大家分享了 js继承中的借用构造函数继承 web前端tips&#xff1a;js继承——借用构造函数继承 在借用构造函数继承中&#xff0c;我提到了它的缺点 无法继承父类原型链上的方法和属性&#xff0c;只能继承父类构造函数中的属性和方法 父类的方法无法复用&#xff0…

UE Json Operate 解析嵌套数组

演示如何使用 DTJsonOperate 插件&#xff0c;在蓝图中解析嵌套数组。 比如这个Json {"name": [[[1, 2]],[3, 4],[5, 6]] } 操作演示 最后打印 本功能需要插件支持&#xff0c;插件下载地址。

2023牛客多校第二场 G Link with Centrally Symmetric String(类马拉车)

2023牛客多校第二场 G Link with Centrally Symmetric Strings(类马拉车 最长回文后缀) 题目链接 大意&#xff1a;定义对称回文的回文中心可以是 间隔(偶回文中心) 或者 o / x / s / z (奇回文中心) 五种 &#xff0c; 定义匹配为 b/q d/p n/u o/o x/x s/s z/z 之间相互匹…

nvm安装使用与常见问题

前言 nvm是一个用来进行nodejs多个版本管理和切换的工具。这个工具的使用相当简单和方便&#xff0c;但是没想到我使用的时候却遇到了好些问题&#xff0c;这里记录一下顺便分享。 安装nvm 先去下载地址Releases coreybutler/nvm-windows GitHub下载&#xff0c;建议选择下…

批量记录收支明细,轻松通过收支占比图表轻松分析支出项目占比!

您是否希望更加直观地了解个人或企业的支出项目占比情况&#xff1f;是否想通过图表分析&#xff0c;快速定位支出的主要项目&#xff0c;并做出相应的调整&#xff1f;现在&#xff0c;我们的智能收支分析大师为您提供了一种智能化的解决方案&#xff01;只需几步操作&#xf…

sliver C2 切换会话

使用中发现会话的切换直接输入sessions,显示会话 use 切换到新会话 在测试进程迁移的时候发现命令不好用 多次尝试,没有成功的

骨传导耳机戴久了头疼正常吗?骨传导耳机对健康有影响吗

骨传导耳机戴久了头疼正常吗&#xff1f;骨传导耳机对健康有影响吗 长时间佩戴骨传导耳机可能会引起一些人头疼的不适感&#xff0c;这可能是因为长时间的接触和震动影响了你的感知和舒适度。如果你遇到这样的问题&#xff0c;可以尝试以下几种解决方法&#xff1a; ⑴适当休…

第6章:支持向量机

间隔与支持向量 w为法向量&#xff0c;决定的是超平面的方向。b是偏移项&#xff0c;决定了超平面与原点之间的距离。 为什么最大化间隔&#xff0c;得到的就是最优平面呢&#xff1f; 当超平面没有正确划分正负样本时&#xff0c;几何间隔为负数。几何间隔&#xff0c;各个…

C++学习系列之DLL动态库使用

C学习系列之DLL动态库使用 啰嗦动态库的创建动态库的调用函数生成1.需要头文件函数定义&#xff08;头文件&#xff09;2.需要函数定义&#xff08;函数文件&#xff09;3.动态库中的头文件4.动态库中的主文件5.运行查看是否存在C#的调用的入口点6.C#调用 总结 啰嗦 项目需要&…

HSE是什么,好用的HSE系统推荐

阅读本文您将了解&#xff1a;1、HSE是什么&#xff1b;2、HSE在企业中的作用&#xff1b;3、好用的HSE系统推荐 一、HSE是什么 HSE是"Health, Safety, and Environment"&#xff08;健康、安全和环境&#xff09;的缩写。它指的是一个在工作场所、生产过程和社会活…

已解决:Module‘xxx’存在

1.问题如图&#xff0c;进入项目结构&#xff0c;找到模块检查是否仍有同名文件。 2.选中文件&#xff0c;点“—”号&#xff0c;应用&#xff0c;确定即可 3.重新新建即可成功。

【C语言程序设计】C语言基本数据类型与表达式(思考题)

思考题 1、C语言的主要特点有哪些&#xff1f; ①简单紧凑、灵活方便&#xff0c;②是结构化的语言&#xff0c;③运算符丰富&#xff0c;④是一种高效的语言&#xff0c;⑤可直接对硬件进行操作&#xff0c;⑥具有较好的可移植性。 高效性&#xff1a;C语言是一种高级编程语言…

VUE3 Hooks的面向对象实现方式

本文会以三种形式实现一个组件&#xff0c;该组件实现以下功能&#xff1a; 1.显示一个数字&#xff08;可从prop给初始值&#xff09;和一个添加按钮&#xff1b; 2.点击添加按钮数字增加&#xff1b; 3.当数字大于5时&#xff0c;数字颜色变红&#xff0c;并提交error事件…