Умный дом #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, можно построить гибкую систему мониторинга, которая предупредит о повышенной концентрации углекислого газа и поможет вовремя принять меры.
Если вам нужен индивидуальный проект под ваши задачи, мы можем разработать схему, изготовить печатные платы и полностью реализовать решение под ключ. Ознакомьтесь с примерами в нашем портфолио.
Кабель питания 220В 2х0,75мм2
Сетевой кабель питания 220ВПлощадь сечения провода 0,75 мм2Длина провода 1,8 м..
35.63грн.
Модуль расширения входов-выходов PCF8574A
Модуль расширения входов-выходов PCF8574A Расширитель портов на основе специализированной микросх..
62.18грн.
Регулятор оборотов двигателя 3А 6-28В
Регулятор оборотов двигателя постоянного тока. Скорость задается переменным резистором. Принц..
151.10грн.
Модуль 8 — Финальный проект Arduino: идеи и сборка
Модуль 8 — Финальный проект (курс для начинающих) Цель модуля: применить все полученные знани..
Адаптер USB 2.0 в TTL UART
Коммуникационный конвертер USB 2.0 в TTL UARTОснован на микросхеме CP2102Имеется самовоста..
125.05грн.





