Доработка домофона протоколом MQTT для управления с телефона (версия 2.0)

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

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

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

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

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

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


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

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

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

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



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


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

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


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


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

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

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

    Подробнее
    Реклама

    Комментарии 33

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

          Ставим выпрямитель, считаем кондер и смотрим — там все несложно, но нужно знать выходное сопротивление источника сигнала — в нашем случае звонка.
        +1
        Мне видится более правильное решение — адаптер для FXS шлюза, превращающее домофон в IP телефон, вызов можно настроить и на мобильный клиент. Открывание двери через DTMF коды.
          0
          Дальше — интегрировать в умный дом и встроить Arduino
            0
            Есть, кстати, адаптеры домофон-телефон
            Паскаль вроде, на tec.org.ru встречал.
            +2
            На сколько затратно сделать цельную плату или в виде легко монтируемого модуля в штатную трубку? Я бы купил если бы такое было на рынке.
              0
              Да цельную плату сделать не затратно. Пока не могу придумать, как сделать универсальное решение, трубки то у всех разные…
              Вот только под конец статьи пришла идея сделать внешний блок на батарейках. Располагать, условно, вблизи трубки по ходу линии домофона, и иногда менять батарейки.
                0
                ЕСП очень прожорлива, а спящий режим по таймеру тут не прикрутить… батарейки не проживут и месяца.
                  0
                  Так не по таймеру… пробуждение по сигналу вызова
                    0
                    Это если нас дёргают с улицы, но как мы будем менять все эти замечательные настройки типа открывать всем, не открывать никому, если девайс спит?
                      0
                      Устройство будет в «тихом» режиме. Звонок в домофон будет пробуждать микроконтроллер, он в свою очередь подключаться к wi-fi и проверять, есть ли для него команды. Если команд нет, коммутировать сигнал на трубку. Если команды есть — открывать.
                        +1
                        т.е. приходит звонок, просыпаемся, смотрим как на него реагировать?
                        … вариант, но мне кажется будет задержка неприличная.
                          0
                          Да, идея именно такая.
                          Насчет задержки надо эксперементировать
                            0
                            Ну подождет человек у домофона не пару минут, пока поднимешься с дивана в обычном случае, а Х+30сек. Причем Х — гораздо меньше.
                            За что боремся?
                +1
                Ждём версию 3.0, в которой появится АЦП/ЦАП с полноценной поддержкой SIP или с возможностью хоть как-то получить RTP поток, который в SIP конвертить уже на чём-то типа Raspberry PI.
                  +1
                  Пока используем ПАСКАЛЬ 1510.
                  +1
                  да SIP самое интересное
                  очень ждем
                    +1
                    SIP да, было бы полезно
                    воры говорят интересуются через домофон наличием хозяев дома
                      0
                      Я тут читал, что для определения наличия людей в квартире можно просто посмотреть счетчики. Сегодня и завтра. Если показатели почти не изменились — дома пусто.

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

                        А сколько по времени занимает пробуждение из глубокого сна и установка соединения с wifi? Никто не замерял?
                          +2
                          На ESP8266 пробуждение из deep sleep примерно похоже на «холодный старт». Запуск — меньше секунды (мы же про Lua тут не говорим?), подключение WiFi (RSSI около -34, WPA2, DHCP) — от 1 до 4 секунд (в зависимости от), TCP+TLS+MQTT — около 2 секунд. Итого от 4 до 7 секунд на «проснуться и подключиться».
                          +1
                          наш провайдер просто домофон в свой ящик подключил и теперь виджетом с телефона открывается подъездная дверь
                            0
                            То есть, зная, какой провайдер в подъезде (а по вездесущим объявлениям это элементарно выяснить), я могу скачать софтинку, ткнуть кнопку и войти в подъезд?
                            Блин, да это ещё менее секьюрно, чем бабки, открывающие всем подряд на «почта/скорая/президент», там хоть голос могут запомнить, да в окошко понаблюдать
                              +1
                              нее, там авторизация от личного кабинета ) если только всем раздать свой логин/пароль ) в общем на каком адресе договор, тот у тебя появляется в меню выбора адресов домофона
                            0
                            Я когда-то делал автономную простейшую аналоговую схему. Она брала напряжение звонка (кажется, импульсы амплитудой около 15 Вольт), заряжала ими конденсатор, когда напряжение на конденсаторе достигало определенного уровня, открывался транзистор, который открывал дверь (я вот только не помню, там реле было или транзистор стоял параллельно кнопке). В результате если держать кнопку звонка больше 8 секунд, дверь открывается сама.
                              0
                              А вариант «прикрутить» старенький сотовый телефон, чтоб плата набирала как то нужный номер и делала вызов, а звук может быть можно подать проводами от гарнитуры?
                              Кажется было бы прикольно так, упс кто-то мне с домофона звонит.
                              Тем более у меня дома всегда сотик лежит на без абонентском тарифе как городской телефон, на всякий случай. Бывает надо срочно домой дозвонится а тел. жена свой не слышит например. Звоню на домашний сотик. :-)
                                +2
                                Нет, усложнять точно не надо. Чем ближе подобный девайс по простоте к домохозяйке тем лучше, а кому надо свистелки перделки распознавание лиц и сценарии тот как правило сам себе сваяет, с блекджеком и MQTT. Или купит готовое решение.
                                У одного знакомого много лет назад над дверью висел монитор, а в глазок смотрела камера, которые включались когда кто-то звонил в дверь. Все б ничего, но ключевое слово «давно», отсюда монитор над дверью в виде аквариума и камера размером с микроскоп торчащая из двери, было киберпанково.
                                  0
                                  Я кстати в итоге сделал по такой схеме:
                                  Заголовок спойлера
                                  image

                                  Подключается в разрыв линии.

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

                                Самое читаемое