【Arduino基础教程】MQ135空气质量检测模块

简介: MQ135空气质量检测模块MQ135主要用于检测空气中的二氧化碳、酒精、苯、氮氧化物、氨等气体的浓度。本文将介绍MQ135的两种使用方法不使用库文件使用别人写好的库文件1.
MQ135空气质量检测模块
MQ135空气质量检测模块

MQ135主要用于检测空气中的二氧化碳、酒精、苯、氮氧化物、氨等气体的浓度。

本文将介绍MQ135的两种使用方法

  1. 不使用库文件
  2. 使用别人写好的库文件

1.不使用库文件

准备材料

  • Arduino Uno *1
  • MQ-135 传感器 *1
  • 跳线 *3
  • 面包板 *1

接线

img_eb8f9302da15c6ed8e2b43cb8e773a3c.jpe
接线示意图
MQ135 Arduino
VCC -> 5V
AOUT -> A0
GND -> GND

示例程序

const int gasSensor =0;
void setup(){
  Serial.begin(9600);      // sets the serial port to 9600
}
void loop(){
  float voltage;
  voltage = getVoltage(gasSensor);
  
  Serial.println(voltage);
  delay(1000);
}
 
float getVoltage(int pin){
  return (analogRead(pin) * 0.004882814);
  // This equation converts the 0 to 1023 value that analogRead()
  // returns, into a 0.0 to 5.0 value that is the true voltage
  // being read at that pin.
}

2.使用<MQ135.h>库

所需材料接线都与不使用库文件一样。唯一的区别就是需要下载MQ135的库。

加载库文件

https://codeload.github.com/GeorgK/MQ135/zip/master下载MQ135的库文件,在Arduino IDE中,点击项目->加载库->添加一个.zip库,选择下载好的MQ135库文件即可。

初始化设置

开始使用它之前,你需要将它通电,预热12-24个小时,之后,在20°C/35%空气温度的环境中执行下列程序,读取RZERO的值。

#include "MQ135.h"
const int ANALOGPIN=0;
MQ135 gasSensor = MQ135(ANALOGPIN);
void setup(){
  Serial.begin(9600);      // sets the serial port to 9600
}
void loop(){
  float rzero = gasSensor.getRZero();
  Serial.println(rzero);
  delay(1000);
}

将读到的值写入库文件中的MQ135.h文件中。
那么问题来了:如何找到MQ135.h文件?

  • 可以在Arduino IDE中选择文件->首选项,在弹出的窗口中可以看到项目文件夹位置,eg: d:\Users\weiwe\Documents\Arduino,然后你找到这个文件夹里面的libraries->MQ135-master->MQ135.h文件,打开便可以将RZERO的值填进去。
#define RZERO 76.63

开始检测空气质量

#include "MQ135.h"
const int ANALOGPIN=0;
MQ135 gasSensor = MQ135(ANALOGPIN);
void setup(){
  Serial.begin(9600);      // sets the serial port to 9600
}
void loop(){
  float ppm = gasSensor.getPPM();
  Serial.println(ppm);
  delay(1000);
}

参考文献

1.http://www.hackerscapes.com/2014/11/using-an-air-quality-sensor/
2.https://hackaday.io/project/3475-sniffing-trinket/log/12363-mq135-arduino-library

小贴士

  • 实验表明,MQ-135 可以检测上述提及的气体,但它并不能区别这些气体。如果你想检测某种具体的气体在空气中的含量,那你可能需要寻找其他更好的传感器了~
  • MQ-135使用一个加热模块来预热传感器,因此建议使用容量大一点的电源才不会很快就耗尽电量。
  • 附:室内空气质量对照表


    img_ca50e4084c7edd10995a8ea0b9a7ba25.jpe
    室内空气质量对照表
