Arduino uno 如何使用MQ135和Arduino查找Co2和O2水平

Arduino uno 如何使用MQ135和Arduino查找Co2和O2水平,arduino-uno,iot,Arduino Uno,Iot,如何使用带有Arduino的MQ135查找Co2和O2水平或任何其他参数,我只感测到ppm数据并将其显示在屏幕上 int sensorValue; int pin8 = 8; void setup() { Serial.begin(9600); // sets the serial port to 9600 pinMode(pin8, OUTPUT); } void loop() { sensorValue = analogRead(0); // read a

如何使用带有Arduino的MQ135查找Co2和O2水平或任何其他参数,我只感测到ppm数据并将其显示在屏幕上

int sensorValue;
int pin8 = 8;
void setup()
{
  Serial.begin(9600);      // sets the serial port to 9600
  pinMode(pin8, OUTPUT);
}

void loop()
{
  sensorValue = analogRead(0);       // read analog input pin 0
  Serial.print(sensorValue, DEC);  // prints the value read
  Serial.println("ppm");
  if (sensorValue > 500) {
    // Activate digital output pin 8 - the LED will light up
    digitalWrite(pin8, HIGH);
  }
  else {
    // Deactivate digital output pin 8 - the LED will not light up
    digitalWrite(pin8, LOW);
  }

  delay(5000);                        // wait 100ms for next reading
}

我发现,如果你是第一次使用传感器,最好在获得良好的读数之前让它通电24小时。不要跳过这一步

然后是校准过程。只要在良好的空气条件下校准它,从analogRead获得大约100-150

正常空气回流~100-150
酒精返回~700
较轻气体返回约750+

编辑:
我注意到这可能会有帮助

编辑2:

我决定更新我的代码,并找到了。您可以找到所有代码。

我使用DHT22测量实际温度和湿度,以获得正确的ppm,从而确定空气质量

#include <DHT.h>

#define DHTTYPE DHT22

#include "MQ135.h"

// MQ135 gas sensor
//
// Datasheet can be found here: https://www.olimex.com/Products/Components/Sensors/SNS-MQ135/resources/SNS-MQ135.pdf
//
// Application
// They are used in air quality control equipments for buildings/offices, are suitable for detecting of NH3, NOx, alcohol, Benzene, smoke, CO2, etc
//
// Original creator of this library: https://github.com/GeorgK/MQ135


DHT dht(2, DHTTYPE);

#define PIN_MQ135 A2
MQ135 mq135_sensor = MQ135(PIN_MQ135);

float temperature = 28.0; // assume current temperature. Recommended to measure with DHT22
float humidity = 25.0; // assume current humidity. Recommended to measure with DHT22

void setup() {
  Serial.begin(9600);
}

void loop() {
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();
  if (isnan(humidity) || isnan(temperature))
  {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }


  float rzero = mq135_sensor.getRZero();
  float correctedRZero = mq135_sensor.getCorrectedRZero(temperature, humidity);
  float resistance = mq135_sensor.getResistance();
  float ppm = mq135_sensor.getPPM();
  float correctedPPM = mq135_sensor.getCorrectedPPM(temperature, humidity);

  Serial.print("MQ135 RZero: ");
  Serial.print(rzero);
  Serial.print("\t Corrected RZero: ");
  Serial.print(correctedRZero);
  Serial.print("\t Resistance: ");
  Serial.print(resistance);
  Serial.print("\t PPM: ");
  Serial.print(ppm);
  Serial.print("\t Corrected PPM: ");
  Serial.print(correctedPPM);
  Serial.print("ppm @ temp/hum: ");
  Serial.print(temperature);
  Serial.print("/");
  Serial.print(humidity);
  Serial.println("%");
  delay(600);
}
#包括
#定义DHT类型DHT22
#包括“MQ135.h”
//MQ135气体传感器
//
//数据表可在此处找到:https://www.olimex.com/Products/Components/Sensors/SNS-MQ135/resources/SNS-MQ135.pdf
//
//应用
//用于建筑物/办公室的空气质量控制设备,适用于检测NH3、NOx、酒精、苯、烟雾、CO2等
//
//此库的原始创建者:https://github.com/GeorgK/MQ135
DHT-DHT(2,DHT型);
#定义引脚MQ135 A2
MQ135 MQ135_传感器=MQ135(引脚MQ135);
浮子温度=28.0;//假设当前温度。建议使用DHT22进行测量
浮子湿度=25.0;//假设当前湿度。建议使用DHT22进行测量
无效设置(){
Serial.begin(9600);
}
void循环(){
浮动湿度=dht.read湿度();
浮动温度=dht.readTemperature();
if(isnan(湿度)| | isnan(温度))
{
Serial.println(“从DHT传感器读取失败!”);
返回;
}
float rzero=mq135_sensor.getRZero();
float correctedRZero=mq135_传感器。getCorrectedRZero(温度、湿度);
浮动电阻=mq135_传感器。getResistance();
浮点ppm=mq135_sensor.getPPM();
浮动校正ppm=mq135_传感器。getCorrectedPPM(温度、湿度);
串行打印(“MQ135 RZero:”);
串行打印(rzero);
串行打印(“\t更正RZero:”);
串行打印(已更正为零);
串行打印(“\t电阻:”);
串行打印(电阻);
串行打印(“\t PPM:”);
串行打印(ppm);
串行打印(“\t校正PPM:”);
串行打印(已更正的ppm);
串行打印(“ppm@temp/hum:”);
串行打印(温度);
序列号。打印(“/”);
连续打印(湿度);
Serial.println(“%”);
延迟(600);
}
如果您或任何人需要进一步帮助,请告诉我