基于单片机的空气质量检测系统

news2025/2/23 14:37:01

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 技术交流认准下方 CSDN 官方提供的联系方式

文章目录

    • 概要
  • 一、主要内容
  • 二、系统方案设计
    • 2.1 系统方案设计
    • 2.2 主控制器模块选择
  • 三、 系统软件设计
    • 4.1 程序结构分析
    • 4.2系统程序流图
    • 实物
    • 仿真
  • 四、结论
  • 五、 文章目录

概要

  本设计使用STC89C52单片机作为主控单元,由夏普GP2Y1010AU粉尘传感器采集周围环境的粉尘浓度值,再经过ADC0832模数转换器对测量到的信号进行模数转换,最后将数值通过LCD1602液晶显示屏显示出来,然后根据事先通过按键设置好的阈值相比较,超出则蜂鸣器报警。

关键词:GP2Y1010AU0F传感器,粉尘检测,空气质量

一、主要内容

本文的主要内容就是使用STC89C52单片机作为主控单元,由夏普GP2Y1010AU粉尘传感器采集周围环境的粉尘浓度值,再经过ADC0832模数转换器对测量到的信号进行模数转换,最后将数值通过LCD1602液晶显示屏显示出来,然后根据事先通过按键设置好的阈值相比较,超出则蜂鸣器报警。

二、系统方案设计

本系统主要分成四个部分:粉尘传感器测量空气中的粉尘浓度,液晶显示屏显示实时数值,按键上下调整设定的阈值,当测量到的实时数值超过所设定的阈值时,蜂鸣器发出声音报警。

2.1 系统方案设计

本系统的工作流程就是首先由粉尘传感器测量周围环境中的粉尘的浓度,然后通过ADC0832模数转换器将模拟量转换为数字量,之后再将数字量送入STC89C52单片机中,通过单片机内部的数据以及程序处理,将测量到的数据传输到液晶显示屏上显示出来,我们可以通过按键模块进行设置阈值,当粉尘传感器实时监测到的粉尘浓度超出所设置的阈值时,蜂鸣器会产生报警。系统的总体框图如下图2.1所示:
在这里插入图片描述

图2.1 总体结构框图

2.2 主控制器模块选择

1、方案一:我们可以采用CPLD 作为主控单元,其中文是复杂可编程逻辑器件,因为它是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,所以这就使CPLD可以轻易地实现各种复杂的逻辑功能,并且这个器件编程灵活、适用范围广、设计制造的成本较低、开发工具先进,尤其是这个器件对设计者的硬件要求不高。但是本设计只用到了很简单的数据传输以及处理的功能,并不需要复杂的逻辑功能,并且从价格方面来考虑,这个方案并不适合我们这个设计。
2、方案二:采用STC89C52单片机作为主控单元,分析我们的设计方案就可以得出STC89C52单片机最为适合,因为STC89C52单片机控制比较简单,但是功能强大,其功耗和电压都比较低,便于供电,方便随身携带,单片机的编程语言也是比较基础和简单,出现错误也容易检查。还有一点就是CPLD无法媲美的,那就是STC89C52单片机价格十分便宜,而且非常容易购买。

三、 系统软件设计

4.1 程序结构分析

在整个设计中,分别有液晶屏显示程序、粉尘浓度测量程序、按键设定报警阈值程序,这三个子程序都要通过主程序来居中调度。首先通过粉尘传感器测量到周围环境中粉尘的浓度,然后将数据输送到主程序中,经过主程序的处理,再将数据送到液晶显示屏上显示,然后通过按键来设定报警阈值。

4.2系统程序流图

主程序的主要功能是读取粉尘传感器测量出来的数据,并加以处理。粉尘传感器的测量速度为1秒1次,主程序不间断的读取这些数据,并将此数据与设定的报警阈值相比较,当前的浓度值没有超过报警阈值,没反应。但是一旦超出报警阈值,主程序则会向报警电路发送信号,蜂鸣器响。其程序流程见图4.1所示。

在这里插入图片描述

图4.1 系统工作流程图

实物

在这里插入图片描述
在这里插入图片描述

仿真

在这里插入图片描述

四、结论

  本设计使用了STC89C52单片机作为整个系统的大脑,起着居中调度数据和资源的作用,将单片机的利用程度发挥到最大。因为本系统可以实时检测出当前环境的粉尘浓度,并且能在液晶显示屏上显示出来,极为方便。
