【单片机毕业设计】【hj-006-7】CO、有害混合气体检测 | 空气质量检测 | 有害气体检测
一、基本介绍
项目名:
基于单片机的CO、有害混合气体检测系统设计
基于单片机的空气质量检测系统设计
基于单片机的有害气体检测系统设计
项目编号:mcuclub-hj-006-7
单片机类型:STC89C52
具体功能:
1、通过MQ-7检测CO值,超过设置最大值进行声光报警,并开启风扇和净化器
2、通过MQ-135检测有害混合气体值,超过设置最大值进行声光报警,并开启风扇和净化器
3、通过按键设置上限值,可以手动控制风扇和净化器、切换模式
4、通过显示屏显示数据
扩展功能:通过蓝牙模块将测量数据发送到手机端,并可以控制风扇和净化器、切换模式
二、资料总览
实物资料
仿真资料
三、51单片机部分资料展示
1、实物图展示
单片机型号:STC89C52
供电接口:TYPE-C
板子类型:PCB集成板,厚度1.2,两层板(上下层覆铜接地)
器件类型:元器件基本上为插针式,个别降压芯片会使用贴片式。
2、仿真图展示
仿真软件版本:proteus8.9
电路连线方式:网络标号连线方式
注意:部分实物元器件仿真中没有,仿真中会用其他工作原理相似的元件代替,这样可能导致实物程序和仿真程序不一样
3、原理图展示
软件版本:AD2013
电路连线方式:网络标号连线方式
注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构图
4、PCB图展示
由原理图导出,中间有一个项目编号,隐藏在单片机底座下,插入单片机后不会看到。
两层板,上下覆铜接地。
四、32单片机部分资料展示
1、实物图展示
单片机型号:STM32F103C8T6
供电接口:TYPE-C
板子类型:PCB集成板,厚度1.2,两层板(上下层覆铜接地)
器件类型:元器件基本上为插针式,个别降压芯片会使用贴片式。
2、原理图展示
软件版本:AD2013
电路连线方式:网络标号连线方式
注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构原理图
3、PCB图展示
由原理图导出,中间有一个项目编号,隐藏在单片机底座下,插入单片机后不会看到。
两层板,上下覆铜接地。
五、系统框图
绘制软件:VISIO
本设计以单片机为核心控制器,加上其他模块一起组成此次设计的整个系统,其中包括中控部分、输入部分和输出部分。中控部分采用了单片机控制器,其主要作用是获取输入部分的数据,经过内部处理,逻辑判断,最终控制输出部分。输入由三部分组成,第一部分是气体检测模块,通过该模块检测当前环境的有害气体和一氧化碳;第二部分是按键模块,通过该模块可以切换界面、设置阈值、切换模式等;第三部分是供电模块,通过该模块可给整个系统进行供电。输出由三部分组成,第一部分是显示模块,通过该模块可以显示监测的数据以及设置的阈值;第二部分是继电器模块,通过两个继电器分别控制通风和净化;第三部分是声光报警模块,当监测值不在设置的阈值内时进行声光报警。除此之外,蓝牙模块既作为输入又作为输出,蓝牙模块和手机进行连接,可以将监测的数据传输到用户手机端,用户也可以通过手机端发送指令控制继电器的工作及其模式的切换。具体系统框图如图3.1所示。
六、部分程序展示
软件版本:keil5
注意:逻辑程序和驱动程序分开,分布于main.c和其他.c文件
*******监测函数
*****/
void Monitor_function(void)
{char fasong[256]; if(flag_display == 0) //测量界面{if(time_num % 10 == 0) //约2s检测一次{if(DO1 == 0) co_value = 60*(Get_Adc_Average(1,1)*3.3/4096.0); //获取一氧化碳浓度else co_value = 0;if(DO2 == 0 )hgas_value = 60*(Get_Adc_Average(5,1)*3.3/4096.0); //获取有害气体浓度elsehgas_value = 0;}}if(time_num % 20 == 0) //约4s发送一次{sprintf(fasong,"一氧化碳浓度:%dppm\r\n",co_value);UsartPrintf(USART1,fasong);sprintf(fasong,"有害气体浓度:%dppm\r\n",hgas_value);UsartPrintf(USART1,fasong); } if(USART1_WaitRecive() == 0){if(strstr((char*)usart1_buf,"A") != NULL) //切换自动模式{flag_mode = 0; }else if(strstr((char*)usart1_buf,"B") != NULL)//通风关,净化关 {flag_relay = 0;flag_mode = 1; }else if(strstr((char*)usart1_buf,"C") != NULL)//通风开,净化开 {flag_relay = 1;flag_mode = 1; }USART1_Clear();}
}/****
*******显示函数
*****/
void Display_function(void)
{switch(flag_display) //根据不同的显示模式标志位,显示不同的界面{case 0: //界面0:测量界面,显示一氧化碳、有害气体浓度,模式Oled_ShowCHinese(1, 0, "一氧化碳:");sprintf(display_buf,"%dPPM ",co_value);Oled_ShowString(1, 10, display_buf);Oled_ShowCHinese(2, 0, "有害气体:");sprintf(display_buf,"%dPPM ",hgas_value);Oled_ShowString(2, 10, display_buf);Oled_ShowCHinese(3, 0, "模式:");if(flag_mode == 0)Oled_ShowCHinese(3,3,"自动");elseOled_ShowCHinese(3,3,"手动");break;case 1: //界面1:显示设置一氧化碳最大值Oled_ShowCHinese(1,2,"设置");Oled_ShowCHinese(2,0,"一氧化碳最大值");if(time_num % 5 == 0){sprintf(display_buf,"%d ",co_max);Oled_ShowString(3, 7, display_buf);}if(time_num % 10 == 0){Oled_ShowString(3, 7, " ");}break;case 2: //界面2:显示设置有害气体最大值Oled_ShowCHinese(1,2,"设置"); Oled_ShowCHinese(2,0,"有害气体最大值");if(time_num % 5 == 0){sprintf(display_buf,"%d ",hgas_max);Oled_ShowString(3, 7, display_buf);}if(time_num % 10 == 0){Oled_ShowString(3, 7, " ");}break;default:break;}
}/****
*******处理函数
*****/
void Manage_function(void)
{if(flag_display == 0) //测量界面{if(flag_mode == 0) //如果处于自动模式{if(co_value > co_max || hgas_value > hgas_max) //一氧化碳值或有害气体值大于设置的最大值{RELAY_TF = 1;RELAY_JH = 1;flag_alarm = 1;}else //如果在设置的上下限之间,关闭两个继电器{RELAY_TF = 0;RELAY_JH = 0;flag_alarm = 0;}}else //手动模式根据按键按下控制继电器{flag_alarm = 0;LED = 1;BEEP = 0; switch(flag_relay){case 0: //通风关,净化关 RELAY_TF = 0;RELAY_JH = 0;break;case 1: //通风开,净化开RELAY_TF = 1;RELAY_JH = 1;break; default:break;} }if(flag_alarm == 1 && time_num %2 == 0) //如果有异常,声光报警{LED = ~LED;BEEP = ~BEEP;}else if(flag_alarm == 0){LED = 1;BEEP = 0;}}else //设置界面,关闭两个继电器{RELAY_TF = 0;RELAY_JH = 0; LED = 1;BEEP = 0;}
}
相关文章:

