Розумний дім #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, можна побудувати гнучку систему моніторингу, яка попередить про підвищену концентрацію вуглекислого газу і допоможе своєчасно вжити заходів.
Якщо вам потрібен індивідуальний проєкт під ваші завдання, ми можемо розробити схему, виготовити друковані плати та повністю реалізувати рішення «під ключ». Ознайомтеся з прикладами у нашому портфоліо.
RFID NFC модуль PN532 — зчитувач міток 13.56 МГц для Arduino, ESP32, Raspberry Pi
PN532 NFC модуль — це універсальний RFID/NFC зчитувач для роботи з безконтактними мітками, картками ..
279.07грн.
Твердотільне реле 40А
Реле без механічних контактів на 40 А. Силовим елементом даного реле є симистор.Гальванічна розв'язк..
304.49грн.
Цифровий вольтметр + амперметр 100В 10А
Цифровий вольтметр та амперметр постійного струмуДіапазон вимірювання напруги 0 ...100 ВДіапазон вим..
127.39грн.
Мотор безщіточний A2212 1000KV
Мотор трьохфазний безколекторний для мультикоптерів 1000KVKV: 1000 обертів на вольтМаксимальна ..
360.40грн.
Мотор-редуктор з колесом 66мм
Моторчик з пластмасовим редуктором для встановлення на роботизованих машинкахВ комплект входить коле..
111.67грн.





