Вы обеспокоены качеством воздуха в вашем районе? Хотите следить за уровнем углекислого газа (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 сегодня и обеспечьте более здоровую окружающую среду для себя и других!