Совсем недавно я уже писал про доработку домофона протоколом MQTT.

В комментариях Владимир instalator написал:
Схема явно не продумана. Нет необходимости вообще вмешиваться в схему трубки, достаточно подключить устройство в разрыв линии и эмулировать трубку подбросом нужных сопротивлений.
Я почему-то упустил из виду возможность имитации трубки домофона, ведь такой подход действительно не потребует вмешиваться в схему самой трубки, можно будет перехватывать управление на подходе к ней. Более того, такой подход, при необходимости, позволяет вообще не использовать домофонную трубку. Повесили устройство и открываем дверь с телефона. При желании можно и вовсе развить идею до батарейного питания.

Кстати говоря, в предыдущей схеме была ошибка (статью я уже поправил), на которую никто не обратил внимание, и которая приводила к нестабильной работе домофона. Иногда он отказывался открывать дверь, а я не мог понять причину. Я подключил светодиод между + и - линии, в то время как родной светодиод при поднятии трубки отрывался от земли. Таким образом, в моем варианте в момент открытия двери сопротивление в линии было недостаточно высоким (по крайней мере я так думаю) из-за присутствия светодиода и панель домофона не понимала сигнал открытия. Понял я это только когда начал рисовать новую схему с “подбросом нужных сопротивлений”.

Принцип работы трубки известен, я описывал его в предыдущей статье. Единственное, что я возможно упустил из виду: панель дает вызов одному абоненту в один конкретный момент времени и ждет от него принятия решения. Просто так, без факта входящего звонка, взять и подать сигнал на открытие двери подъезда бесполезно. Это важно, но не все, кажется, знают об этом, так как были несколько комментариев по этому поводу.

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

Реализация выглядит так:


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

  • Реле1 нужно для перехвата управления: если мы хотим вмешаться в работу домофона, то реле перекидываем, в противном случае трубка остается подключенной и работает штатно (это же касается случая, когда на нашем устройстве нет питания, реле замкнуто на трубку).
  • Реле2 в нормальном состоянии обеспечивает землю для светодиода и держит в линии сопротивление 51 Ом для имитации сопротивления лежащей трубки (если конечно Реле1 перекинуто).
  • Когда идет вызов, на микроконтроллер через оптопару Звонок поступает сигнал, и принимается решение. В случае открытия, перекидываем Реле1 и Реле2 в противоположные состояния.
  • Сначала вызывная панель ждет снятия трубки с базы: тут дело за транзистором и оптопарой Открыть. По-умолчанию транзистор притянут к питанию — открыт, и в линии имитация снятой трубки ~400 Ом. Когда на оптопару Открыть подается сигнал, транзистор притягивается к земле и разрывает цепь, что равносильно сигналу на открытие.

Чисто на оптопаре у меня, почему-то, сделать не получилось: панель домофона постоянно выдавала ошибку Lin1, что означало обрыв в линии: либо тока не хватало, либо скорости открытия.

Довешивал транзистор и резисторы навесным монтажом:



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


Или что-то подобное, зависит от вашей фантазии. Только надо внимательно подбирать твердотельные реле, т.к они имеют ненулевое сопротивление канала и могут оказать существенное влияние в то время, когда в линии должно быть 50 Ом. У канала твердотельного реле обычно сопротивление от 5 до 25 Ом, что на фоне необходимых 50 Ом скажется существенно.

Программа претерпела совсем небольшие изменения в части устранения недочетов и добавления режима Открыть беззвучно. На практике чаще всего я пользовался комбинацией Выключить звук и Открыть разово, решил объединить две настройки в одну: звонок перехватывается в беззвучном режиме, открывает дверь и переходит обратно в режим со звуком.


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


Но теперь это не обязательно, можно вешать устройство в разрыв линии.

