Розумний дім #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, можна побудувати гнучку систему моніторингу, яка попередить про підвищену концентрацію вуглекислого газу і допоможе своєчасно вжити заходів.
Якщо вам потрібен індивідуальний проєкт під ваші завдання, ми можемо розробити схему, виготовити друковані плати та повністю реалізувати рішення «під ключ». Ознайомтеся з прикладами у нашому портфоліо.
Arduino SIM800 GPRS HTTP GET запит
Привіт друзі! Ми з кожним разом знаємо все більш цікаві застосування GSM-модуля SIM800. На цей раз н..
Як звільнити пам'ять Arduino?
Програмуючи контролери Arduino ми часто потрапляємо в ситуацію, коли компілятор лається на нестачу п..
Датчик обертання енкодер KY-040
Енкодер обертання KY-040 - це обертальний датчик, який характеризує ступінь повороту вісі та в якому..
37.93грн.
Гвинт М2,5х14мм нержавійка
Гвинт з нержавійки з різьбою М2,5 для кріплення елементів любительських проектівДовжина різьби 14 мм..
1.11грн.
Arduino Nano SIM800 SMS команди
Привіт друзі! Ми з кожним разом знаємо все більш цікаві застосування GSM-модуля SIM800. Цього разу я..




