Домофон на ESP

29 октября 2019, 07:59

По заявкам телезрителей, расскажу как сделать "умный" домофон на ESP, который работает с любым координатно-матричным домофоном, как с домофонной трубкой, так и без неё, интегрируется в Home Assistant или куда угодно по MQTT.

Немного теории

Несмотря на то, что сейчас всё чаще можно встретить цифровые домофоны, большинство подъездов всё-таки оснащены довольно старыми координатными. Это самые разные вариации домофонов Visit, Cyfral, Metakom, Altis и другие.

Координатный, или координатно-матричный домофон, работает очень просто. Для подъезда с лимитом в 100 квартир в распределительном щитке домофона будет две шины для подключения проводов, пронумерованных от 0 до 9. К квартире 25 пойдут провода 2 от первой шины и 5 от второй. К квартире 78, соответственно, провода 7 с первой шины и 8 со второй.

В состоянии покоя, между проводами, заведенными в квартиру, будет примерно нулевое напряжение. Динамик домофонной трубки имеет сопротивление около 50 Ом и подключен в линию. Таким образом, вызывная панель понимает, что аппарат на линии и на него можно звонить.

При звонке в линии появляется меандр около 12В, который поступает на динамик для звонка.

Если поднять трубку, сопротивление в линии увеличивается до 300-400 Ом, а напряжение примерно до 6-7 В и вызывная панель понимает, что трубка поднята.

При нажатии кнопки открытия, сопротивление измеряется килоомами. Вызывная панель воспринимает высокое сопротивление (равно как и обрыв линии) как сигнал к открытию двери.

От теории к практике

Ниже список компонентов, которые использовал я.

k02-2.jpg

Кнопка тактовая 6х6х13мм

k02-3.jpg

Резисторы

Вместо nodeMCU можно взять любую ESP с подходящим количеством пинов. Wemos D1 Mini например.

Вместо двухканального модуля реле можно взять два одноканальных или просто два реле, но придется сделать обвязку.

Светодиод и кнопка не обязательны, работать будет и без них. Более того, без них можно обойтись вот такой приятной платой с двумя реле на ESP-01.

1600x_image.png?1572262997

Схема подключения довольно простая. Контакты линии обозначены как Line+/-, контакты домофонной трубки как Intercom+/-.

Если домофонную трубку подключать не собираетесь, просто замкните контакты Intercom через резистор 50 Ом.

Собирается с минимумом пайки. Припаять нужно будет только один резистор к оптопаре (дилетанты могут намерить в линии 3В и взять волшебный Nano Switch от Амперки, но я бы не рекомендовал - от высокого тока оптопара может и сгореть).

Прошивка

Не буду выкладывать весь YAML сюда. Ссылка на прошивку.

Для прошивки вам понадобится ESPHome.

Не забудьте заполнить поля в секции WiFi.

Что умеет?

Изначально проект разрабатывался под интеграцию с Home Assistant и был основан на MQTT. Позднее я переписал прошивку на ESPHome и теперь он нативно добавляется в HA через интеграции, а также без проблем работает по MQTT с любой другой системой УД.

Схема работы простая. Устройство определяет входящий звонок, светодиод загорается красным. Одинарное нажатие кнопки откроет дверь, долгое нажатие отменит вызов.

В режиме ожидания одинарное нажатие кнопки переключает режимы автоматического открытия двери (открыть один раз / открывать всегда). Долгое нажатие выключит автоматическое открытие.

В Home Assistant видится как замок и два переключателя для режимов. Открыть дверь можно и удаленно.

1600x_image.png?1572263364

Также, для Home Assistant есть специальный package с автоматизациями, который отправляет уведомления и позволяет управлять домофоном через Telegram. Положите его в /config/packages/domofon.yaml и поправьте сервисы под себя.

Скоро в ESPHome появится поддержка HTTP запросов и работа с уведомлениями станет возможна прямо на ESP.

А чо так сложна?

Проекту больше года и это, пожалуй, второй по популярности вопрос, который мне задают. Первый - а можно ли из схемы что-то выкинуть.

