Умный дом #10: Датчик CO₂

Контроль качества воздуха в помещении — один из ключевых элементов системы умного дома. Концентрация углекислого газа напрямую влияет на самочувствие, концентрацию внимания и работоспособность. В этой статье мы рассмотрим, как подключить датчик CO₂ к контроллеру ESP32, обработать данные и интегрировать их в систему умного дома. Материал будет полезен как новичкам, так и опытным разработчикам, которые хотят реализовать автоматизацию мониторинга воздуха.

Список оборудования и компонентов

  • Микроконтроллер ESP32 (поддержка Wi-Fi, возможность интеграции с MQTT/Blynk)
  • Датчик CO₂ (например, MH-Z19B или CCS811)
  • Датчик температуры и влажности (опционально, для комплексного мониторинга)
  • Реле или модуль управления вентиляцией
  • Блок питания 5В (или USB-адаптер)
  • Соединительные провода, макетная плата или готовая плата

Схема подключения и описание принципа работы

В качестве примера возьмём популярный датчик MH-Z19B, который измеряет концентрацию CO₂ методом инфракрасной абсорбции. Он поддерживает UART и PWM интерфейсы. В связке с ESP32 чаще всего используется UART. Принцип работы следующий:

Вывод датчика MH-Z19B Подключение к ESP32
VCC 5V
GND GND
TX GPIO16 (RX)
RX GPIO17 (TX)

Контроллер ESP32 опрашивает датчик и получает значение в ppm (parts per million — частей на миллион). Эти данные можно вывести в Serial Monitor, передать в мобильное приложение или использовать для управления системой вентиляции.

Пример кода


// Пример работы с датчиком MH-Z19B на ESP32
#include 
#include 

MHZ19 myMHZ19;
HardwareSerial mySerial(2); // Используем второй UART

#define RX_PIN 16  // RX ESP32
#define TX_PIN 17  // TX ESP32

unsigned long timer = 0;

void setup() {
  Serial.begin(115200);
  mySerial.begin(9600, SERIAL_8N1, RX_PIN, TX_PIN);
  myMHZ19.begin(mySerial);

  Serial.println("MH-Z19B CO2 sensor init...");
}

void loop() {
  if (millis() - timer >= 2000) { // каждые 2 секунды
    int co2 = myMHZ19.getCO2();
    Serial.print("CO2: ");
    Serial.print(co2);
    Serial.println(" ppm");

    // Пример: если CO₂ выше нормы — включить вентиляцию
    if (co2 > 1000) {
      Serial.println("Включаем вентиляцию!");
      // digitalWrite(pinRelay, HIGH);
    } else {
      // digitalWrite(pinRelay, LOW);
    }

    timer = millis();
  }
}

Короткое объяснение кода

В коде используется библиотека MHZ19.h для работы с датчиком MH-Z19B. Через второй аппаратный UART ESP32 считываются данные концентрации CO₂. Каждые 2 секунды контроллер получает показания, выводит их в консоль и сравнивает с порогом (например, 1000 ppm). При превышении значения можно автоматически включать вентиляцию, открывать окна через сервопривод или отправлять уведомления в мобильное приложение.

Применение и расширение проекта

  • Мониторинг качества воздуха в квартире или офисе
  • Автоматическое включение вентиляции или кондиционера
  • Интеграция с системами «умного дома» (Home Assistant, MQTT, Blynk)
  • Отправка уведомлений при превышении пороговых значений
  • Комбинирование с датчиками температуры и влажности для комплексного анализа микроклимата
  • Использование в теплицах и зимних садах для контроля уровня CO₂
  • Создание портативного CO₂-монитора с отображением на OLED-дисплее

Заключение

Использование датчика CO₂ в умном доме позволяет контролировать микроклимат и автоматически поддерживать оптимальные условия для здоровья и комфорта. С помощью ESP32 и датчиков, таких как MH-Z19B, можно построить гибкую систему мониторинга, которая предупредит о повышенной концентрации углекислого газа и поможет вовремя принять меры.

Если вам нужен индивидуальный проект под ваши задачи, мы можем разработать схему, изготовить печатные платы и полностью реализовать решение под ключ. Ознакомьтесь с примерами в нашем портфолио.

<< Проекты << Все товары >> Статьи, уроки >>

Написать отзыв

Примечание: HTML разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Шилд аккумулятора для WeMos D1 mini

Шилд аккумулятора для WeMos D1 mini

Шилд для запитки микроконтроллера WeMos D1 от литиевого аккумулятора. Позволяет заряжать а..

74.42грн.

Плата STM32F103C8T6

Плата STM32F103C8T6

Минимальная плата контроллера от мирового лидера по производству контроллеров - фирмы STM32.Для зали..

211.50грн.

Шаговый двигатель 28BYJ-48 с модулем драйвера

Шаговый двигатель 28BYJ-48 с модулем драйвера

Количество фаз 4Рабочее напряжение 5 ВКоэффициент изменения скорости 1/64Угол поворота минимальный&n..

114.93грн.

Разработка устройств на ESP32 / Arduino / STM32 под заказ

Разработка устройств на ESP32 / Arduino / STM32 под заказ

Разработка устройств на ESP32 / Arduino / STM32 под заказ Нужен прототип или готовое ..

Arduino многомерные массивы

Arduino многомерные массивы

Привет друзья! Это уже второе видео о массивах. В первом я рассказал, что знаю об одномерных массива..