Статья

Домофон на ESP

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

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

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

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

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

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

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

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

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

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

Кнопка тактовая 6х6х13мм
Резисторы

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

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

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

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

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

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

Прошивка

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

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

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

Что умеет?

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

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

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

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

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

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

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

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

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

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

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

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


Вернуться назад
Вернуться назад