Желающие могут попробовать (может я и сам попробую чуть позже) переделать устройство на батарейное питание. Для этого придется немного изменить схему и логику работы: звонок в домофон будет пробуждать микроконтроллер, он в свою очередь подключаться к wi-fi и проверять, есть ли для него команды на открытие. Если нет, то выставлять статус звонка и ждать принятия решения, после чего снова уходить в сон. Затраты энергии не должны быть большими, домофон звонит не так часто, главное правильно сделать схему питания. В случае батарейного питания не понадобится гальваническая развязка, всю логику можно будет сделать на обычных транзисторах. Идея мне кажется интересной, т.к не у всех есть возможность подвести питание к домофону. Может есть желающие помочь с корпусом и мобильным приложением? Можно попробовать запилить в серию.

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

Комментарии (30)


  1. GarryC
    09.10.2017 12:22
    +1

    По поводу автономного питания — надо посчитать, может, сможете получить питание от напряжения звонка


    1. oWart Автор
      09.10.2017 12:26

      В моем понимании это невозможно, но я могу ошибаться


      1. GarryC
        09.10.2017 13:29
        +1

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

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


  1. Avenit
    09.10.2017 12:48
    +1

    Мне видится более правильное решение — адаптер для FXS шлюза, превращающее домофон в IP телефон, вызов можно настроить и на мобильный клиент. Открывание двери через DTMF коды.


    1. barbanel
      09.10.2017 12:54

      Дальше — интегрировать в умный дом и встроить Arduino


    1. serafims
      09.10.2017 21:30

      Есть, кстати, адаптеры домофон-телефон
      Паскаль вроде, на tec.org.ru встречал.


  1. vyacheslavteplyakov
    09.10.2017 14:42
    +2

    На сколько затратно сделать цельную плату или в виде легко монтируемого модуля в штатную трубку? Я бы купил если бы такое было на рынке.


    1. oWart Автор
      09.10.2017 14:45

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


      1. vyacheslavteplyakov
        09.10.2017 15:20

        ЕСП очень прожорлива, а спящий режим по таймеру тут не прикрутить… батарейки не проживут и месяца.


        1. oWart Автор
          09.10.2017 15:56

          Так не по таймеру… пробуждение по сигналу вызова


          1. vyacheslavteplyakov
            09.10.2017 17:20

            Это если нас дёргают с улицы, но как мы будем менять все эти замечательные настройки типа открывать всем, не открывать никому, если девайс спит?


            1. oWart Автор
              09.10.2017 17:34

              Устройство будет в «тихом» режиме. Звонок в домофон будет пробуждать микроконтроллер, он в свою очередь подключаться к wi-fi и проверять, есть ли для него команды. Если команд нет, коммутировать сигнал на трубку. Если команды есть — открывать.


              1. vyacheslavteplyakov
                09.10.2017 17:58
                +1

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


                1. oWart Автор
                  09.10.2017 18:26

                  Да, идея именно такая.
                  Насчет задержки надо эксперементировать


                1. holomen
                  09.10.2017 20:53

                  Ну подождет человек у домофона не пару минут, пока поднимешься с дивана в обычном случае, а Х+30сек. Причем Х — гораздо меньше.
                  За что боремся?


  1. vp7
    09.10.2017 15:08
    +1

    Ждём версию 3.0, в которой появится АЦП/ЦАП с полноценной поддержкой SIP или с возможностью хоть как-то получить RTP поток, который в SIP конвертить уже на чём-то типа Raspberry PI.


    1. Avenit
      09.10.2017 19:24
      +1

      Пока используем ПАСКАЛЬ 1510.


  1. kurs-75
    09.10.2017 16:36
    +1

    да SIP самое интересное
    очень ждем


  1. Crunch-f
    09.10.2017 19:19
    +1

    SIP да, было бы полезно
    воры говорят интересуются через домофон наличием хозяев дома


    1. m8rge
      09.10.2017 22:37

      Я тут читал, что для определения наличия людей в квартире можно просто посмотреть счетчики. Сегодня и завтра. Если показатели почти не изменились — дома пусто.

      Хотя если при этом на домофон будут отвечать, это смутит потенциального вора однозначно.


      1. Germanets
        10.10.2017 09:02

        В любом случае перед взломом вор будет пытаться дозвониться к хозяевам в домофон и просто в дверной звонок… А-то вдруг хозяин 5 минут как пришел…


  1. vp7
    09.10.2017 21:20
    +1

    Кстати, есть интересный проект: Ka-Radio, это WEB радио на базе ESP8266 + VS1053.
    VS1053 содержит на борту (де)кодер MP3/WAV/PCM, линейный/микрофонный вход, выход на динамик, а управляется это всё через serial bus.
    Т.е. на базе этой парочки (ESP8266 + VS1053) можно вполне реализовать SIP клиент и получить MQTT/SIP комбайн для замены домофонной трубы.
    Если будет возможность купить готовое устройство по демократичной цене, то с удовольствием запишусь в покупатели :)


  1. Bonio
    09.10.2017 21:38

    звонок в домофон будет пробуждать микроконтроллер, он в свою очередь подключаться к wi-fi и проверять, есть ли для него команды на открытие.

    А сколько по времени занимает пробуждение из глубокого сна и установка соединения с wifi? Никто не замерял?


    1. DjPhoeniX
      10.10.2017 06:10
      +2

      На ESP8266 пробуждение из deep sleep примерно похоже на «холодный старт». Запуск — меньше секунды (мы же про Lua тут не говорим?), подключение WiFi (RSSI около -34, WPA2, DHCP) — от 1 до 4 секунд (в зависимости от), TCP+TLS+MQTT — около 2 секунд. Итого от 4 до 7 секунд на «проснуться и подключиться».


  1. VladMgn
    10.10.2017 07:40
    +1

    наш провайдер просто домофон в свой ящик подключил и теперь виджетом с телефона открывается подъездная дверь


    1. justK
      10.10.2017 11:13

      То есть, зная, какой провайдер в подъезде (а по вездесущим объявлениям это элементарно выяснить), я могу скачать софтинку, ткнуть кнопку и войти в подъезд?
      Блин, да это ещё менее секьюрно, чем бабки, открывающие всем подряд на «почта/скорая/президент», там хоть голос могут запомнить, да в окошко понаблюдать


      1. VladMgn
        10.10.2017 11:16
        +1

        нее, там авторизация от личного кабинета ) если только всем раздать свой логин/пароль ) в общем на каком адресе договор, тот у тебя появляется в меню выбора адресов домофона


  1. hidoba
    10.10.2017 11:28

    Я когда-то делал автономную простейшую аналоговую схему. Она брала напряжение звонка (кажется, импульсы амплитудой около 15 Вольт), заряжала ими конденсатор, когда напряжение на конденсаторе достигало определенного уровня, открывался транзистор, который открывал дверь (я вот только не помню, там реле было или транзистор стоял параллельно кнопке). В результате если держать кнопку звонка больше 8 секунд, дверь открывается сама.


  1. sergey876
    10.10.2017 15:16

    А вариант «прикрутить» старенький сотовый телефон, чтоб плата набирала как то нужный номер и делала вызов, а звук может быть можно подать проводами от гарнитуры?
    Кажется было бы прикольно так, упс кто-то мне с домофона звонит.
    Тем более у меня дома всегда сотик лежит на без абонентском тарифе как городской телефон, на всякий случай. Бывает надо срочно домой дозвонится а тел. жена свой не слышит например. Звоню на домашний сотик. :-)


  1. vyacheslavteplyakov
    11.10.2017 14:18
    +2

    Нет, усложнять точно не надо. Чем ближе подобный девайс по простоте к домохозяйке тем лучше, а кому надо свистелки перделки распознавание лиц и сценарии тот как правило сам себе сваяет, с блекджеком и MQTT. Или купит готовое решение.
    У одного знакомого много лет назад над дверью висел монитор, а в глазок смотрела камера, которые включались когда кто-то звонил в дверь. Все б ничего, но ключевое слово «давно», отсюда монитор над дверью в виде аквариума и камера размером с микроскоп торчащая из двери, было киберпанково.