【单片机毕业设计】【hj-006-7】CO、有害混合气体检测 | 空气质量检测 | 有害气体检测
一、基本介绍 项目名: 基于单片机的CO、有害混合气体检测系统设计 基于单片机的空气质量检测系统设计 基于单片机的有害气体检测系统设计 项目编号:mcuclub-hj-006-7 单片机类型:STC89C52 具体功能: 1、通过MQ-7检测CO值&#x…...

wpf主页面解析
1、 开头的网址作用 1和2都是引入命名空间的,每一个字符串代表一系列的命名空间,这样就可以不用一个一个引用了。wpf中规定有一个名称空间是可以不加名字的,xmlns不加名字是默认命名空间。 "http://schemas.microsoft.com/winfx/2006/x…...
三相交错LLC软启动控制程序算法实现---充电桩电源设计实战细节
简介 充电桩充电终端是一款单枪最大功率达到600kW的充电桩。它具有以下特点: 充电枪线长3.5米,重量小于90kg,额定电压1000V,最大电流600A,最大功率600kW。 高宽深为1700340295mm。 该充电桩采用模块化设计,具有较高的可靠性和可维护性。 充电时间大约在30分钟左右,…...

Chrome 115之后的版本,安装和使用chromedriver
在Python中使用selenium 时报如下错误: 1. 老版本chrome对应的chromedriver 下载地址:CNPM Binaries Mirror 2. 新版本chrome对应的chromedriver 下载地址:Chrome for Testing availability...

潮玩宇宙:收藏、交流与竞技的数字乐园
最近爆火的新项目潮玩宇宙,想必有很多人入场了,代理商宣传投资147一个月回本,确实是现在做到了,现在平台一颗宝石的价格已经超过美金了,还有一大部分人在等待进场,潮玩宇宙旗下奖券世界和养猪农场已经做了有…...

企拓客app骗局为不实信息,企拓客保持正常经营状态
网络运营软件盛行,带来了一些混乱的现状,造成企业不同程度的损失,也让运营单位在选择软件时心有余悸。真真假假的信息,扰乱了运营软件的市场环境,热门的拓客软件不慎躺枪。企拓客就是其中之一。 笔者通过网上检索的方式,最终查证企拓客软件官方保持着正常运营,企拓客app骗局不攻…...

【性能】JDK和Jmeter的安装与配置
一、JDK环境配置 1. 下载JDK 官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html 选择对应系统的安装包,下载后安装,安装中记录JDK安装的地址,之后一直点击下一…...

02_单片机及开发板介绍
单片机简介 单片机,又称为微控制器(Microcontroller),是一种集成了微处理器核心、存储器、输入/输出接口及各种功能模块的集成电路芯片。它通常由中央处理器(CPU)、存储器、输入/输出接口以及各种外设组成&…...

