Мониторинг уровня CO2 с помощью Arduino: руководство для начинающих по датчику MH-Z14

Вы обеспокоены качеством воздуха в вашем районе? Хотите следить за уровнем углекислого газа (CO2) для более здоровой окружающей среды? Не смотрите дальше! В этом сообщении блога мы рассмотрим, как можно использовать плату Arduino и датчик CO2 MH-Z14 для эффективного мониторинга уровня CO2. Мы рассмотрим различные методы и предоставим разговорные объяснения, а также примеры кода, чтобы новичкам было проще.

Метод 1: последовательная связь
Один из самых простых способов считывания уровней CO2 с датчика MH-Z14 — использование последовательной связи Arduino. Вот фрагмент кода, который поможет вам начать:

#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX pins
void setup() {
  Serial.begin(9600);
  mySerial.begin(9600);
}
void loop() {
  if (mySerial.available()) {
    int ppm = mySerial.read();
    Serial.print("CO2 Level: ");
    Serial.print(ppm);
    Serial.println(" ppm");
  }
}

Метод 2: аналоговое считывание
Другой подход заключается в использовании аналогового выхода датчика MH-Z14 для получения точных измерений CO2. Вот пример фрагмента кода:

const int sensorPin = A0;
void setup() {
  Serial.begin(9600);
}
void loop() {
  int sensorValue = analogRead(sensorPin);
  int ppm = map(sensorValue, 0, 1023, 0, 5000);
  Serial.print("CO2 Level: ");
  Serial.print(ppm);
  Serial.println(" ppm");
  delay(1000); // Adjust the delay as per your needs
}

Метод 3: связь I2C
Если вы предпочитаете использовать протокол I2C, датчик MH-Z14 также поддерживает его. Чтобы упростить процесс, вам необходимо установить библиотеку Adafruit MH-Z14. Вот пример фрагмента кода:

#include <Wire.h>
#include <Adafruit_MHZ14.h>
Adafruit_MHZ14 mhz;
void setup() {
  Serial.begin(9600);
  mhz.begin();
}
void loop() {
  if (mhz.available()) {
    int ppm = mhz.readCO2();
    Serial.print("CO2 Level: ");
    Serial.print(ppm);
    Serial.println(" ppm");
  }
  delay(1000); // Adjust the delay as per your needs
}

Метод 4: интеграция MQTT
Если вы хотите вывести мониторинг CO2 на новый уровень и интегрировать его в систему Интернета вещей, вы можете использовать протокол MQTT (Message Queuing Telemetry Transport) для отправки показаний CO2 на облачную платформу.. Вот пример кода с использованием библиотеки PubSubClient:

#include <PubSubClient.h>
#include <WiFi.h>
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
const char* mqttBroker = "your_BROKER_IP";
const int mqttPort = 1883;
const char* mqttUsername = "your_USERNAME";
const char* mqttPassword = "your_PASSWORD";
WiFiClient espClient;
PubSubClient client(espClient);
void setup() {
  // Connect to Wi-Fi and MQTT broker
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
  client.setServer(mqttBroker, mqttPort);
  while (!client.connected()) {
    if (client.connect("CO2_Client", mqttUsername, mqttPassword)) {
      Serial.println("Connected to MQTT broker");
    } else {
      delay(500);
    }
  }
}
void loop() {
  // Read CO2 level from the sensor
  int ppm = analogRead(sensorPin);
  // Publish CO2 level to MQTT topic
  char payload[10];
  snprintf(payload, sizeof(payload), "%d", ppm);
  client.publish("CO2_Level", payload);
  delay(1000); // Adjust the delay as per your needs
}

Следуя этим методам, вы сможете эффективно контролировать уровень CO2 с помощью датчика MH-Z14 и Arduino. Предпочитаете ли вы простую последовательную связь, точные аналоговые показания, интеграцию I2C или интеграцию MQTT для систем Интернета вещей, есть метод, который соответствует вашим потребностям.

Итак, начните свой проект DIY сегодня и обеспечьте более здоровую окружающую среду для себя и других!