• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

У Павла!

  • Контроллеры
    • Arduino
      • Приборы
      • Музыка
      • Проекты Arduino
      • Уроки Arduino
      • Игры на Arduino
      • Роботы на Ардуино
      • FLProg
    • Одноплатные ПК
      • Orange pi
      • Raspberry pi
        • Raspberry pi pico
        • Raspberry pi server
        • Проекты Raspberry pi
    • ESP
      • ESP8266
        • NodeMCU
      • ESP32
      • M5stack
    • Другие контроллеры
      • STM32
  • Умный дом
    • Home Assistant
      • Автоматизации
    • Tuya
    • Bluetooth
    • ESPHome
    • Frigate
    • Telegram
    • Яндекс
  • ЧПУ
  • 3d печать
  • Об авторе

Подключение датчика MH-Z19B к ESP32(ESP8266) и добавление его в ESPHome и Home Assistant.

1 сентября, 2021

Приобрести можно тут: http://alii.pub/5za725

Или тут: http://alii.pub/5za768

Прежде чем приступить к материалу, я Вас попрошу, если нравится то, что я делаю и хотите следить за моей деятельностью, то рекомендую подписаться на мой телеграмм канал: https://t.me/ypavla
Там я публикую новости о вышедших видео, статьях и разные устройства для умного дома и не только показываю.
Спасибо за внимание, теперь продолжим.

 

В этой статье речь пойдет о датчике углекислого газа CO2 MH-Z19B.

Для чего нужно измерять CO2 в помещении? Как известно, человек выдыхает углекислый газ. И чем больше углекислого газа в атмосфере, тем хуже человек себя чувствует. Вот пример допустимых значений в помещении:

Собственно датчик MH-Z19B измеряет эти самые PPM в атмосфере.

Минимальные значения которые датчик измеряет это 400ppm. Нам этого достаточно, так как меньше 400 ppm это уже где-то в лесу в дали от дорог. А в городе 400ppm  – это норма.

Максимальные значения которые измеряет датчик 6000ppm. Но я думаю если такой фон будет, то мало нам не покажется и будет невыносимо. Выше , да даже такой уровень измерять смысла нет.

Описание:

Модель продукта: MH-Z19B
Размер (Д * Ш * В): 33 х 20 х 9 мм
Целевой газ: CO2
Рабочее напряжение: 3,6 ~ 5,5 В постоянного тока
Средний ток: <18 мА
Уровень интерфейса: 3,3 В
Диапазон измерения: 0 ~ 0,5% VOL опционально
Выходной сигнал: UART / PWM
Время разогрева: 3 мин.
Время отклика: T90 <60 с
Рабочая температура: 0 ~ 50 ° C
Рабочая влажность: 0 ~ 95% относительной влажности (без конденсации)
Продолжительность жизни:> 5 лет

Функции:

1. Высокая чувствительность, высокое разрешение.
2. Режимы вывода: UART и PWM волна.
3. Защита от водяного пара. Отсутствие отравления.
4. Температурная компенсация, отличный линейный выход.
5. Низкое энергопотребление, хорошая стабильность и длительный срок службы.
6. Он широко используется в системах охлаждения HVAC и мониторинге качества воздуха в помещениях.

 

ESPHome.

Для ESPHome существует интеграция под названием “mhz19” . Найти описание можно по этой ссылке: https://esphome.io/components/sensor/mhz19.html

Мой код в ESPHome выглядит следующим образом:


uart:
  rx_pin: 33
  tx_pin: 32
  baud_rate: 9600

sensor:
  - platform: mhz19
    co2:
      name: "MH-Z19 CO2 Value"
    temperature:
      name: "MH-Z19 Temperature"
    update_interval: 60s
    id: my_mhz19_id
    automatic_baseline_calibration: false

На что тут нужно обратить внимание? ну во первых, то что у нас данные передаются по UART, по этому задаем пины rx и tx esp микроконтроллера.

Далее можем изменить интервал обновлений, у меня стоит 60 секунд. Графа update_interval: 60s  Меньше ставить смысла нет, так как из характеристик видно, что частота показаний 60-90 секунд.