在这次设计中,从开始构思,设计电路仿真图,购买元器件,到最后的焊接成功,这期间让我对相关的知识有了一个系统性的回顾,从而也体会到了理论结合实践的重要性。从定题到完成论文,这期间不断地出现问题,不断地解决问题,在这过程中,使我学到了很多新的知识,也让我懂得了合理配置资源的重要性。

五、 文章目录

目 录
摘 要 I
ABSTRACT II
第一章 引言 3
1.1 课题研究背景与意义 3
1.2 国内外研究现状 3
1.3 本文主要内容 4
第二章 系统方案设计、比较与论证 5
2.1 系统方案设计…5
2.2 主控制器模块选择 5
2.3 按键的选择 6
2.4 显示模块的选择 6
2.5 电源选取 6
第三章 系统硬件设计 7
3.1 GP2Y1010AU0F传感器 7
3.1.1 内部原理图 7
3.1.2 主要参数 7
3.1.3 电光特性 8
3.1.4 LED的输入条件…8
3.1.5 LED输入端子的输入条件 8
3.1.6 电路接线 9
3.1.7 检出方法 11
3.2 ADC0832模数转换器 13
3.3 LCD显示模块 15
3.3.1 LCD1602的特性 15
3.3.2 LCD1602的使用说明 17
3.4 STC89C52单片机 19
3.4.1 STC89C52单片机主要特性 20
3.4.2 STC89C52单片机引脚说明…21
3.5主控制模块 23
3.6显示模块电路 24
3.7报警模块的设计 25
3.8按键模块的设计 25
3.9粉尘模块电路设计 26
3.10电源部分的设计 27
第四章 系统软件设计 28
4.1程序结构分析 28
4.2系统程序流图 28
4.2.1 DS18B20初始化程序流程图 29
4.2.2读空气中粉尘浓度子程序流程图 29
第五章 系统的安装与调试 31
5.1安装步骤 31
5.2电路的调试 31
第六章 总结与展望 34
6.1 本文总结 34
6.2 展望…34
参考文献 35
致谢 …36

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

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

相关文章

汇编学习(1)

汇编、CPU架构、指令集、硬编码之间的关系 ● 汇编语言:这是一种低级语言,用于与硬件直接交互。它是由人类可读的机器码或指令组成的,这些指令告诉CPU如何执行特定的任务。每条汇编指令都有一个对应的机器码指令,CPU可以理解和执…

25 行为型模式-备忘录模式

