Датчик мониторинга углекислого газа EFEKTA Pixel Open Air, работающий по технологии Zigbee.
Здравствуйте, дорогие читатели Mysku!
Я иногда делюсь с вами своими проектами в области электроники. В эти майские праздники я подготовил для любителей собирать устройства своими руками интересный проект — бытовой датчик мониторинга углекислого газа с протоколом Zigbee и LCD-дисплеем.
Это тщательно проработанный проект, который ни в чём не уступает фабричным аналогам, а по многим параметрам и функциональности даже превосходит их.
Кратко расскажу о возможностях этого устройства.
Датчик собирает данные об уровне углекислого газа (CO2), температуре и влажности воздуха и передаёт их в сеть. На дисплее, помимо уровня CO2, отображается график изменения уровня углекислого газа за последние сутки.
Датчик работает в сети Zigbee и может служить роутером этой сети. Настройка времени происходит автоматически, а на дисплей выводится текущая дата и время.
У датчика есть RGB-подсветка, которая меняет цвет в зависимости от уровня CO2. Также есть функция ночного режима, которая позволяет полностью отключить подсветку дисплея в заданное пользователем время.
Датчик поддерживает функцию газостата. Вы можете задать верхний и нижний уровни CO2, привязать датчик к исполнительному устройству Zigbee, такому как реле или розетка, и датчик будет отправлять команды на включение или отключение этого устройства, когда уровень CO2 достигнет заданных порогов. Эта привязка будет работать даже в случае недоступности контроллера умного дома или координатора Zigbee-сети.
В датчике есть календарь событий. В определённые дни логотип Zigbee может заменяться на логотип с событием, например, с Новым годом. Количество добавленных событий не раскрывается, но предлагается найти их самостоятельно в процессе эксплуатации устройства.
Файлы для заказа плат, 3D-модель корпуса и прошивка для устройства находятся на моём GitHub.
Этот проект зародился в 2022 году. Тогда речь не шла о датчике мониторинга CO2, я просто хотел создать проект с использованием дисплеев, которые использовались в легендарных телефонах Nokia. Я купил модули с этими дисплеями на AliExpress и приступил к разработке драйвера. Так и начался мой проект.
Я сразу решил добавить RGB-подсветку, не рассматривая возможность использования обычной одноцветной LED-подсветки. В тот момент я ещё не определился с концепцией проекта. Конструкция дисплея с независимой подсветкой явно подсказывала мне, что подсветку нужно сделать необычной.
Я создал прототип модуля для дисплея и протестировал его работу с подсветкой. В результате я решил создать датчик для мониторинга уровня CO2. В качестве сенсора я выбрал самый популярный — MH-Z19. Сначала я использовал версию B, а затем пробовал и другие версии. Эти версии отличаются незначительно: некоторые заявлены как более точные, у других — чуть шире измеряемый диапазон.
Датчик работает на основе микроконтроллера soc сс2530. В проекте используется радиомодуль от китайской компании EBYTE — E18-MS1PA2-PCB.
Помимо сенсора CO2 MH-Z19, в проект добавлен сенсор температуры и влажности воздуха HTU21D.
Датчик состоит из двух плат: базовой, где расположены радиомодуль, питание и кнопки управления, и платы дисплея с дополнительными сенсорами. Это модульная система, и плата дисплея подключается к базовой плате при помощи штырьевых разъемов.
Обе платы можно спаять вручную паяльником. Однако при пайке 6-пиновых двурядных штырьевых разъемов с шагом 1,27 могут возникнуть не большие сложности у не подготовленного человека.
Обратите внимание на положение штырьевых разъемов, которые необходимо припаять к сенсору MH-Z19. На фото ниже показано, с какой стороны сенсора их нужно припаивать.
На базовой плате нужно напаять 13 компонентов, на плате с дисплеем — 11. Электронную схему проекта можно посмотреть. на моем гитхаб
Сам датчик можно вставить в корпус уже собранным или по частям, сначала вставив плату с дисплеем. К корпусу плата модуля с дисплеем фиксируется двумя винтами, а базовая плата с подключенным датчиком CO2 крепится уже на этой модуле.
Модели корпуса можно распечатать на любом типе бытовых 3D-принтеров, например, на FDM-принтерах или SLA-принтерах. Однако также можно заказать печать моделей корпуса в Китае, например, на сайте JLCPCB. Рекомендую выбрать MJF или SLS-печать.
Корпус печатается на FDM-принтере без поддержек, и весь процесс занимает не более часа.
Для печати корпусов на FDM-принтерах я рекомендую использовать PET_PEO-покрытие для печатного стола. Оно как будто специально создано для таких целей
Чтобы прошить устройство, необходимо подключить базовую плату к SmartRF04EB или CC-Debuger, а затем выполнить прошивку через программу SmartRF Flash Programmer v1.
Опишу функциональность устройства.
Основные данные:
CO2
Уровень углекислого газа
Temperature
Измеренное значение с встроенного сенсора температуры
Humidity
Измеренное значение с встроенного сенсора влажности воздуха
Linkquality
Качество связи (мощность сигнала) *1
*1 Качество связи, свойство которое не передается датчиком, а расчитывается координатором сети на основе оценки полученных данных.
Конфигурационные данные:
Backlight
Включение rgb подсветки дисплея.
Night backlight
Полное отключение подсветки в ночном режиме, по умолчанию деактивировано
Night backlight on
Время активации ночного режима
Night backlight off
Время отключения ночного режима
Contrast
Регулировка контрастности lcd дисплея
Temperature offset
Отрегулировать температуру внутреннего сенсора температуры, шаг 0.1 градус
Humidity offset
Отрегулировать влажность воздуха внутреннего сенсора влажности, шаг 1 процент
Forced_recalibration
Форсированная ручная калибровка. Калибровка осуществляется на свежем воздухе, необходимо оставить датчик на чистом воздухе на 60 минут, по истечении этого времени отправить команду. Время калибровки примерно 5 секунд, после завершения калибровки точке соответствующей чистому воздуху будет задано значение в 400ppm. Датчик отправит команду «выключено» по завершению калибровки
Automatic self calibration
Автоматическая самокалибровка реализованная производителем в серии датчиков MH-Z19. На дисплее выводится индикация режима работы сенсора. *1
Co2 error read
Количество неудачных попыток чтения сенсора MH-Z19
Enable_gas
Включение функционала газостата. Управление реле к которому привязан датчик. Для работы данного функционала необходимо сделать привязку к исполнительному устройству(реле, розетки)
Invert_logic_gas
Инвертирует логику работы управления исполнительными устройствами. Пример. Если опция отключена, при превышение верхнего заданного порога углекислого газа датчик отправит команду «Включить» на привязанное реле. Если опция включена, при превышение верхнего заданного порога углекислого газа датчик отправит команду «Выключить» на привязанное реле.
High_gas
Верхний порог углекислого газа
Low_gas
Нижний порог углекислого газа
*1 индикация режима работы автоматической калибровки
Работа в сети Zigbee
Для подключения устройства к сети Zigbee через Zigbee2MQTT необходимо установить внешний конвертер (преобразователь). Конвертер вы можете скачать с моего GitHub. В ближайшее время конвертер будет добавлен в основной репозиторий z2m.
Ввод в сеть
Чтобы подключить датчик к сети, необходимо включить координатор для приёма новых устройств. Затем нужно удерживать кнопку на датчике около 5 секунд. На дисплее появится сообщение о начале входа в сеть.
Удаление из сети
Чтобы отключить датчик от сети Zigbee, удерживайте кнопку на датчике в течение 10 секунд. На дисплее появится сообщение о выходе из сети Zigbee.
Конфигурация отчётов Zigbee2MQTT
Для настройки отчётов нужно перейти на вкладку «Отчёты» и внести изменения в поля «Минимальный интервал отчётов», «Максимальный интервал отчётов» и «Минимальный интервал отчётов при изменении».
Минимальный интервал отчётов — это время, через которое будет отправлен новый отчёт, если значение изменилось на величину, указанную в поле «Минимальный интервал отчётов при изменении», по сравнению с предыдущими значениями. Указывается в секундах.
Максимальный интервал отчётов — это время, через которое будет отправлен новый отчёт, если значения не менялись на величину, большую той, которая указана в поле «Минимальный интервал отчётов при изменении». Указывается в секундах.
Минимальный интервал отчётов при изменении — это величина изменения данных. Для каждого типа данных указывается в своём формате. Например, для температуры 1 означает 0,01°C, так как данные передаются типом integer16. Например, температура 22,54°C будет передана датчиком как 2254.
Привязка датчика EFEKTA Pixel Open Air к исполнительному устройству, реле, розетке
Осуществляется на стороне датчика EFEKTA Pixel Open Air. Для привязки датчика к исполнительному устройству для прямой передачи данных нужно в веб-интерфейсе Zigbee2MQTT перейти на страницу датчика EFEKTA Pixel Open Air и выбрать вкладку «Связь».
В первом поле слева нужно выбрать «1», в следующем поле в выпадающем списке выбрать исполнительное устройство, к которому необходимо сделать привязку. Затем ввести номер кластера на реле.
Ещё правее нужно выбрать кластер OnOff и нажать на кнопку «Связать».
Идентификация
Идентификация устройства осуществляется отправкой команды identify time. Сразу после отправки команды датчик выведет на дисплей приветствие, по которому можно легко идентифицировать устройство.
Технические характеристики:
- Модель: Pixel Open Air
- Протокол: ZigBee 3.0
- Радиомодуль: EBYTE E18-MS1PA1-IPEX (20 dbm)
- Основной сенсор: MH-Z19 (CO2)
- Дополнительный сенсор: HTU21D (Температура и влажность воздуха)
- Дисплей: цветной LCD, разрешение 84х48
- Размеры корпуса: 4 × 5.5 × 1.8 см
- Диапазон измерения углекислого газа: 400-10000, точность в диапазоне 400-2000 ±(50 ppm + 5% от показания)
- Cенсор температуры: -40°C ~ + 125 °C
- Точность: 0.2°C
- Cенсор влажности воздуха, диапазон: -0% — 100%
- Точность: 2%
- Питание: USB Type C (поддерживается работа с БП с протоколами быстой зарядки)
ГитХаб проекта — github.com/smartboxchannel/EFEKTA_Pixel_Open_Air/
Вот такой проект датчика мониторинга углекислого газа получился в итоге.
Если вы прочитали статью об этом проекте Zigbee датчика до конца, рекомендую присоединиться к моей телеграм группе DIY DEV. В группе публикуется информация о новых проектах, проводятся розыгрыши датчиков. Так же рекомендую группу самого большого русскоязычного сообщества в Telegram, посвящённому тематике Zigbee. Она называется «Вокруг да около Zigbee».
Спасибо за внимание!
- Механический самозатачивающийся карандаш KURU TOGA 0,5 мм со "свинцовыми шестеренками"
- Импульсный блок питания Lincoiah 1200 Вт (60 В)
- Планшет Teclast T50HD Android 14 Tablet 11". Большой FullHD IPS экран, 6/256ГБ
- Замена роликов на диване. Сокровище доктора Ватсона
- Переделка Mini-USB на USB-С, Creative SBX SB1240
- Доработки ...и последующий ремонт популярной кофемолки Kitfort KT-744
- Неожиданные проблемы, к которым может привести использование углового USB 3.0 адаптера
- Дельта-сигма ЦАП на PCM1794 c чудесным звучанием.
- Беспроводная клавиатура Ugreen BT5.0 & 2,4g подключение до 4 устройств за 1650 руб
- Скидка на GAN зарядное устройство Ugreen CD244, с мощностью 65Вт (цена 2087р)