Углекислый газ очень негативно влияет на организм человека и является канцерогеном. Нахождение в помещении с высокой концентрацией СО2 может вызывать слабость, сонливость, головные боли, проблемы с концентрацией внимания. В связи с этим необходимо отслеживать уровень СО2 и принимать меры для его снижения.
На сегодняшний день есть несколько вариантов доступных датчиков для измерения уровня СО2, самым интересным является SenseAir S8. Его показания и будем выводить в сеть zigbee.
Zigbee часть реализована на модуле E18-MS1PA1-PCB, кроме него на плате присутствуют собственно сам сенсор СО2 SenseAir S8 и два варианта датчиков температуры, это DS18b20 и более универсальный датчик BME280, позволяющий измерять температуру, влажность и атмосферное давление.
Плата спроектирована в популярном форм-факторе «usb stick»можно распаять как micro USB так и USB-A разъем. Со стороны сенсора присутствует кнопка для запуска процесса принудительной калибровки и два светодиода для отображения пороговых значений. С обратной стороны так же находится сервисная кнопка, используется для запуска процесса подключения к сети и для принудительной отправки измеренных значений.
Сборка устройства не должна вызвать затруднений даже у людей с начальными навыками пайки, все элементы достаточно крупные, за исключением BME280.
В собранном виде устройство выглядит так, обратите внимание что между SenseAir S8 и платой необходимо оставить зазор.
Прошивку для этого устройства написал @anonymass, она имеет открытый исходный код и доступна здесь. Датчик поддерживается в z2m через внешний конвертер. Выглядит это так
так же реализована поддержка в SLS GatewayПо результатам теста обнаружилась высокая чувствительность SenseAir S8, сенсор оперативно реагирует на изменение уровня СО2. Для примера, ниже мой суточный график.
@anonymass для сравнения прислал свои графикиНа плату возможна установка сенсора MHZ19B, его поддержка появилась в последней версии прошивки.
Для желающих повторить файлы для заказа плат, ВОМ.
Прошивку самостоятельно собирать 🙂 у меня главный вопрос запустится ли без распаянных элементов BME280 или DS18b20 ? и чем выдерживать зазор между платой и датчиком?
Не надо ничего собирать, там есть релизы. Запустится конечно без температурных. Зазоры чем угодно, например с помощью этого