华测监测预警系统 2.2---任意文件读取漏洞
目录 1. 资产搜集 2. 漏洞复现 3. 实战总结 1. 资产搜集 直接上fofa 和 hunter 个人推荐hunter可以看到icp备案公司直接提交盒子就行了 FOFA语法 app”华测监测预警系统2.2” Hunter语法 web.body”华测监测预警系统2.2” 2. 漏洞复现 这里手动复现的,目录是/…...

新版多功能去水印工具微信小程序源码下载+带流量主功能
新版多功能去水印工具微信小程序源码下载,带流量主功能。自带去水印接口的多功能小程序,支持各大平台短视频去水印。 支持保存封面、图集、标题等等;支持本地图片去水印;支持图片拼接;支持九宫格切图;支持修…...

文章必备| 叶绿体基因组高级分析内容汇总
叶绿体普遍存在于植物体中,叶绿体基因组是一个典型的双链环状DNA分子,一个植物当中含有多个叶绿体,一个叶绿体中含有12个cpDNA分子。 常见的植物叶绿体基因组大小一般在150-160 kb左右,藻类会略小一些,在80-100 kb左右…...
阿里实习JAVA后端面经总结
暑期实习面试阿里Java后端岗位的一面的面经。 主要拷打了项目+Java 集合+Java并发+网络+mysql,一场面试大概问了 20 个题目,问的还是比较基础,不算太难。 问题记录 简历上有两个项目,选一个你比较熟悉的介绍 (略) 项目用到了哪个线程实现类? 用了ScheduledThreadP…...
利用 NLP 超能力:一步步介绍Hugging Face微调教程
导入必要的库 导入必要的库类似于为特定编程和数据分析活动构建工具包。这些库通常是预先编写的代码集合,提供广泛的功能和工具,有助于加快开发速度。开发人员和数据科学家可以通过导入适当的库来访问新功能、提高生产力并使用现有解决方案。 import pandas as pd import n…...

凝聚技术力量 共建测试生态 ——集成电路测试技术交流日成功举办
10月18日下午,凝聚技术力量,共建测试生态 ——集成电路测试技术交流会在上海成功举办。来自全国各地知名专家学者、技术大咖及企业代表齐聚一堂,共同探讨封装测试技术的发展方向,共话产业未来,共促产业发展。 本次活动…...

机器学习-ROC曲线:技术解析与实战应用
目录 一、引言ROC曲线简介 二、ROC曲线的历史背景二战雷达信号检测在医学和机器学习中的应用横跨多个领域的普及 三、数学基础True Positive Rate(TPR)与False Positive Rate(FPR)True Positive Rate(TPR)F…...

macos平台好用的FTP客户端 Transmit 5最新中文
Transmit 5是一款Mac平台上的FTP(文件传输协议)客户端软件,它可以让用户方便地在不同的计算机之间传输文件,例如从本地计算机上传或下载文件到远程服务器。以下是Transmit 5的一些主要功能和特点: 用户友好的界面:Transmit 5具有…...

用JavaScript输出0-9的两种方法、以及setTimeout的三个参数的意义
方法一: for (let i 0; i < 10; i) {setTimeout(() > {console.log(i);}, 1000) } 方法二:利用 setTimeout 函数的第三个参数,会作为回调函数的第一个参数传入 for (var i 0; i < 10; i) {setTimeout(i > {console.log(i);…...

酷鸟云近期主要新功能合集
近期,根据用户需求,酷鸟云上线了一系列新功能,让大家在使用过程中,更加灵活和高效。 1、仿真指纹功能优化 酷鸟云内置的专业防关联浏览器的仿真指纹功能,可以解决注册谷歌账号/谷歌邮箱(Gmail)…...

【大数据开发技术】实验06-SequenceFile、元数据操作与MapReduce单词计数
文章目录 SequenceFile、元数据操作与MapReduce单词计数一、实验目标二、实验要求三、实验内容四、实验步骤附:系列文章 SequenceFile、元数据操作与MapReduce单词计数 一、实验目标 熟练掌握hadoop操作指令及HDFS命令行接口掌握HDFS SequenceFile读写操作掌握Map…...

【C语言】输入一个正整数,判断其是否为素数
1、素数又叫质数。素数,指的是“大于1的整数中,只能被1和这个数本身整除的数”。 2、素数也可以被等价表述成:“在正整数范围内,大于1并且只有1和自身两个约数的数”。 #include<stdio.h>int main() {int i,m;printf("…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...

Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
C++.OpenGL (20/64)混合(Blending)
混合(Blending) 透明效果核心原理 #mermaid-svg-SWG0UzVfJms7Sm3e {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-icon{fill:#552222;}#mermaid-svg-SWG0UzVfJms7Sm3e .error-text{fill…...

uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...

STM32HAL库USART源代码解析及应用
STM32HAL库USART源代码解析 前言STM32CubeIDE配置串口USART和UART的选择使用模式参数设置GPIO配置DMA配置中断配置硬件流控制使能生成代码解析和使用方法串口初始化__UART_HandleTypeDef结构体浅析HAL库代码实际使用方法使用轮询方式发送使用轮询方式接收使用中断方式发送使用中…...