И действительно, в соседней статье ведь написано, что нужно всего-то одно реле и всё заработает.

К сожалению, не всегда. Большинство домофонов не совсем тупые и без снятия трубки дверь не откроют, а некоторые еще и хотят, чтобы трубка была снята некоторое время, прежде чем открыть дверь.

Все эти моменты учтены в прошивке и настраиваются в специальной секции. Проект проверен на десятке разных домофонов и работает стабильно.

Проект по-прежнему развивается. Всегда актуальную версию можно найти на GitHub.


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. (meta11ist87)
    (meta11ist87) 14 дней назад

    Годнота! Спасибо. В новом доме какой-то хитрый домофон ставят, похоже мне эта тема не подойдёт, а жаль.

  2. Александр Вайдуров (AlexAW)

    Вот этот вариант. Мне больше понравился. По тому, что  универсален, как по железу, так и по типу интегрируемых систем и  может быть установлен просто в разрыв линии трубки.

    К стати предложение автору! Есть накиданная но не отмакетированная схема без реле. Все принципы те же, только вместо реле транзисторы, есть  предпосылки чего нить и в линию выдать Используя ШИМ модуляцию. Могу дать на макетирование. Помогу с отладкой. 

    Самому попробовать нет возможности, за отсутствием домофона.

    • Николай Васильчук (anonym.tsk)

      У меня есть схема с двухканальным оптроном вместо двух реле, но пока не проверил.

      А по поводу ШИМ в линию, скорее всего ничего не выйдет. Но было бы интересно.

  3. Илья Яшин (yshinig)
    Илья Яшин (yshinig) 14 дней назад

    Все круто молодцом! если бы еще сделали бы схему для печатной платы вообще круто было бы.

    • Николай Васильчук (anonym.tsk)

      Не уверен, что кто-то будет травить плату, паять все компоненты, когда можно заказать на али и собрать на проводах. Но планы есть и схема постепенно уменьшается (но усложняется).

      • Илья Яшин (yshinig)
        Илья Яшин (yshinig) 14 дней назад

        тут делают только схема нужна в EgleCad. будет все красиво и не дорого. 

      • Антон Киселёв (Whilser)
        Антон Киселёв (Whilser) 13 дней назад

        В Китае за два бакса пять штук промышленного качества с шелкографией напечатают xD А при желании еще даже все запаяют. 

  4. Александр Вайдуров (AlexAW)

    Ну вот кто нить мою схему опробует отладит могу и развести

  5. Александр Вайдуров (AlexAW)

    давай в телеграмм в личку или группу Diy

  6. Павел Ник (bj_tracer)
    Павел Ник (bj_tracer) 14 дней назад

    Ну фактически повторение того, что лежит на хабре :)))

    А главный минус - опять работает через прокладку с хк. Да, система более универсальная в плане прикручивания в другие умные дома, но чем больше звеньев в цепочке, тем меньше надежности 🤷🏼♂️

    • Николай Васильчук (anonym.tsk)

      Без проблем можно прошить HAA и сконфигурировать как вам нравится.

      • Павел Ник (bj_tracer)
        Павел Ник (bj_tracer) 14 дней назад

        Я на ХАА и собираю %)))
        Уперся в отсутствие розетки в прихожей XD

      • Павел Ник (bj_tracer)
        Павел Ник (bj_tracer) 13 дней назад

        и, кстати, приятную плату с есп-01 и 2мя реле не получится использовать -  STM8S103 там не просто так стоит ;)))
        если читанете описание, то там расписано для чего - есп-шка по уарт засылает стмке битовые последовательности, декодируя которые, последняя и переключает реле.
        это дюже удобно при малом кол-ве пинов основного контроллера или для впихивания в глобальный проект (там есть внешний уарт).

        а большинство нативных прошивок для есп просто дергают пины.

        • Николай Васильчук (anonym.tsk)

          Вообще я ссылку на другую плату на banggood в статью добавлял. Но модераторы решили вместо нее вставить ссылку на Али. Найду нужную, напишу вам. Там esp01 и на gpio разведены реле.

    • Николай Васильчук (anonym.tsk)
      Николай Васильчук (anonym.tsk) отредактировано 14 дней назад

      Ну а вообще, устройство самодостаточно, управляется кнопкой и может работать даже без подключения к сети. Кажись на хабре такого не было )

  7. (Stein)
    (Stein) 14 дней назад

    А чем Nano Switch (TLP172A) хуже PC817B? Просто использовал как-то раз...

    • Николай Васильчук (anonym.tsk)

      Он не хуже. Просто резистор в нем стоит на 1кОм для работы с 3.3В уровнями. Если хотите его использовать в линии домофона, то нужно будет посчитать и добавить перед ним соответствующее сопротивление.

      • Павел Ник (bj_tracer)
        Павел Ник (bj_tracer) 14 дней назад

        вообще-то норм там резюк.
        если открыть даташит на оптопару, то у нее номинальное значение напряжения на управляющем светодиоде 1,15в при рабочем токе 10мА. соотв если у нас на вход подается 12в, то по закону ома сопротивление получается 1085 Ом. Это чуть больше того что кладет амперка XD

        • Николай Васильчук (anonym.tsk)

          Открыл даташит на TLP172A. Читаем: Trigger LED current: 3 mA (max)

          Для 12В получаем 4кОм. В линии домофона бывает и до 16В доходит.

          • (akouz)
            (akouz) 13 дней назад

             Trigger LED current: 3 mA (max)  - это максимальный ток, при котором гарантируется срабатывание TLP172A. А предельно допустимый ток светодиода равен 50 мА. С резистором 1 кОм можно до 50 В подавать, светодиод не сгорит. При этом будет устойчиво срабатывать примерно при 3 В.

            • Николай Васильчук (anonym.tsk)

              Да, я с вами соглашусь.

              Но все равно не рекомендовал бы использовать с пиковым током.

              Ну и конкретно здесь есть второй момент. Чем меньше сопротивление на оптроне, тем меньше оно в цепи. На старте проекта я использовал другой оптрон с резистором на 1кОм. И хотя сопротивление падает всего на 3 Ом, при вызове примерно в трети случаев я получал ошибку.

              • (akouz)
                (akouz) 13 дней назад

                Но все равно не рекомендовал бы использовать с пиковым током.

                Наверное, под "пиковым током" подразумевается предельно-допустимый ток? Так его и не будет, пока напряжение не достигнет 50 В. А при 12..16 В ток будет меньше одной трети от предельно допустимого, что более чем достаточно для надежной работы.

                > На старте проекта я использовал другой оптрон с резистором на 1кОм. И хотя сопротивление падает всего на 3 Ом, при вызове примерно в трети случаев я получал ошибку.

                Какую ошибку? Какой вы использовали оптрон? При резисторе 1 к никаких "ошибок" быть не должно. 12..15 мА через светодиод - это абсолютно нормальный, довольно типичный режим работы оптрона.

                Глядя на вашу схему, я бы сказал, что она легко подвержена сбоям, может из-за этого были ошибки? Но номинал резистора к этому отношения никакого не имеет. 

                • Николай Васильчук (anonym.tsk)

                  Ошибку на вызывной панели домофона. Вместо 50 Ом на трубке мы получаем ~47 Ом. Добавим к этому, что вряд ли на динамике трубки ровно 50 Ом и получаем ошибку.

                  > Глядя на вашу схему, я бы сказал, что она легко подвержена сбоям
                  Очень интересно, каким )

                  • (akouz)
                    (akouz) отредактировано 13 дней назад

                    > Вместо 50 Ом на трубке мы получаем ~47 Ом. Добавим к этому, что вряд ли на динамике трубки ровно 50 Ом и получаем ошибку.

                    Изменение сопротивления будет менее чем на 2.5%, да еще падение напряжения на светодиоде 1.5 В надо учесть. При том что сопротивление трубки имеет разброс порядка 10...20%, на этом фоне 2.5% - пустяк Так что это объяснение не работает.

                    Другое дело, что при 1 кОм ток через светодиод в 12-15 мА возможно будет обнаружен домофоном как снятая трубка. Вот это весомый резон, почему сопротивление в цепи светодиода оптрона не должно быть меньше некоторой величины. 

                    > Очень интересно, каким

                    Импульсным помехам, которые могут сбивать и сбрасывать NodeMCU. У дешевых китайских реле проходная емкость примерно 10 пФ. Короткие помехи свободно проходят через них.

  8. (hav0k)
    (hav0k) 13 дней назад
    Я думал звук будет:). Смысл открывать не пойми кому?

    • Николай Васильчук (anonym.tsk)
      Николай Васильчук (anonym.tsk) отредактировано 13 дней назад

      Например, я жду гостей. Чтобы не бегать к домофону, я включаю режим автоматического открытия.

      Еще например, можно определять что я подошел к дому и автоматически открывать подъезд.

      А еще можно сделать автоматическое отклонение вызова (ночной режим, например).

      Еще можно открыть удаленно курьеру, чтобы он попал в подъезд (я так воду заказываю, мне её оставляют на пороге в моё отсутствие).

      Да массу примеров можно придумать.

      • (hav0k)
        (hav0k) отредактировано 13 дней назад

        Это всё хорошо. Конечно можно и так. Но не чего беспроводного не могу найти, а трубки они все "уродские". В теории можно блютуз подключить через согласование, но как подать команду открытия или сброса.

        • Николай Васильчук (anonym.tsk)

          А чем ESP не беспроводная? Или я неправильно вас понял.

          • (hav0k)
            (hav0k) отредактировано 13 дней назад

            Мне звук охото, хотя если поставить свою камеру у входа в подъезд, то можно обойтись и без звука.

            • Николай Васильчук (anonym.tsk)

              Были планы сделать звук, завернуть его в SIP или GSM. Но я так редко пользуюсь домофоном, что оно того не стоит. Слишком сложно.

              • (hav0k)
                (hav0k) 13 дней назад
                Да я щас тоже не могу вспомнить когда им пользовался. Обычно звонят в начале на сотовый, но я закажу сип шлюз и на досуге попробую помучать его.

                • Николай Васильчук (anonym.tsk)

                  Там надо согласовывать уровни микрофона/динамика. Я на эту идею забил )

                  • (hav0k)
                    (hav0k) отредактировано 13 дней назад

                    Придется. И вольтаж там другой. 

                    Не буду рекламировать. Нашел преобразователь одно и многоабонентных аналоговых домофонов в IP, но цена конская 11к.

                    • (VAFER)
                      (VAFER) 12 дней назад

                      IP конвертер Slinex XR-30IP или аналоги под другим брендом.
                      В районе 7к в розницу.

                      • (hav0k)
                        (hav0k) отредактировано 11 дней назад

                        Этот 4 проводной, а требуется 2х проводной, можно ли согласовать?

                        • (VAFER)
                          (VAFER) 11 дней назад

                          можно с помощью модуля типа "Модуль сопряжения МСК"

  9. Антон Хлонь (Khlon_av)
    Антон Хлонь (Khlon_av) 13 дней назад

    Хорошая статья) у меня домофон визит уже несколько лет работает подобным образом.

    Только управление по mqtt и гели запросами. Прошивку писал сам.


    у меня есть вопрос, как реализован сброс звонка?

  10. (Reality0802)
    (Reality0802) 13 дней назад

    Отличная статья! 

    Скажите можно ли данную схему применить к цифровому домофону Маршал?

    • Николай Васильчук (anonym.tsk)

      Как есть не получится. Но с небольшими доработкам можно подключить к контактам внутри домофонной трубки. В чате @esphome есть люди, которые это делали

  11. (akouz)
    (akouz) отредактировано 12 дней назад

    в соседней статье ведь написано, что нужно всего-то одно реле и всё заработает. К сожалению, не всегда. Большинство домофонов не совсем тупые и без снятия трубки дверь не откроют, а некоторые еще и хотят, чтобы трубка была снята некоторое время, прежде чем открыть дверь.

    Этот довод никак не объясняет, зачем в схеме присутствует второе реле. И с одним реле можно виртуально "снять трубку" и держать ее "снятой" сколько требуется.

    Из приведенной в статье схемы следует, что при положенной трубке интеркома устройство может выдавать в линию  домофона 2 состояния:

    1. Трубка положена (сопротивление в линии 10 кОм)
    2. Трубка снята (сопротивление в линии 330 Ом)

    Это делается при помощи одного реле, которое подключит 330 Ом к линии, или лучше - при помощи TLP172A (Nano Switch). Единственно что при этом не получится - интерком не будет изолирован от линии. Тогда если трубка интеркома  снята, интерком будет "путаться под ногами" и мешать нормальной работе - невозможно будет дистанционно "повесить трубку". 

    Чтобы изолировать интерком от линии можно использовать второй TLP172A.


    • Николай Васильчук (anonym.tsk)

      При положенной трубке в линии будет сама трубка, то есть 50 Ом. Одним реле не обойтись. Сейчас делаю схему на оптронах, плюс возможности немного расширю

  12. (akouz)
    (akouz) 12 дней назад

    Понял. Тем не менее, 2 шт  TLP172A прекрасно справятся. У них проходная емкость не 10 пФ, как у реле, а всего 0.8 пФ. Помехоустойчивость будет лучше. 

    • Николай Васильчук (anonym.tsk)

      Реле здесь были выбраны из-за простоты сборки. Сейчас делаю схему, где вместо оптрона и двух реле будет два двухканальных оптрона. Будет возможность включения беззвучно режима (то есть отключения трубки), ну и реле не будут щёлкать. Но схему уже на коленке будет не собрать, надо будет паять довольно много обвязки. Так что, в массы, скорее всего, не пойдет. Но статью напишу как сделаю.

    • Николай Васильчук (anonym.tsk)

      И, кстати, две TLP172A не справятся. Нужен нормально-закрытый оптрон, чтобы работало без питания.

      • (akouz)
        (akouz) отредактировано 12 дней назад

        Существуют и нормально-замкнутые твердотельные реле. Например, CPC1114N, сопротивление канала 2 Ома. Примерно вдвое дороже чем  TLP172A

  13. (alexeylex)
    (alexeylex) отредактировано 9 дней назад

    Огромное спасибо за старания ! реализовал в полной мере ! но есть вопрос по последующему нажатию которое должно переключать ражим работы ничего не происходит ( тоесть однократное включает режим одиночного открытия длинное переводит в обычный режим 

    • Николай Васильчук (anonym.tsk)

      Я недавно добавил ещё один режим и сломал эту логику. Скоро починю и напишу вам.

      • (alexeylex)
        (alexeylex) 9 дней назад

        вообще отлично буду очень ждать ! и новой схемы тоже !

        • Николай Васильчук (anonym.tsk)

          Ну проблему с кнопкой вроде починил. Попробуйте обновить прошивку с гитхаба.

          • (alexeylex)
            (alexeylex) 9 дней назад

            все отлично заработало ! еще раз спасибо ! жду новой версии!!!

  14. (Mirn2020)
    (Mirn2020) 9 дней назад

    Классная статья. Жаль что плохо разбираюсь в теме. В своё время тоже хотел сделать домофон умнее. Стоит координатный домофон на подъезде. Купил вызванную панель и видеодомофон от CTV + блок сопряжения. Фото/видео с лестничной клетки пишет, дверь от подъезда открывает. Как бы это ещё у умному дому на Home Kit прицепить? 

К списку статей

Похожие статьи

04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
02 ноября 2018, 12:14
Кнопка звонка с уведомлениями в HomeKit
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
15 ноября 2018, 09:42
Способы автоматизации механических ворот
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
01 октября 2018, 07:43
Нативный HomeKit на ESP8266
15 июня 2018, 12:13
Охранная система в гараж на ESP8266 с интеграцией в Apple HomeKit
24 августа 2018, 12:18
Пошаговая установка HomeAssistant
27 августа 2018, 10:14
Интегрируем ХА в HomeKit
02 октября 2018, 18:41
Установка SDK для компиляции прошивок под HomeKit