Розумний дім #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 размітка не підтримується! Використовуйте звичайтий текст.
    Погано           Добре
Arduino бігаюча доріжка з світлодіодів

Arduino бігаюча доріжка з світлодіодів

Arduino бігаюча доріжка з світлодіодівРобимо бігаючу доріжку з світлодіодів на Arduino. В даному вип..

Шестерня для зубчатого ременю на 36 зубців під вісь 5 мм

Шестерня для зубчатого ременю на 36 зубців під вісь 5 мм

Використовується для передачі та редукції обертаючого моменту від двигуна до вісі 5 ммКількість зубц..

79.68грн.

Драйвер крокового двигуна DRV8825 під шилд RAMPS

Драйвер крокового двигуна DRV8825 під шилд RAMPS

Драйвер DRV8825 крокового двигуна для системи RAMPS. Приєднується до спеціального шилду Arduino для ..

104.31грн.

Аналогові входи ESP32: особливості, приклади та рекомендації

Аналогові входи ESP32: особливості, приклади та рекомендації

Аналогові входи ESP32: особливості, приклади та рекомендації Особливості АЦП ESP32 Кількість к..

KiCad безкоштовна програма малювання схем та розробки друкованих плат

KiCad безкоштовна програма малювання схем та розробки друкованих плат

Сьогодні поговоримо про мега-корисну та доступну програму KiCad. Попрацювавши в ній кожен захоче від..