Умный дом #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 разметка не поддерживается! Используйте обычный текст.
    Плохо           Хорошо
Кабель питания 220В 2х0,75мм2

Кабель питания 220В 2х0,75мм2

Сетевой кабель питания 220ВПлощадь сечения провода 0,75 мм2Длина провода 1,8 м..

35.63грн.

Модуль расширения входов-выходов PCF8574A

Модуль расширения входов-выходов PCF8574A

Модуль расширения входов-выходов PCF8574A Расширитель портов на основе специализированной микросх..

62.18грн.

Регулятор оборотов двигателя 3А 6-28В

Регулятор оборотов двигателя 3А 6-28В

Регулятор оборотов двигателя постоянного тока. Скорость задается переменным резистором.  Принц..

151.10грн.

Модуль 8 — Финальный проект Arduino: идеи и сборка

Модуль 8 — Финальный проект Arduino: идеи и сборка

Модуль 8 — Финальный проект (курс для начинающих) Цель модуля: применить все полученные знани..

Адаптер USB 2.0 в TTL UART

Адаптер USB 2.0 в TTL UART

Коммуникационный конвертер USB 2.0 в TTL UARTОснован на микросхеме CP2102Имеется самовоста..

125.05грн.