1 备忘录模式介绍 备忘录模式(memento pattern)定义: 在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态. 2 备忘录模式原理 3 备忘录模式实现 /*** 发起人角色**/ public class Originator {private Strin…

城中村智能电表改造解决方案

随着我国城市化进程的加快,城中村作为城市发展的矛盾焦点,其居住环境、管理水平等问题日益凸显。城中村用电管理存在着用电安全隐患、电费核算不准确、偷电现象屡禁不止等问题。为了提高城中村用电管理水平,确保用电安全,推进智能…

通过pip,查看tensorflow和tensorflow-probaility版本

查看tensorflow和tensorflow-probability版本 如果在加载tensorflow 和 tensorflow-probablity时,没有成功的话,可以看下这两个包的版本,网上可以搜一下,这两个包版本是否搭配。 从上述信息总可以看到tensorflow包的版本是2.13.0…

DSP开发例程(4): logbuf_print_to_uart

目录 DSP开发例程: logbuf_print_to_uart新建工程源码编辑app.cfgos.cmain.c 调试说明 DSP开发例程: logbuf_print_to_uart SYS/BIOS 提供了 xdc.runtime.Log, xdc.runtime.LoggerBuf 和 xdc.runtime.LoggerSys 这几个模块用于日志记录. 日志信息在 应用程序调试和状态监控中非…

Web服务器与Http协议

Web服务器与Http协议 一.Web服务器 1.简介 Web服务器一般指网站服务器,也称之为WWW(World Wide Web)服务器Web服务器是指驻留于因特网上某种类型计算机的程序Web服务器不是硬件服务器,而是软件服务器。Web服务器其主要功能是提供网上信息浏览服务&…

论文阅读——BERT

ArXiv:https://arxiv.org/abs/1810.04805 github:GitHub - google-research/bert: TensorFlow code and pre-trained models for BERT 一、模型及特点: 1、模型: 深层双向transformer encoder结构 BERT-BASE:(L12, H…

2.19每日一题(分段函数求定积分)

注意:当x>1时需要分区间求定积分 用变上限积分的定理:如果 f(x) 连续,则 F(x) 的导数 f(x) 变上限积分的导数为 f(x) 1、先判断 f(x) 是否连续———>判断在分界点的值是否相等,相等则 f(x) 连续,则 F(x&#…

实体店做商城小程序如何

互联网电商深入各个行业,传统线下店商家无论产品销售还是服务业,仅靠以往的经营模式,很难拓展到客户,老客流失严重,同时渠道单一,无法实现外地客户购物及线上客户赋能等。 入驻第三方平台有优势但也有不足…

Java练习题2020-4

小明今天收了N个鸡蛋&#xff0c;每个鸡蛋各有重量&#xff0c;现在小明想找M个重量差距最小的鸡蛋摆成一盒出售&#xff0c;输出符合条件的最重一盒鸡蛋的总重量 输入说明&#xff1a;第一行&#xff0c;鸡蛋个数N(N<1000) 每盒个数M(M<N)&#xff1b;第二行&#xff0…

如何使用PHPicker在iOS系统无授权下获取资源

本文字数&#xff1a;2766字 预计阅读时间&#xff1a;18分钟 自iOS14系统开始&#xff0c;苹果加强了用户隐私和安全功能。新增了“Limited Photo Library Access”模式&#xff0c;同时在授权弹窗中增加了“Select Photo”选项。这意味着用户可以在应用程序请求访问相册时选择…

Unity编辑器扩展之自定义Inspector面板

首先找到的是这个[CustomEditor(typeof(Class), true)]&#xff0c;这个东西能够自己绘制在Inspector视图的显示规则&#xff0c;但是&#xff01;如果这个类被另一个类持有&#xff0c;他就没作用了&#xff0c; 效果图&#xff1a; 1.对CustomClass类编辑自定义面板 2. 对M…

为什么Facebook运营需使用IP代理?

随着互联网的快速发展和全球用户规模的不断增长&#xff0c;Facebook已成为了全球最大的社交媒体平台之一。然而&#xff0c;大批量地运营Facebook账号往往需要借助IP代理这一工具&#xff0c;提高账号的安全性和可靠性&#xff0c;使得运营Facebook更加流畅。那么Facebook为什…

QGIS008:QGIS拓扑检查、修改及验证

摘要&#xff1a;本文介绍使用QGIS拓扑检查器和几何图形检查器检查图层的拓扑错误&#xff0c;修改拓扑错误&#xff0c;并对修改后的图层进行错误验证。 实验数据&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1Vy2s-KYS-XJevqHNdavv9A?pwdf06o 提取码&#xff1a…

源码角度分析Java 循环中删除数据为什么会报异常

一、源码角度分析Java 循环中删除数据为什么会报异常 相信大家在之前或多或少都知道 Java 中在增强 for中删除数据会抛出&#xff1a;java.util.ConcurrentModificationException 异常&#xff0c;例如&#xff1a;如下所示程序&#xff1a; public class RmTest {public sta…

系统架构师-第10章-软件架构的演化和维护-学习笔记

软件架构一般会经历初始设计、实际使用、修改完善和退化弃阳的过程&#xff0c;其中修改完善的过程实际上就是软件架构的演化和维护过程&#xff0c;演化和维护的H 的就是为f 侦软件能够适应环境的变化而进行的纠铺性修改和完善性修改等。 软件架构演化和定义的关系 演化的重…

069:mapboxGL加载GPX,转换为geojson,显示图形

第069个 点击查看专栏目录 本示例是演示如何在vue+mapbox中加载GPX,转换为geojson,在地图上显示图形。这里面用到了大剑师的gpx2geojson插件,很方便的做了数据的转换。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果所用的gpx文件配置方…

【开源】基于SpringBoot的衣物搭配系统的设计和实现

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 衣物档案模块2.2 衣物搭配模块2.3 衣物收藏模块 三、系统设计3.1 用例设计3.2 E-R图设计3.3 数据库设计3.3.1 衣物档案表3.3.2 衣物搭配表3.3.3 衣物收藏表 四、系统实现4.1 登录页4.2 衣物档案模块4.3 衣物搭配模块4.4…

力扣每日一题79:单词搜索

题目描述&#xff1a; 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格…

25-什么是事件循环

一、是什么 &#x1f37f;&#x1f37f;&#x1f37f;JavaScript是一门单线程的语言、 意味着同一时间内只能做一件事&#xff0c;但是这并不意味着单线程就是阻塞&#xff0c;而实现单线程非阻塞的方法就是事件循环 在JavaScript中&#xff0c;所有的任务都可以分为 同步任…