Подвернулись мне тут абсолютно случайно несколько штук таких извещателей. Открываем паспорт, читаем - ИЗВЕЩАТЕЛЬ ПОЖАРНЫЙ ДЫМОВОЙ ОПТИКО-ЭЛЕКТРОННЫЙ АВТОНОМНЫЙ ИП 212-50М2. Производством занимается Группа Компаний «Рубеж» ООО «КБ Пожарной Автоматики».
Вещь с одной стороны полезная, предупредит звуком сирены о задымлении помещения. Но с другой стороны и столь же бестолковая, так, как никаких других коммуникаций с пользователем, кроме, как громко орать сиреной, не предусмотрено. И если вы не рядом, то и ничего не услышите. Хотя надо отдать должное производителю, кричит она очень громко.
Итак, принято решение, самостоятельно доработать этот извещатель - сделать его умным, чтобы можно было его интегрировать в систему Умного Дома. Протокол выбираем Zigbee.
Только хочу сразу предупредить, автор не настоящий сварщик, это у него хобби.
Итак, разбираем и смотрим, что и как у заводского датчика сделано и как он работает.
В названии присутствует слово "автономный". Это значит, прибор не связан ничем с внешним миром. И питается он от батарейки. В нашем случае, это 9 вольтовая батарейка типа "Крона".
Сердцем извещателя является система фото- и светодиодов. Один передает, другой принимает. При задымлении что-то в приемопередаче изменяется и происходит сработка.
Идем дальше. На плате извещателя нас будут интересовать всего три контакта.
Контакт с обозначением 1 - +9 вольт.
Контакт с обозначением 2 - GND.
Контакт с обозначением К1 - на нем при обнаружении задымления появляется меандр амплитудой 5 вольт и частотой примерно 2.5 кГц.
В качестве компонента Zigbee выбираем модуль фирмы E-Byte E180-Z5812SP изготовленный на чипе фирмы Telink TLSR8258. Модуль хорошо зарекомендовал себя в других моих проектах (Watermeter, ElectricityMeter).
Модуль Zigbee питается от 3.3 вольт. Так как на плате извещателя такого напряжения нет, нужен преобразователь питания с 9 вольт на 3.3. И желательно, чтобы сам преобразователь был с низким потреблением, все-таки устройство у нас на батарейках. Выбор пал на HT7133-1 с максимальным током 100 мА и входным напряжением от 5 до 30 вольт. Вопрос с питанием решен.
Остается пара вопросов.
Первый - преобразовать меандр в постоянный сигнал уровнем не более 3.3 вольта. За основу берем вот такую схему
VD1 - обычный кремниевый маломощный диод.
R6-R5 - делитель напряжения. R5 - подтягивающий резистор на землю самого чипа TLSR8258.
С1 - сглаживающий конденсатор.
Второй вопрос. Как-то нужно контролировать разряд батареи. Для этого тоже понадобится делитель напряжения с коэффициэнтом 1 к 3. Но сделать постоянно подключенный делитель нельзя все из-за того же автономного питания - лишний расход батарейки, лишние 30мкА. Поэтому нужно предусмотреть, чтобы делитель подключался только в момент измерения. Сообщество подсказало схему такого делителя.
Теперь изучим корпус на предмет дополнительных функций. И обнаруживаем, что на донышке с обеих сторон (внутренней и внешней) есть такие толкатели, которые выпирают примерно на 2 мм с каждой стороны.
При этом, если поставить на место крепежную пластину, то она нажимает толкатель и он уходит вглубь корпуса примерно на 2 мм. Это можно использовать для сигнала TAMPER. Tamper - это когда устройство не на месте, сдвинуто, отвалилось, перевернулось, т.е. находится не том положении, в котором обязано работать.
Итак, подведем итог, что мы будем контролировать и передавать в сеть.
Напряжение на батарейке в mV.
Уроверь заряда батарейки в процентах.
Посылать оповещение при обнаружении задымления.
Посылать оповещение при обнаружении, что устройство отсоединено от крепежной пластины.
Посылать команду при обнаружении задымления - чтобы можно было что-то включить или выключить.
Итак, мы уже немного понимаем, чего хотим от устройства и можем приступить к проектирования электрической схемы.
Для начала, нужно посчитать количество GPIO, которые нам понадобятся.
Кнопка управления.
Светодиод режимов работы устройства.
Включение делителя для измерения напряжения на батарейке.
Собственно само измерение батарейки.
Контроль TAMPER.
Ну и конечно контроль сработки при обнаружении задымления.
SWS - для загрузки прошивки.
RESET - для возможности перезапустить модуль.
TXD - для вывода отладочной информации через COM порт.
Итого получается нам нужно 9 GPIO. Модуль E180-Z5812SP имеет нужное их количество.
Для создания схемы и платы я использую программу EasyEda. В результате известных параметров получаем вот такую принципиальную схему устройства.
В общем схема готова, нужно прикинуть размер, расположение и крепеж платы. Идеальное место нашлось на продольной боковой стенке батареечного отсека.
Но прежде чем разводить и заказывать плату, нужно подготовить программное обеспечение. Смысл заказывать плату, если программа не заработает, как нужно.
Для тестирования берем Dev-Board совместной разработки.
Спасибо Олегу, в свое время он мне прислал их несколько штук.
Итак, возвращаемся к программе. Ранее я специально для таких случаев создал шаблон для упрощения создания Zigbee End Device устройств на TLSR8258. Берем его за основу и просто немного модифицируем согласно нашим потребностям. Для начала нужно определиться, какие кластеры Zigbee мы будем использовать.
Power configuration. У этого кластера нас будут интересовать всего два атрибута
BatteryVoltage - значение может быть от 0x00 до 0xFF. Единица измерения 100 mV.
BatteryPercentageRemaining - значение может быть от 0x00 до 0xFF. При этом там не прямая зависимоть, т.е. 100 - это не 100%. Там так - 0x00 = 0%, 0x64 = 50% и 0xC8 = 100%. Если значение будет равно 0xFF - ошибка измерения (упрощенно)
IAS Zone. Это как раз кластер оповещения. Нас будут интересовать следующие атрибуты
ZoneType - атрибут определяет тип сенсора. У нас будет 0x0028 - Fire sensor.
-
ZoneStatus - атрибут состояния сенсора и его элементов. Нас будут интересовать следующие статусы
Alarm1 - собственно это и есть оповещение о задымлении.
Tamper - оповещение, если извещатель отсоединили от крепежной пластины.
Battery - оповещение о низком уровне заряда батареи.
Test - просто для теста, будет срабатывать при нажатии кнопки на плате устройства.
-
OnOff. Этот кластер будет отправлять команду при обнаружении задымления в зависимости от настроек
On
Off
Toggle
-
OnOff Switch Configuration. Кластер позволит настроить команды, отправляемые при обнаружении задымления.
On-Off
Off-On
Toggle
Небольшой нюанс. Для сигнала Tamper лучше использовать микропереключатель NC, так ток утечки будет меньше, чем при использовании переключателя NO. Но! NC встречаются в продаже значительно реже. Я нашел на Али, но китаец, у которого числились и NC, и NO, прислал мне все равно NO. Потому, будет два файла прошивки. С NO и с NC на всякий случай.
Итак, программа написана и проверена на Dev-Board. Нужно отметить, что мы применили абсолютно стандартные методы с точки зрения ZCL. Никаких "кастомных" атрибутов и кластеров. Что это дает? Большинство Хабов Zigbee многие стандартные кластеры умеют из коробки. Это означает, что устройство без проблем заработает во многих системах. Например zigbee2mqqt корректно работает и отображает это устройство безо всякого внешнего конвертора.
Теперь можно приступить к проектированию платы.
Отправляем gerber файл одному китайцу и через 10 дней платы у нас.
Плата готова, паяем на ней все нужные элементы. И получаем вот такую картинку.
Закрепляем плату на донышке корпуса извещателя.
Для этого нужно немного убрать пластика в позиции 1. Легко делается обычными кусачками. Потом совмещаем микропереключатель с толкателем (позиция 3), проверяем, что нажатие происходит корректно и толкатель не уходит в сторону от штока переключателя на всем диапазоне нажатия. И после этого сверлом 1.8 мм сверху (стрелочки с номером 2) намечаем отверстия на корпусе. Далее рассверливаем их до диаметра 2.4 мм и раззеньковываем с обратной стороны корпуса 5 мм сверлом. И крепим это все двумя потайными саморезами M2.2x9.5 мм.
На третье отвертие не обращайте внимания. Это я экспериментировал с большим по длине кронштейном.
Дальше нужно немного доработать оригинальную плату извещателя. Так как мы заняли своей платой + кронштейном некоторое пространство, то оригинальная плата не встает на место. Мешает небольшая "бобышка" - скорей всего это какая-то катушка.
Нужно ее просто отпаять, удлинить выводы и припаять, чтобы корпус был вынесен за пределы платы.
Теперь все встает на место. Можно монтировать и проверять.
Ну а дальше нужно это все как-то подключить к Умному Дому. В качестве последнего у меня работает Home Assistant. В свое время я не захотел стать заложником какой-то одной фирмы. Ведь не секрет, что устройство одной компании совершенно не факт, что заработает с Хабом другой компании. Именно поэтому я выбрал такую схему - в качестве координатора у меня просто Стик Zigbee, а в качестве шлюза я использую zigbee2mqtt (установленный в Home Assistant в качестве Аддона). Почему я выбрал zigbee2mqtt? Все просто. К zigbee2mqtt можно подключить абсолютно неизвестное ему устройство, написав внешний конвертор, и он будет прекрасно с ним работать.
Повторюсь, zigbee2mqtt работает с устройством безо всяких конверторов, но чтобы было все красиво, чтобы была "иконка" устройства, конвертор все же мы напишем. И после этого устройство будет выглядеть в Web-интерфейсе zigbee2mqtt вот таким образом
Идем во вкладку Exposes. Там так.
Home Assistant подхватывает датчик из zigbee2mqtt автоматом.
Ну и еще. Вот например Умный Дом Яндекс. Из коробки основные параметры показывает без проблем.
P.S. Если кто-то захочет повторить приведу несколько ссылок.
Если кто-то захочет получить помощь в разработке Zigbee устройств, есть Телеграм чат, где как раз общаются по этой теме.
Комментарии (58)
Bacchus777
19.08.2024 09:28А можно покритиковать? Интересно, что по потреблению получается, а не нашел
Slacky1965 Автор
19.08.2024 09:28На gihub'e есть замеры. Просто измерить потребление всего устройства у меня нечем, там 9 вольт. А сама Zigbee плата потребляет мизир - в режиме сна около 6 мкА, а спит он практически постоянно. Но для чистоты эксперимента нужно его от Кроны запитать и наблюдать :))
DIY_Zi
19.08.2024 09:28критиковать не можно а нужно ! По замерам на гите выложенным https://github.com/slacky1965/smoke_sensor_zed 5-6 мкА всего
lumen_xp
19.08.2024 09:28+1Может быть кто-то экспериментировал с ESP-32-H2 или C6 для данных задач? Что то я присматриваюсь к ним, но нет данных по нагрузочному тестированию, потянет ли координатор или маршрутизатор 50-100 устройств?
DIY_Zi
19.08.2024 09:28я не встречал, для использования esp потребуется постоянное питание или чаще в разы придется менять батарейку. Откройте ДШ на ESP-32-H2/C6 и почитайте сколько в дипслип режиме они кушают для начала, что вы подразумеваете под нагрузочным тестированием ? любой современный координатор поддерживает минимум до 200 устройств (а есть и более)
Samid777
19.08.2024 09:28+7Сам датчик, без переделки, от солевой кроны работает около года. Потом начинает неожиданно пищать. Может раз в два часа, и попробуй его найди, потом может и каждые десять минут. Тут уже найти легче. Самое интересное, что пищать он начинает всегда ночью. Этому есть разумное объяснение. Ночью температура несколько ниже, и немного падает напряжение на АКБ, значит именно ночью оно перейдет тот порог, с которого датчик начнет просить менять батарейку, обязательно разбудив вас.
Slacky1965 Автор
19.08.2024 09:28В паспорте у него написано, что пищать начинает примерно раз в минуту в диапазоне напряжений 7.2-5.9. Это он так сообщает о необходимости замены батарейки ...
Samid777
19.08.2024 09:28Мне попадалось 3 типа таких датчиков. И ведут себя немного по разному.
Самый интересный, тоже производства рубеж, могут работать в одной системе. Ставим на датчике ведущий или ведомый, линию между ними, и один датчик контролирует состояние второго. Если интересно, могу завтра посмотреть модель этого датчика.
lumen_xp
19.08.2024 09:28+1Ну вот допустим на ESP32-H2 https://www.espressif.com/sites/default/files/documentation/esp32-h2_datasheet_en.pdf страница 34, таблица 4-10 указано 7мкА.
По поводу нагрузочного тестирования, я не нашел упоминания систем на H2 или C6 состоящих из 50 и более устройств.
lumen_xp
19.08.2024 09:28+1Согласен что на порядок больше чем у чипа в статье TLSR8258 :
Deep sleep with external wakeup (without SRAM retention): 0.4uA Deep sleep with SRAM retention: 1uA (with 8kB SRAM retention), 1.2uA (with 16kB SRAM retention), 1.4uA (with 32kB SRAM retention).Но опять же для моих задач есть откуда подзаряжать периодически и проблем вызвать 7мкА вместо 1.4мкА не должно.
rrpv
19.08.2024 09:28+2Сообщество подсказало схему такого делителя.
У вас в схеме Q3 перевернуто нарисован.
Я для подобной задачи использовал неотключаемый делитель с 10М верхним резистором и буфферный ОУ с собственным током потребления 1мкА (нашел TLV... какой-то). Мне так было проще, т.к. были сильные ограничения по размеру платы и её ручное изготовление.Slacky1965 Автор
19.08.2024 09:28А вот это возможно косяк. Мне его EasyEda подсунул в таком виде, а я не проверил. Правда плата работает. Но возможно делитель и не выключается вообще. Нужно проверить. Спасибо.
Вот так нужно было по идее - https://www.slacky.ru/images/19-08-2024%20165711.jpg
Slacky1965 Автор
19.08.2024 09:28+1Схему и Гербер поправил. Спасибо. Это была действительно ошибка. Перепаял Q3 согласно правильной схеме, проверил - работает. Если не дать высокий уровень на VBAT_ADC_EN, то результат измерения 0. А если дать, то измеряет правильно. Еще раз спасибо :))
dvb-des
19.08.2024 09:28+1Все доработки хороши , только вот изначальный выбор извещателя , оставляет желать лучшего. К сожалению эти датчики являются не лучшим выбор. Если даже не сказать - худшим выбором именно как пожарного извещателя, если отбросить совсем китайный-китай. А если этот коммент читают люди работающие в Рубеж, то могу сказать , что хуже ваших датчиков ничего видел, срабатывают от чего угодно, включая фазы луны и чесания левой пятки. Как объект с рубежевским датчиками , так всегда геморрой .
qeeveex
19.08.2024 09:28Пользуюсь точно такими же датчиками и не испытывал проблем. Перед установкой каждый проверил спичкой. Срабатывали не сразу, это правда. Ложных срабатываний после установки не было.
Возможно у вас пыльное помещение.
dvb-des
19.08.2024 09:28Ну дымовые извещатели проверяются специальным тестовым аэрозолем а не спичкой. Помещений у нас очень много , так так 25 лет занимаемся обслуживанием пожарной сигнализации.
qeeveex
19.08.2024 09:28В таком случае ваше мнение весьма ценно. Датчики Рубеж покупал для дома и качество пластика в целом не вызывает нареканий.
Какие датчики можете порекомендовать из отечественных производителей? Чтоб обязательно производилось в России.
dvb-des
19.08.2024 09:28Смотря где планируется их установка. И для каких целей. Если автономники, это один расклад, если в составе системы пожарной сигнализации - другой. Ну и соответственно первичный признак возгорания дым, пламя и(или) повышение температуры воздуха (зависит от наполнения защищаемых помещений)
qeeveex
19.08.2024 09:28Автономные, определить дым, известить, разбудить.
Думаю вам стоит написать статью с обзором таких датчиков.
dvb-des
19.08.2024 09:28Если честно, то автономные пожарные извещатели, на просторах постСССР это такой придаток, который делается производителями на основе самых дешевых извещателей , работающих в составе СПС. Они всегда работают в дефиците питания, их задача предотвратить типичный сценарий - алкашка, диван и сигарета(хотя встроенной пищалкой разбудить пьяного весьма сомнительно). Собственно и все. Для жилого дома , например у себя , я поставил полноценную адресную систему сигнализации на основе С2000М, С2000-КДЛ, С2000-КПБ, а так же ДИП-34-04 во всех комнатах кроме кухни, туалетов и котельной, а на кухне и в котельной С2000-ипг. Дополнительно в спальнях вторым датчиком с2000-ипг (реагирует на СО). Нормальные сирены в коридорах , и мост на НА
VT100
19.08.2024 09:28В стародавние времена, в несертифицированном окружении, - проверял дымовые датчики сигаретным дымом. Тлеющая сигарета снизу от сетки дымовой камеры.
Slacky1965 Автор
19.08.2024 09:28На самом деле достаточно в камеру вставить что-то типа тонкого шила или кусок провода. Там ведь главное преломление изменить ...
VT100
19.08.2024 09:28Всё-таки, проверять лучше на дыме/аэрозоли. Огонь ведь не забросит шило в камеру? С весьма высокой вероятностью.
Slacky1965 Автор
19.08.2024 09:28Но согласитесь, мне каждый раз для проверки искать дым? Я же не проверяю работоспособность заводского датчика, мне просто нужно вызвать сработку для проверки своего устройства. Подходы разные, потому и методы разные ...
VT100
19.08.2024 09:28Согласен. А поговорить?
Slacky1965 Автор
19.08.2024 09:28Это всегда пожалуйста :))
dvb-des
19.08.2024 09:28Балон аэрозоля стоит где то 15 евро, наверное для бытовых целей нет смысла его покупать.
corvair
19.08.2024 09:28У меня на даче была ложная сработка такого АДПИ из-за паучка, забравшегося в оптический путь датчика. А корпус явно унифицированный для целого ряда моделей, начиная от простейшего автономного датчика до более навороченных адресных, с тампером и т. д.
dvb-des
19.08.2024 09:28Во поэтому у нормальных извещателей на входе в дымовую камеру (оптический узел ставится сетка) что мы не лазили пауки , тараканы , и прочая живность.
A_Green
19.08.2024 09:28Это вы ещё ИПД-3.1 не зацепили...
Справедливости ради отмечу что море проблем было с ДИП-41. Сейчас продаются ДИП-141, на них нареканий гораздо меньше.
Мы применяем вместо ДИП-41-141 всегда ДИП-45. На ДИП-45 ни у меня, ни у коллег, никогда нареканий не было.
Ещё очень удобны в монтаже ДИП-31 от Болида: у них встроенный нагружающий резистор, специально под шлейфы Болидовских приборов.
dvb-des
19.08.2024 09:28Чего я только не зацепил за 25 лет. 141 датчики - барахло отменное. Центральный контакт по плюсу пятки отходит , и датчик висит но не работает, ложных подработок вагон и маленькая тележка, полное отсутствие защиты от насекомых, контактная группа сделана с улучшение и если протекает по пустотке вода - то попадая в это углубление вода вызывает полную коррозию контактной группы. Из плюсов, лёгкая разборка и съёмная дымовая камера. Если честно из российских извещателей только болид является достойным рассмотрения. Белорусская ДОКА-С тоже хороший выбор. Кстати у доки стоят токозадающие перемычки , можно под любой прибор комбинацию получить. Плюс он умеет разрывать минус, если обнаружит внутреннюю неисправность, или он нуждается в чистке . Есть память пожаров
gromaster
19.08.2024 09:28можете посоветовать нормальный датчик, который без доработок может оповещать о пожаре через интернет?
Sergiid
19.08.2024 09:28Подскажите, а контакт К1, это выход непосредственно на динамик?
Slacky1965 Автор
19.08.2024 09:28Скорей всего нет. Дорожки тяжело отслеживать. Плата залитат черным лаком. Но то, что можно разглядеть, это идет напрямую с чипа извещателя. Так что врядли напрямую.
Cognac
19.08.2024 09:28Я воспользуюсь случаем и подкину идею, вдруг кого-то заинтересует. Во многих локальных очистных станциях (септиках) есть лампа, сигнализирующая о проблеме. Она монтируется на крышке и в летнее время ее отлично видно. Но зимой, под снегом, можно долго не узнать о проблеме. В одном из видео на youtube-канале sewera (предлагают услуги обустройства участка) говорили, что реализация устройства для интеграции в умный дом занимает, по их подсчетам, минимум 20к.
Bacchus777
19.08.2024 09:28+1Ну идея использования дальномера с зигби для этих целей у меня уже давно есть :-)
Cognac
19.08.2024 09:28Идея, смотрю, в воздухе витает, потому что мне она тоже не с youtube пришла)
Bacchus777
19.08.2024 09:28У меня коллега еще лет 5 назад это делал на ESP. Я сначала хотел сделать для колодца такой девайс, но у него маловата дистанция для этого. А вот для септика вполне пойдет
VT100
19.08.2024 09:28+1Халявные датчики - хорошо. Если разработывать без халявы - то они есть (точно - были раньше) с готовым выходным сигналом.
Кнопка Tamper - питается от "подтяжки" на выводе контроллера? Тогда есть не нулевая вероятность ложных срабатываний, т.к. ток будет недостаточен для самоочистки контакта. Для кнопок довольно часто приводится параметр минимального коммутируемого тока. Раз есть свободные выводы - вполне можно использовать два (для подачи и съёма сигнала). Заодно - и решится вопрос с замнутостью кнопки.
Поаккуратнее с переносом L1. Предполагаю, что на нём генерируется повышенное напряжение для пьезосирены. Значит - импульсные токи и необходимость как можно более коротких выводов. Может быть - просто повернуть его набок и подрезать кольцо дымовой камеры?
P.S. Если страховой агент узнает и потребует убрать/заменить - будет полностью прав. Нельзя вмешиваться в сертифицированную конструкцию.
Psychosynthesis
19.08.2024 09:28А как у вас ко всему этому дом от Яндекса подключён, можете чуть подробнее описать?
Slacky1965 Автор
19.08.2024 09:28Если честно, то никак не подключен. Просто у меня есть Яндекс Хаб Zigbee. Я на нем проверяю работоспособность своих устройств. В Яндексе много чего стандартного пока нет ...
Psychosynthesis
19.08.2024 09:28Я тада не понял как он датчик увидел "из коробки", этот модуль зигби специальный для датчиков дыма что-ли?
Slacky1965 Автор
19.08.2024 09:28+1Кластер IAS можно настроить на много чего. Например, на протечку воды. Вы статью внимательно читали? Там это есть.
ZoneType - атрибут определяет тип сенсора. У нас будет 0x0028 - Fire sensor.
Psychosynthesis
19.08.2024 09:28Спасибо, понял. В железную часть статьи, признаюсь не вникал, пробежался по диагонали.
Я не думал, что у зигби есть целый официальный гайд по всем этим типам. Вообще, признаться, ранее полагал что зигби это простой протокол потипу i2c.
Multifix
19.08.2024 09:28Не могу найти этот Dev-Board. Где он есть? Имяфамилия?
Slacky1965 Автор
19.08.2024 09:28Олегу попробуйте написать.
Slacky1965 Автор
19.08.2024 09:28Кажется с телефона криво вставилась. В тексте найдите, там имя кликабельно.
Iguana2
19.08.2024 09:28Здравствуйте! А к колонке яндекс.миди в которою зигби встроен, данный конструктив можно подключить?
Slacky1965 Автор
19.08.2024 09:28Предположу, что да. Вряд ли программное обеспечение Zigbee у колонки и у хаба разное. Клатеры стандартные. Яндекс IAS видит не полностью, но самое гдавное, задымление, видит. Разряд батареи в % тоже показывает.
belokobylskiy
Спасибо за отличное решение DIY. А есть ли существенные отличия от готового датчика дыма Tuya или Heiman?
Slacky1965 Автор
Я не знаю. У меня нет последних, не могу сравнить ...