基于stm32单片机厨房安全环境天然气煤气监测系统

2024-02-14 14:59

本文主要是介绍基于stm32单片机厨房安全环境天然气煤气监测系统,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

资料编号:172    下面是功能视频演示:

172-基于Stm32单片机厨房安全环境天然气煤气监测报警系统

功能讲解:

采用stm32单片机作为控制CPU,采用MQ4天然气气体采集传感器,DHT11温湿度传感器,蜂鸣器,0.96寸OLED显示屏,继电器驱动风扇,采用USB5V供电,使用电脑和充电宝USB口都可以,MQ4采集当前厨房的天然气浓度,当浓度值大于设置的上限阈值(阈值可以在程序中更改),蜂鸣器进行报警,继电器导通驱动风扇进行通风降低天然气浓度,当浓度低于设置的阈值,蜂鸣器停止报警,风扇停止转动,OLED显示屏上显示天然气浓度值和温湿度采集值,该系统适用于厨房安全环境以及相关天然气报警系统,全套资料齐全:

下面是相关程序源码展示:

//硬件驱动
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "bsp_dht11.h"
#include "RC522.h"
#include "oled.h"
#include "key.h"
#include "led.h"
    DHT11_Data_TypeDef DHT11_Data;

//硬件初始化
void Hardware_Init(void)
{
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
    
    delay_init();            //延时函数初始化
    
    Usart1_Init(115200);    //串口1初始化为115200
//    Usart2_Init(115200);     //串口2,驱动ESP8266用
    LED_Init();                //LED初始化
}


int main(void)
{
    unsigned char *dataPtr = NULL;
    unsigned short timeCount = 30;    //发送间隔变量
uint8_t status;
long int cardnum=0;
u16 adcx;
    int temp;
    Hardware_Init();                //初始化外围硬件
            OLED_Init();
        OLED_ColorTurn(0);
        OLED_DisplayTurn(0);    
    OLED_ShowString(0,0," MQ4:",16);     OLED_ShowString(90,0,"PPM",16);
    OLED_ShowString(0,32,"TEMP:",16);   OLED_ShowString(70,32,"C",16); OLED_ShowString(120,32,"%",16);
      
            OLED_Refresh();
    KEY_Init();
        Adc_Init();    LED_Init();
    LED=1;fs=1;
Q1=1;
    while(1)
    {    


        DHT11_Read_TempAndHumidity ( & DHT11_Data );
        OLED_ShowNum(40,32,DHT11_Data .temp_int,2,16);
         OLED_ShowString(56,32,".",16);
        OLED_ShowNum(60,32,DHT11_Data .temp_deci,1,16);
        OLED_ShowNum(100,32,DHT11_Data .humi_int,2,16);
        adcx=Get_Adc_Average(ADC_Channel_1,10);
        temp=(float)adcx/4096*330-100;
        if(temp<0) temp=0;
        OLED_ShowNum(40,0,temp,3,16);
        OLED_Refresh();
    if(temp>100||DHT11_Data .temp_int>36) 
    {
        LED=0;
        Q1=0;
    }
    else 
    {
        LED=1;
        Q1=1;
    }
        
        
    }
}

下面是原理图展示: 

 下面是PCB展示:

下面是该资料的分享下载链接: 

https://pan.baidu.com/s/10tBIksQJ2cLuQa9DxvTrdg?pwd=ecrk 

这篇关于基于stm32单片机厨房安全环境天然气煤气监测系统的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/708808

相关文章

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案

《电脑显示mfc100u.dll丢失怎么办?系统报错mfc90u.dll丢失5种修复方案》最近有不少兄弟反映,电脑突然弹出“mfc100u.dll已加载,但找不到入口点”的错误提示,导致一些程序无法正... 在计算机使用过程中,我们经常会遇到一些错误提示,其中最常见的就是“找不到指定的模块”或“缺少某个DL

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

JAVA保证HashMap线程安全的几种方式

《JAVA保证HashMap线程安全的几种方式》HashMap是线程不安全的,这意味着如果多个线程并发地访问和修改同一个HashMap实例,可能会导致数据不一致和其他线程安全问题,本文主要介绍了JAV... 目录1. 使用 Collections.synchronizedMap2. 使用 Concurren

Python如何自动生成环境依赖包requirements

《Python如何自动生成环境依赖包requirements》:本文主要介绍Python如何自动生成环境依赖包requirements问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录生成当前 python 环境 安装的所有依赖包1、命令2、常见问题只生成当前 项目 的所有依赖包1、

Redis在windows环境下如何启动

《Redis在windows环境下如何启动》:本文主要介绍Redis在windows环境下如何启动的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Redis在Windows环境下启动1.在redis的安装目录下2.输入·redis-server.exe

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Python从零打造高安全密码管理器

《Python从零打造高安全密码管理器》在数字化时代,每人平均需要管理近百个账号密码,本文将带大家深入剖析一个基于Python的高安全性密码管理器实现方案,感兴趣的小伙伴可以参考一下... 目录一、前言:为什么我们需要专属密码管理器二、系统架构设计2.1 安全加密体系2.2 密码强度策略三、核心功能实现详解

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col