目录
相关文章
|
25天前
|
消息中间件 存储 JSON
rabbitmq基础教程(ui,java,springamqp)
本文提供了RabbitMQ的基础教程,包括如何使用UI创建队列和交换机、Java代码操作RabbitMQ、Spring AMQP进行消息发送和接收,以及如何使用不同的交换机类型(fanout、direct、topic)进行消息路由。
19 0
rabbitmq基础教程(ui,java,springamqp)
|
6月前
|
消息中间件 Java RocketMQ
RocketMQ实战教程之RocketMQ安装
这是一篇关于RocketMQ安装的实战教程,主要介绍了在CentOS系统上使用传统安装和Docker两种方式安装RocketMQ。首先,系统需要是64位,并且已经安装了JDK 1.8。传统安装包括下载安装包,解压并启动NameServer和Broker。Docker安装则涉及安装docker和docker-compose,然后通过docker-compose.yaml文件配置并启动服务。教程还提供了启动命令和解决问题的提示。
|
6月前
|
消息中间件 前端开发 数据库
RocketMQ实战教程之MQ简介与应用场景
RocketMQ实战教程介绍了MQ的基本概念和应用场景。MQ(消息队列)是生产者和消费者模型,用于异步传输数据,实现系统解耦。消息中间件在生产者发送消息和消费者接收消息之间起到邮箱作用,简化通信。主要应用场景包括:1)应用解耦,如订单系统与库存系统的非直接交互;2)异步处理,如用户注册后的邮件和短信发送延迟处理,提高响应速度;3)流量削峰,如秒杀活动限制并发流量,防止系统崩溃。
|
3月前
|
网络协议 物联网 测试技术
App Inventor 2 MQTT拓展入门(保姆级教程)
本文演示的是App和一个测试客户端进行消息交互的案例,实际应用中,我们的测试客户端可以看着是任意的、支持MQTT协议的硬件,通过订阅及发布消息,联网硬件与我们的App进行双向数据通信,以实现万物互联的智能控制效果。
178 2
|
3月前
|
消息中间件 监控 Ubuntu
RabbitMQ安装配置,超详细版教程
以上步骤为您提供了在Linux环境下安装RabbitMQ的详细过程。安装Erlang作为基础,然后通过添加官方源并安装RabbitMQ本身,最后对服务进行配置并启用Web管理界面。这些步骤操作简单直观,只需要跟随上述指南,即可在短时间内将RabbitMQ服务器运行起来,并进行进一步的配置和管理。不要忘记硬件和网络资源对性能的影响,确保RabbitMQ能够满足您的应用需求。
196 0
|
6月前
|
消息中间件 存储 Apache
RocketMQ实战教程之常见概念和模型
Apache RocketMQ 实战教程介绍了其核心概念和模型。消息是基本的数据传输单元,主题是消息的分类容器,支持字节、数字和短划线命名,最长64个字符。消息类型包括普通、顺序、事务和定时/延时消息。消息队列是实际存储和传输消息的容器,是主题的分区。消费者分组是一组行为一致的消费者的逻辑集合,也有命名限制。此外,文档还提到了一些使用约束和建议,如主题和消费者组名的命名规则,消息大小限制,请求超时时间等。RocketMQ 提供了多种消息模型,包括发布/订阅模型,有助于理解和优化消息处理。
|
5月前
|
消息中间件 Serverless 网络性能优化
消息队列 MQ产品使用合集之客户端和服务器之间的保活心跳检测间隔是怎么设置的
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
6月前
|
消息中间件 存储 Java
RocketMQ实战教程之NameServer与BrokerServer
这是一个关于RocketMQ实战教程的概要,主要讨论NameServer和BrokerServer的角色。NameServer负责管理所有BrokerServer,而BrokerServer存储和传输消息。生产者和消费者通过NameServer找到合适的Broker进行交互,不需要直接知道Broker的具体信息。工作流程包括生产者向NameServer查询后发送消息到Broker,以及消费者同样通过NameServer获取消息进行消费。这种设计类似于服务注册中心的概念,便于系统扩展和集群管理。
|
5月前
|
消息中间件 Java RocketMQ
教程:Spring Boot整合RocketMQ的配置与优化
教程:Spring Boot整合RocketMQ的配置与优化
|
6月前
|
消息中间件 中间件 Java
RocketMQ实战教程之几种MQ优缺点以及选型
该文介绍了几种主流消息中间件,包括ActiveMQ、RabbitMQ、RocketMQ和Kafka。ActiveMQ和RabbitMQ是较老牌的选择,前者在中小企业中常见,后者因强大的并发能力和活跃社区而流行。RocketMQ是阿里巴巴的开源产品,适用于大规模分布式系统,尤其在数据可靠性方面进行了优化。Kafka最初设计用于大数据日志处理,强调高吞吐量。在选择MQ时,考虑因素包括性能、功能、开发语言、社区支持、学习难度、稳定性和集群功能。小型公司推荐使用RabbitMQ,而大型公司则可在RocketMQ和Kafka之间根据具体需求抉择。

热门文章

最新文章