Кто-нить может кратко описать процесс сбора прошивки
Там же есть собранные релизы
не увидел подскажите где именно смотреть?
Спасибо за ваш труд! Скажите пожалуйста какая толщина платы должна быть?
1,2мм. достаточно
скачал я AirSense-master.zip и что дальше с ним делать в папке firmwares пусто
https://github.com/diyruz/AirSense/releases
Назначение SW1, SW2 и LED1, LED2, LED3 подскажите?
SW1 — для джойна zigbee, предолагаю
Один из LED для состоянии zigbee видимо.
Расскажите плиз
Насколько я понял из кода:
LED1 моргает при обращении к датчику CO2
LED2 моргает если значение CO2 выше первой уставки, при этом LED3 отключен.
LED3 моргает если значение CO2 выше второй уставки, при этом LED2 отключен.
SW1 сброс и джойн
А SW2 ?
Разобрался:
LED1 блинкает при обращении к датчику CO2.
LED2 моргает если значение CO2 выше первой уставки, при этом LED3 отключен.
LED3 моргает если значение CO2 выше второй уставки, при этом LED2 включен.
SW2 сброс и джойн E18
SW1 калибровка CO2
Спасибо за ваши разработки.
Появилось несколько вопросов:
1) Будет ли версия платы под готовый модуль BME280 ? т.к текущий использованный датчик довольно сложно распаивать
2) Если датчики не распаяны они будут отображаться либо при загрузке прошивка будет их искать и решать показывать или нет.
3) почему SenseAir S8 решили развернуть стороной сенсора к плате ? это не влияет на показания?
Нужно ли что то дополнительно делать, чтобы работало в homeassistant. Со modkam stick v3?
У меня нет НА поэтому точно сказать не могу, но если вы пробрасываете из z2m то все должно работать.
чтобы подключить этот датчик к homeassist нужно установить внешний конвертор:
1. зайти в конфиг zigbee2mqtt и найти чему равно data_path. это может быть /config/zigbee2mqtt или /share/zigbee2mqtt
2. зайти в эту директорию и скачать DIYRuZ_AirSense.js (wget https://github.com/diyruz/AirSense/releases/download/2.0.0-0/DIYRuZ_AirSense.js)
3. прописать конвертер в конфиг, для этого найти external_converters: [] и заменить на
external_converters:
— DIYRuZ_AirSense.js
4. перезапустить Zigbee2mqtt.
5. спарить устройтсво. чтобы спарить необходимо разместить устройтсво поближе к координатору. в принципе спарить можно и вначале.
при установке есть подвондрые камни:
в версии zigbee2mqtt 1.16.1 установка конверторов не работает.
чтобы исправить эту проблему пришлось перейти на другой репозиторий https://github.com/zigbee2mqtt/hassio-zigbee2mqtt , в котором проблема исправлена
при переходе спаренные устройства сохраняются, только нужно сохранить полностью старый конфиг. если измениться data_path, то все спаренные устройства пропадут.
исправить это можно будет если вернуть config в старое значение.
это больше не нужно делать,
чтобы подключить этот датчик к homeassist нужно установить внешний конвертор:
1. зайти в конфиг zigbee2mqtt и найти чему равно data_path. это может быть /config/zigbee2mqtt или /share/zigbee2mqtt
2. зайти в эту директорию и скачать DIYRuZ_AirSense.js (wget https://github.com/diyruz/AirSense/releases/download/2.0.0-0/DIYRuZ_AirSense.js)
3. прописать конвертер в конфиг, для этого найти external_converters: [] и заменить на
external_converters:
— DIYRuZ_AirSense.js
4. перезапустить Zigbee2mqtt.
5. спарить устройтсво. чтобы спарить необходимо разместить устройтсво поближе к координатору. в принципе спарить можно и вначале.
при установке есть подводные камни:
в версии zigbee2mqtt 1.16.1 установка конверторов не работает.
чтобы исправить эту проблему пришлось перейти на другой репозиторий https://github.com/zigbee2mqtt/hassio-zigbee2mqtt , в котором проблема исправлена
при переходе спаренные устройства сохраняются, только нужно сохранить полностью старый конфиг. если измениться data_path, то все спаренные устройства пропадут.
исправить это можно будет если вернуть config в старое значение.
больше это не нужно делать
Думали использовать BME680 ? Он по пинам совместим. Имеет датчик содержания ЛОВ. Стоит на $6 дороже, не критично.
Не вижу особого смысла измерять VOC, реагирует на все, вплоть до цитрусовых.
Верно. Но если параметр растет а ты не ел апельсины, то есть повод подумать.
Носом не все можно уловить. Иначе и СО2 был бы не нужен.
С СО2 как раз все понятно, если он растет и его «чует» специализированный сенсор то надо принимать меры. В остальном, сценарии когда в доме может случайно оказаться некое вещество которое возбудит VOC сенсор мне кажется маловероятным.
Было бы очень желанно получить возможность управлять диодом ws2812 с платки, чтоб самому сделать и настроить индикатор. Как-то реально это впилить в прошивку? Тогда можно парк устройств на ней сильно расширить.
На плате нет ws2812, поэтому нет и поддержки в прошивке.
А что Вы можете сказать про модули E18-MS1PA2-PCB? Китайца говорит, что это тоже самое, только лучше (обновлённая версия). Можно ли их паять во все проекты на E18-MS1PA1-PCB без каких-либо изменений прошивки?
Это не тоже самое, они скрывают какой чип усилителя стоит в этом модуле. Скорее всего китайский клон сс2591, так как прошивка именно для этого чипа нужна для него. Почитать можно здесь.
Т.е. надо переделывать прошивку на 91-й усилитель или лучше вообще не связываться т.к. 91-й хуже 92-го?
Берите E18-MS1PA1-PCB и живите спокойно.
Блин мне китаец тоже сказал что тоже самое и я заказал по все проекты ms1pa2. Как выходить из данной ситуации?
в гите есть прошивка под E18-MS1PA2-PCB
Поделитесь плиз файлом Pick&Place нужен кроме BOM для заказа на jlcpcb.
Это проект что бы вы поработали руками, пайки там немного.
Добрый день!
А проектом формата Easyeda можно поделиться?
и BME280 такой, я правильно понимаю?
https://www.electronshik.ru/item/BOSCH/BME280
Проектом нет, BME280 да, такой.
Добрый день!
а еще вопрос, на шелкографии не видно какой стороной bme паять.
Можете подсказать?
спасибо, разобрался)
А расскажите какой стороной ? Не могу понять.
Первый раз такое мелкое паяю.
Увеличьте фото в статье, там видно ключ. Левый нижний угол.
Прошу тапками не кидаться, просто не увидел инструкции по прошивке девайса. Где их можно посмотреть?
Здесь
добрый день!
на гите 2 версии лежит:
DIYRuZ_AirSense_EndDevice.hex
DIYRuZ_AirSense_EndDevice_CC2592.hex
я правильно понимаю, что первая под CC2530?
Они обе под сс2530, одна для модуля без усилителя вторая соответственно с усилителем.
По ссылке на датчик пишут что товар на картинке 1.14 версии, а присылают датчик 1.00 версии. Имеется ли разница в версии датчика для описываемого устройства?
Я покупал именно по той ссылке что указана, какая там внутренняя версия меня мало интересует. Устройство соответствует даташиту и работает в устройстве прекрасно.
Собрал с датчиками MH-Z19b и BME280 (BME модулем). Все работает в НА через SLS с последней прошивкой. Но иногда (раз в час-полтора) значение давления изменяется ровно на порядки (было 765,1 мм становится 7651. Может и 76510 стать). После перезапуска приходит в норму на какое-то время. Проблема именно в давлении. Остальные показатели норм. С чем может быть связано?
Обновите прошивку сенсора СО2 до версии 2.0.0 и слс до последней.
Так и сделано. Прошивка сенсора 2.0.0 SLS Version: 2020.10.12d2. Проблема очень плавающая — может прыгнуть через пол часа, а может через полтора. И всегда кратно 10. И только давление.
Свяжитесь с автором SLS и отправьте ему лог.
Проблема известна, она в прошивке датчика. Автор в курсе, но исправлять не спешит, ибо исходники открыты, исправляйте 🙂
поставьте свежую прошивку в датчик. все решится.
Добрый вечер, хочу сделать управление кранами при утечки воды и подсоединить это к сети ZigBee. Собрал плату https://easyeda.com/editor#id=eb841c7f373e4be78a501e96c7dd1ea4|b67539266afd47689abbb8d006a49ea7 , но у меня не очень со схемотехникой и разводкой самой платы, я больше по софту. Можно ли с Вами автор связаться(телега, почта и т.д.) по поводу помощи в схемотехнике и разводке платы, с меня прошивка?
P.S.: В основном у меня был опыт работы с STM32/Arduino/ESP32. Сейчас хочу сделать что-нибудь на ZigBee(СС2530)
Вот ссылка на сам проект https://easyeda.com/igor.demyanov/control-ball-valves
В общем вы неплохо справляетесь 🙂 пишите в телеграм
Добрый день! Из личного интереса тоже посмотрел Ваш проект. Мысль отличная. Если проект ожидается быть открытым, то для унификации предложил бы сделать управление не менее 6 кранами, так так 2 крана на гвс и хвс + 2 на полотенчик — это достаточный минимум, но только для маленьких квартир и старых домов. В новостройках сейчас отопление горизонтальной разводки — это +2 крана, в трешках в новостройках сейчас не редко 2 сан.узла — это +2 крана. Итого уже набегает 8 кранов, конечно это не везде и не у всех, но 6 хотя бы уже больше перекрывает потребностей. По входным датчикам — по мне так максимально возможное кол-во (в зависимости от места на плате, свободных ждпио и тд) ибо протечки могут случиться не только у стояка, но и везде где есть «стык» и давление воды. Ни на что не претендую.
Ограничение есть на кол-во выводов чипа. Можно подумать как решить эту проблему. Но сам я хочу сделать больше чем одно устройство так как несколько стояков. Второй пункт почему возможно ненужно так много двигателей, стояки обычно разнесены по квартире на достаточно большое расстояние, следовательно один блок управление сделать не получится.
а если нечто типа MCP23017 притулить?
тогда можно гирлянду собрать — мама не горюй)
Если нет проекта, можно как-то склеит гербер файлы разных проектов? Чтобы можно было заказать платы размером 10на10 с разными проектами? Не заказывать 5 платок одного проекта потом 5 другого и платить за каждый заказ отдельно.
5 плат стоят $2, что вы хотите сэкономить?
Скачал исходники, думал на базе них можно собрать свое zigbee устройство. Но в хидерах куча файлов, которых нет в исходниках:
#include «AF.h»
#include «OSAL.h»
#include «OSAL_Clock.h»
#include «OSAL_PwrMgr.h»
#include «ZComDef.h»
#include «ZDApp.h»
#include «ZDObject.h»
#include «math.h»
Что это и где брать?
Вам сюда https://t.me/zigdev
собрал две штуки, но чтото так и не понял, как они настроиваются
co2 на одной 360, и иногда поднимается до 600.
на другой 1800 и меньше чем на до 1300 не опускается.
и не работает bme280 на обоих. тут, конечно, может распаял неправильно… непонятно, как проверить. внешнюю плату припаять?
есть подозрение, что не работает из-за отсутсвия подтяжки i2c…
С senseAir не нуждаются в настройке, если вам не нравятся данные вынесите сенсор на улицу и на 5 сек нажмите кнопку на плате со стороны сенсора. Для i2c подтяжка внешняя не нужна, pull up включен в прошивке.
разобрался. с bme280. я их наоборот запаял.не очень понятно на картинке как должно быть. а вызванивая путаешься.
https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bme280-ds002.pdf
вот сенсор изображен на рисунке. вентиляционное отверстие в верхней части корпуса должно быть с внутренней стороны платы.
и вторая проблема: если заказываешь модули ebyte из ссылки в статье, то нужно прошивку выбирать с cc2592! обычная прошивка тоже делает вид что работает, но очень неустойчиво, на гране приема. поэтому трудно разобраться это проблемы в общем или конкретно с прошивкой.
а вот с Co2 пока печаль.
есть два таких модуля и для сравнения китайский датчик co2,pm2,5 тоже на senseair, последний чтото разумное показывает.
а эти два один завышает в два раза другой занижает также.
но вроде какие-то подвижки за два дня работы есть. жду автокалибровки.
по поводу выноса на улицу — пробовал и один и другой — не срабатывает. в общем-то ничего не меняется для того, что завышает.
В статье явно указано какой использовать модуль, есть линк и прошивка под него, что вы там пытаетесь выбирать, непонятно.
Там две прошивки лежит. Посмотрите
Проект прошивки открытый, там же могут появиться прошивки и под другие модули. Изначально прошивка была под модуль указанный в статье и собственно она там же и есть.
Какую из прошивок необходимо прошивать для работы E18-MS1PA1-PCB ?
DIYRuZ_AirSense_EndDevice.hex
DIYRuZ_AirSense_EndDevice_CC2592.hex
DIYRuZ_AirSense_EndDevice_CC2592
Здравствуйте, есть ли возможность заказать готовый модуль с доставкой?
Да, по ссылке можно купить практически все проекты modcam: https://t.me/zigberu
Добрый день! Я правильно понимаю, что датчик можно запитать от, например, телефонного зарядника на 5В и он будет работать?
Да
Sorry for my English: I still have a few E18-MS1 modues (so without the Power Amplifier. Will your firmware still work, as it includes code to enable(maybe expecting feedback from) the PA? Of course the E18-MS1 will have a reduced range compared to the E18-MS1PA1. Thanks.
If I understand you correctly, you need to use the firmware
DIYRuZ_AirSense_EndDevice.hex
Зависит от того какие вы модули используете, с усилителем или без. Хотите что бы устройство так же было роутером или просто конечным устройством.
Я хочу спросить, может ли гринго изменить курс по этой ссылке
Потому что это дешевле соответствует нашему стилю DIY
https://item.taobao.com/item.htm?spm=a1z0d.6639537.1997196601.31.3aa274843EO8oh&id=616435137980