Домофон на 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 или Instagram
Остались вопросы? Мы в Telegram - @Soprut

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

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

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

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

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

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

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

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

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

  3. Илья Яшин (yshinig)
    Илья Яшин (yshinig) 2 месяца назад

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

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

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

      • Илья Яшин (yshinig)
        Илья Яшин (yshinig) 2 месяца назад

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

      • Антон Киселёв (Whilser)
        Антон Киселёв (Whilser) 2 месяца назад

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

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

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

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

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

  6. Павел Ник (bj_tracer)
    Павел Ник (bj_tracer) 2 месяца назад

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

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

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

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

      • Павел Ник (bj_tracer)
        Павел Ник (bj_tracer) 2 месяца назад

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

      • Павел Ник (bj_tracer)
        Павел Ник (bj_tracer) 2 месяца назад

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

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

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

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

          • Павел Ник (bj_tracer)
            Павел Ник (bj_tracer) 2 месяца назад

            забавно XD

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

            Очень интересно, где можно узнать как собрать все это на 2хканальном реле с esp-01 максимально просто. Пока знаний и опыта не хватает, чтобы собрать эту схему(

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

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

  7. (Stein)
    (Stein) 2 месяца назад

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

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

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

      • Павел Ник (bj_tracer)
        Павел Ник (bj_tracer) 2 месяца назад

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

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

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

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

          • (akouz)
            (akouz) 2 месяца назад

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

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

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

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

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

              • (akouz)
                (akouz) 2 месяца назад

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

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

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

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

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

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

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

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

                  • (akouz)
                    (akouz) отредактировано 2 месяца назад

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

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

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

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

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

                  • Алексей Скорятин (ixkor)
                    Алексей Скорятин (ixkor) 2 месяца назад

                    А у меня вот наоборот, с 10 кОм резистором оптрон видимо не достаточно открывался, пин не актировался (хотя что странно при первом тесте вроде бы работало, но потом ни в какую). Уменьшил до 5 кОм и всё заработало как часы. У меня правда провод домофонный подведен туда же где Raspberry Pi лежит с Hassio на борту, так что я не заморачивался с NodeMCU и прошивкой, а просто подключил схему напрямую к пинам Raspberry Pi и настроил всю автоматизацию в Node-Red. Возможно у Raspberry Pi пины менее "чувствительны" чем у NodeMCU.

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

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

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

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

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

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

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

      • (hav0k)
        (hav0k) отредактировано 2 месяца назад

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

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

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

          • (hav0k)
            (hav0k) отредактировано 2 месяца назад

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

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

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

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

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

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

                  • (hav0k)
                    (hav0k) отредактировано 2 месяца назад

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

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

                    • (VAFER)
                      (VAFER) 2 месяца назад

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

                      • (hav0k)
                        (hav0k) отредактировано 2 месяца назад

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

                        • (VAFER)
                          (VAFER) 2 месяца назад

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

  9. Антон Хлонь (Khlon_av)
    Антон Хлонь (Khlon_av) 2 месяца назад

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

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


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

  10. (Reality0802)
    (Reality0802) 2 месяца назад

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

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

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

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

  11. (akouz)
    (akouz) отредактировано 2 месяца назад

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

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

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

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

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

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


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

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

  12. (akouz)
    (akouz) 2 месяца назад

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

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

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

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

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

      • (akouz)
        (akouz) отредактировано 2 месяца назад

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

  13. (alexeylex)
    (alexeylex) отредактировано 2 месяца назад

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

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

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

      • (alexeylex)
        (alexeylex) 2 месяца назад

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

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

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

          • (alexeylex)
            (alexeylex) 2 месяца назад

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

  14. (Mirn2020)
    (Mirn2020) 2 месяца назад

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

  15. Антон Власов (freenetwork)
    Антон Власов (freenetwork) 2 месяца назад

    Покажите корпус?

  16. (Deavorn)
    (Deavorn) месяц назад

    Я правильно понимаю, что трубка при звонке снимается автоматически и остается только либо открыть дверь, либо сбросить вызов (при условии что не указан не один из сценариев по автоматическому открытию)? Есть ли смысл оставлять трубку?

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

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

      • (Deavorn)
        (Deavorn) месяц назад

        Вроде понял принцип. Попробую собрать. Спасибо!

  17. (Chupik)
    (Chupik) отредактировано месяц назад

    Приветствую! Есть проблема. Собрал все по вашей схеме - вроде все заработало, но... При звонке в домофон (нормальный режим) - в телеграм приходит сообщение "Звонок в домофон" и "Открыть/Отклонить". При выборе "Открыть" ничего не происходит. Дольше - если перевести в "Автоматическое открытие" - звонок идет, приходит сообщение "Звонок в домофон (откроется автоматически) но рэлюшки не клацают и ничего не открывают соответственно. В чем косяк??? Я как понимаю - сигнал что поступил вызов (pin D5) он видит, сообщение же отсылает... А чего дальше не отрабатывает??? И почему через телеграм не работает? Нажимаю открыть и на кнопке только кружочек крутиться и больше никаких сообщений не приходит. 

  18. (Chupik)
    (Chupik) отредактировано месяц назад

    Приветствую. Собрал девайс по вашей схеме - вроде заработало. Но... При звонке в домофон, в телеграм приходит уведомление "Звонок в домофон" и "Открыть/Отклонить". При выборе любого действия - ничего не происходит. Только над кнопкой кружочек крутиться. Дальше, если поставить автоматическое открытие -  тоже самое, звонок в домофоне звенит, сообщение приходит что дверь откроется автоматически, рэлюшки не клацают, соответственно дверь не открывается. Что я мог накасячить?????

  19. (luci.morningstar)
    (luci.morningstar) месяц назад

    Хорошая статья. Начал собирать. Вопрос, можно ли как-то доработать данную схему чтобы была возможность ответить на домофон и разговаривать с человеком который у домофона? А уже по факту разговора открыть или не открывать.

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

      Да, можно. Вам понадобится АЦП, GSM/SIP модуль, согласование уровней и немного другая схема. По цене будет примерно как "нафиг оно мне не надо".

      • (luci.morningstar)
        (luci.morningstar) месяц назад

        Ответить не как на телефонный звонок. А можно ли такую модель прокинуть в HomeKit? Тапками сразу не кидайте. Только начал постигать азы умного дома.

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

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

04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
15 октября 2018, 09:05
Прошивка для Sonoff c нативным HomeKit
02 ноября 2018, 12:14
Кнопка звонка с уведомлениями в HomeKit
15 ноября 2018, 09:42
Способы автоматизации механических ворот
17 декабря 2019, 17:49
Универсальный привод для автоматического удаленного открытия окон с простой интеграцией в умные дома
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
20 октября 2018, 22:57
Теоретические основы протокола MQTT и описание того, как он работает и для чего используется