- PVSM.RU - https://www.pvsm.ru -

Прокачиваем домофон протоколом MQTT для управления с телефона

Прокачиваем домофон протоколом MQTT для управления с телефона - 1 Всем привет. Расскажу немного про свою последнюю междуделку — доработку домофона WiFi-модулем NodeMCU. Заранее прошу прощения за выбор модуля — всех уже, наверное, достала эта ESP’шка…

Конечно, работу ClusterM с его автоответчиком [1] никому не переплюнуть, но такой функционал я считаю излишним. Мне, с рождением дочки, лишь понадобилось бесшумно открывать домофон гостям, чтобы не стоять у трубки и не ждать входящего звонка, который наверняка разбудит малую. Да и себе иногда легче открыть дверь с телефона, нежели лезть за ключами и прикладывать таблетку туда-сюда, чтобы она сработала (у меня очень сильно тупит панель в подъезде). Проект получился небольшой, так что в статье тоже не так много букв, зато есть фотографии.

Железо
В наличии у меня было несколько модулей NodeMCU, так что, прикинув его к трубке домофона, решил, что влезет он туда без проблем, надо лишь сделать плату расширения. Развожу я всегда в EagleCad, платы заказываю либо у китайцев, либо в американском OSH Park. На OSH Park выходит дешевле, если площадь платы маленькая, но вы получаете только 3 платы вместо 10 китайских, но для штучного проекта это не важно. На плату отлично встали релюшки PE014005, прям аккурат между выводов NodeMCU.

Прокачиваем домофон протоколом MQTT для управления с телефона - 2

Не самый дешевый вариант, но у меня они были в наличии. А так можно поставить самые дешевые китайские, HUI KE например (это не ругательство, это фирма такая — у них есть серия релюшек HK4100F). Еще использовал две оптопары 4N35S, одну на вход — отлавливать входящий звонок, вторую на замыкание кнопки открытия домофона.

Получившиеся схема и топология платы вот (всё есть в репозитории, ссылка в конце статьи):

Прокачиваем домофон протоколом MQTT для управления с телефона - 3

Прокачиваем домофон протоколом MQTT для управления с телефона - 4

Платы с производства.
Прокачиваем домофон протоколом MQTT для управления с телефона - 5

Несколько фотографий
Прокачиваем домофон протоколом MQTT для управления с телефона - 6

Прокачиваем домофон протоколом MQTT для управления с телефона - 7

Прокачиваем домофон протоколом MQTT для управления с телефона - 8

Описание работы трубки
Сначала немного по принципу работы самой трубки — у меня Цифрал КЛ-2. Вот схема с официального сайта.

Прокачиваем домофон протоколом MQTT для управления с телефона - 9

На схеме: 1,2 — контакты подключения линии домофона (имеет полярность, если кто не знал); SW2 — переключатель звука трубки (внизу — звук выключен, вверху — звук включен); SW1 — рычаг разговорной трубки (внизу — трубка висит, вверху — трубку сняли для разговора); SB1 — кнопка открытия двери; BA1 — динамик трубки; BM1 — микрофон трубки, HL1 — светодиод.
Когда подъездная панель дает вызов, в линию поступает меандр амплитудой 12В. Сопротивление в линии должно быть 50 Ом, в любом другом случае на панели высветится ошибка. Если переключатель SW2 находится в нижнем положении (звук на трубке выключен), то в линию подключен резистор 50 Ом — светодиод поморгает, но звука мы не услышим. Если переключатель SW2 в верхнем положении (звук включен), а переключатель SW1 в нижнем (трубка висит), то в линии будет сопротивление динамика BA1 всё те же 50 Ом, как раз на него попадает меандр и мы слышим звук. После снятия трубки, SW1 переходит в верхнее положение и один вывод динамика отрывается от земли, теперь там будет аналоговый сигнал разговора и приемлемая для уха громкость, а не звонок на сотню децибел. Если вы решаете открыть гостю дверь, то нажимаете на кнопку SB1, которая запирает транзистор и сопротивление в линии резко возрастает — так панель понимает, что надо открывать дверь.

Теперь о доработках

Прокачиваем домофон протоколом MQTT для управления с телефона - 10

Relay1 — берем управление звуком на себя (считаем, что родной переключатель трубки SW2 в верхнем положении, иначе будет каша); Input — оптопара, дергается во время звонка (подключена перед Relay1, чтобы видеть звонок в бесшумном режиме); Relay2 — имитирует снятие трубки; Open — замыкает кнопку открытия двери. Обращаю ваше внимание на то, что релюшки подпаяны нормально замкнутыми контактами в разрыв. Это означает, что в любой момент можно отключить домофон от сети (а вдруг свет вырубился или интернет пропал) и он сохранит свою работоспособность, это важно.

Прошивка
Прошивку писал в PlatformIO (плагин для редактора Atom) на ардуиновских библиотеках. Ссылка на репозиторий в конце статьи. Эта, с вашего позволения, IDE будет поудобнее родной ардуиновской — кто не пробовал, обязательно попробуйте. В качестве MQTT клиента на телефон использовал IoTmanager (далее — просто клиент). По программе много рассказывать не буду (желающие посмотрят код), лишь опишу, что она умеет:

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

Экранные формы приложения (кликабельно)

Прокачиваем домофон протоколом MQTT для управления с телефона - 11 [2]

Фишка программы IoTmanager в том, что все настройки хранятся в топиках, а она лишь отображает то, что опубликовано. Немного теряется смысл легковесного протокола MQTT, но мне такая реализация нравится. При желании можно переделать под другой MQTT клиент.

Конечно всё это (да еще с двумя электромеханическими реле) требует внешнего питания и я бы задумался над целесообразностью поделки, если бы мне понадобилось заводить питание 5В от розетки… Но у меня счетчик находится внутри квартиры, а домофон висит совсем рядом. Я просто заказал на Ali модуль 220AC/5VDC на din-рейку и запитал домофон от него. На фото он перевернут для удобства внутреннего монтажа.

Прокачиваем домофон протоколом MQTT для управления с телефона - 12

Всем спасибо за внимание. Приглашаю в комментарии.

Полезные ссылки:

1. Репозиторий этого проекта на GitHub [3] — там есть схема, разводка, исходный код.
2. Создание умного домофона с автоответчиком и Интернет-соединением [1] — статья товарища ClusterM, упомянутая в начале.
3. Как я домофон Vizit к mqtt подключал [4] — домофон с Arduino и Ethernet shield.
4. Esp8266 управление через интернет по протоколу MQTT [5] — статья про MQTT и ESP8266.
5. Дистанционное управление домофоном [6] — еще одна статья по теме.

Автор: Анатолий

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/diy-ili-sdelaj-sam/263615

Ссылки в тексте:

[1] ClusterM с его автоответчиком: https://geektimes.ru/post/258054/

[2] Image: https://habrastorage.org/web/d4f/be6/958/d4fbe695884946f79b763df887f443fe.jpg

[3] Репозиторий этого проекта на GitHub: https://github.com/xDWart/Domophone.git

[4] Как я домофон Vizit к mqtt подключал: https://geektimes.ru/post/284302/

[5] Esp8266 управление через интернет по протоколу MQTT: https://geektimes.ru/post/274855/

[6] Дистанционное управление домофоном: https://geektimes.ru/post/284110/

[7] Источник: https://geektimes.ru/post/292735/