Также бывает что датчик сбит и показывает не верные показания. Для этого нам потребуется калибровка. За это отвечает строчка automatic_baseline_calibration: false  Собственно стоит значение “false” – это значит что калибровка выключена. Если поставим “True”. То нам необходимо будет устройство выставить на улицу на 24 часа. И через 24 часа устройство от калибруется. Оно возьмет самое минимальное значение и приравняет его к 400ppm.

Согласитесь 24 часа держать датчик на улице даже просто за окном, довольно проблематично, а иногда и опасно, если пасмурно и может пойти дождь. Я выставил так датчик и даже не дождался окончания и датчик MH-Z19так и не от калибровался :(.

Но существует и другой вариант, более быстрый. И на мой взгляд он больше всех подходит нам.

Нужно добавить в код несколько строк, чтоб в сумме получилось таким образом:


uart:
  rx_pin: 33
  tx_pin: 32
  baud_rate: 9600

sensor:
  - platform: mhz19
    co2:
      name: "MH-Z19 CO2 Value"
    temperature:
      name: "MH-Z19 Temperature"
    update_interval: 60s
    id: my_mhz19_id
    automatic_baseline_calibration: false
switch:
  - platform: template
    name: "MH-Z19 ABC"
    optimistic: true
    on_turn_on:
       then:
        - mhz19.calibrate_zero: my_mhz19_id

Собственно тут добавляется блок “Switch” который добавит кнопку. При нажатии на которую, у нас датчик сбросит текущие значения на 400ppm.

Для применения данного метода, нам нужно датчик поместить в среду 400ppm(улицу) на 20 минут, чтоб данные “устаканились”. И после этого нажать на кнопку и данные прировняются к 400ppm. Я так его и калибровал.

Кнопка калибровки добавится в интеграции Home Assistant вместе с значениями температуры и наличия CO2.

ДА, датчик еще может измерять температуру, но она совсем посредственная. Так-как датчик нагревается для измерения CO2, по этому в помещении температура обманывает на пару градусов в большую сторону.

Home Assistant.

Ну а как добавить этот датчик подключенный таким способом к ESPHome в Home Assistant. Тут все как обычно.

Заходим в Настройки->Интеграции-> Добавляем новую интеграцию ESPHome и введя ip адрес нашей ESPшки к которой подключен MH-Z19B. И все интеграция добавится.

В системе Home Assistant это все будет видеться как MH-Z19 CO2 Value, MH-Z19 Temperatureи кнопка калибровки MH-Z19 ABC соответственно. И выглядит это так:

Ну а так это все выглядит при добавлении во вкладку “Обзор”:

Собственно для калибровки флажок нужно включить и значения прировняются к 400ppm. Только имейте ввиду, что датчик обновляется с интервалом 60-90 секунд. Так что при нажатии кнопки подождите минутку и все значения поменяются.

Ну а пользуясь табличкой выше, мы можем теперь после калибровки понять, когда нам лучше всего проветривать помещение, чтоб наша продуктивность выросла в разы 😉

На этом у меня все. Надеюсь кому-то это было полезным.

 

Primary Sidebar

Поиск

Новые записи

  • Автоматизация перезагрузки устройства по команде Ping.
  • Разблокирование и добавление шлюза Xiaomi gateway 3 в Home Assistant для управления Bluetooth устройствами из экосистемы Xiaomi Home (mihome)
  • Интеграция для локального управления (без интернета) ик пультом Tuya работающим по wifi из Home Assistant
  • Транслируем показания с Уличного Bluetooth Датчика температуры по BTHome на дисплей датчика температуры XIaomi LYWSD03MMC
  • Заставляем Bluetooth датчики температуры tuya и xiaomi отправлять данные по Zigbee в Home Assistant.

Официальный YouTube Канал M5Stack:

Подписывайтесь на Телеграм канал

https://t.me/ypavla

Подписаться на YouTube!

Secondary Sidebar




Подписывайтесь на Telegram Канал!

У Павла!

Footer

Copyright_У Павла! © 2025 ·