Видеодомофон своими руками ардуино

Делаем на Ардуино дубликатор домофонных ключей

Создадим дверной замок RFID Arduino посредством копирования домофонного ключа. Узнаем о радиочастотной идентификации RFID и используем беспроводную связь.

Предназначение дубликатора домофонных ключей

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

RFID – радиочастотная идентификация. Устройство выполняет ту же функцию, что и штрих-код или магнитная полоска на задней стороне кредитной карты. Он предоставляет уникальный идентификатор для этого объекта. И так же, как штрих-код или магнитная полоса, RFID должен быть отсканирован для получения информации.

Идентификатор, считываемый из тегов, сравнивается с хранимой информацией, и если он совпадает, то дверь открывается.

Принцип работы дубликатора на Ардуино

Каждый ключ имеет внутреннюю связь с домофонной дверью – этот номер и служит ключевым идентификатором. Этот номер интерком-ключа решает, нужный ли вы приложили ключ. Поэтому принцип работы дубликатора домофонных ключей на Arduino довольно прост: сначала нужно проверить «разрешенный» ключ, а затем присвоить тот же номер другому ключевому клону.

Проверяя номер из своей базы данных разрешенных скоростей передачи данных, он откроет дверь. Ключи для внутренней связи, которые мы будем подключать к Arduino дубликатору (иногда называемому iButton или Touch Memory), считываются и записываются в 1-проводной интерфейс. Поэтому схема подключения очень проста.

Необходимые материалы

Для конструирования проекта Arduino дубликатор домофонных ключей понадобятся следующие комплектующие:

  1. Arduino Nano.
  2. RFID RC522.
  3. Пьезо-зуммер.
  4. 2x LED-монитора.
  5. 2x 330 резистор.
  6. Клавиатура 4 × 4.
  7. Адаптер I2C для ЖК-дисплея.
  8. LCD16X2BL.

Создание дубликатора своими руками

ЖК-дисплей имеет 16 контактов, что слишком много для Arduino Nano домофона, поэтому важно иметь адаптер I2C. Это позволяет управлять дисплеем только из двух сигнальных штырей на Ардуино. Это полезно из-за небольшого числа контактов, которые нужно будет контролировать из MCU.

ЖК-контакты

ЖК-дисплеи имеют параллельный интерфейс, а это означает, что MCU должен одновременно управлять несколькими контактами интерфейса для управления дисплеем. В приведенной ниже таблице дается описание каждого из контактов на английском языке:

Спецификация контактов

Для начала сделаем связи между ЖК-дисплеем и I2C. Для этого нужен адаптер ЖК-дисплея I2C (LCD1602). Адаптер преобразует ЖК-дисплей формата 16 x 2 в серийный ЖК-дисплей I2C, которым можно управлять через Arduino всего посредством 2-х проводов.

Соединения между Arduino и LCD

Аппаратная часть

Для набора кода понадобится библиотека LiquidCrystal_I2C.h в Arduino IDE. Библиотека позволяет подключить ЖК-дисплей к Ардуино. Встроенная библиотека LiquidCrystal_I2C позволяет легко отображать символы на ЖК-дисплее.

Вы можете скачать LiquidCrystal_I2C.h с нашего сайта отсюда, или с Github — https://github.com/todeilatiberia/SmartDoor.

Следуйте приведенным ниже инструкциям, чтобы установить новую библиотеку в свою среду разработки Arduino.

  1. Сначала загрузите файлы из Github.
  2. Извлеките из архивов каждую папку.
  3. Скопируйте ZIP-файлы в папку Ардуино.
  4. Откройте Ардуино и добавьте Keypad.zip:
    Меню эскиза -> Включить библиотеку -> Добавить ZIP-библиотеку
  5. Добавить библиотеку клавиатуры:
    Эскиз -> Включить библиотеку -> Клавиатура

Программная часть

Мы подключим клавиатуру для отображения номеров на ЖК-дисплее для Arduino и скопируем ключ, который вводим с клавиатуры.

В этом проекте используется клавиатура 4 × 4.

В таблице показано соединение между платой Arduino и клавиатурой. Штыри клавиатуры подключены к цифровым выходным выводам Arduino. Pin D6 использовался для зуммера, потому что это был штырь ШИМ.

Вывод клавиатуры Контакт Arduino
1 D2
2 D3
3 D4
4 D5
5 A0
6 D7
7 D8

Затем добавим RFID. В этом случае плата RFID использует протокол связи SPI, где Arduino будет действовать, как ведущий и считыватель RFID в качестве подчиненного. Считыватель карт и теги предназначены для связи с частотой, равной 13,56 МГц.

Это важный шаг, поскольку он помогает нам считывать данные с карты, и он будет решать, соответствует ли идентификатор информации, хранящейся в EEPROM. Если он соответствует, он даст нам доступ и отобразит «Unlocked». В противном случае на ЖК-дисплее отобразится «Заблокировано».

Читайте также:  Засыпные полы своими руками

Соединение между Arduino, LCD и RFID Домофон на Ардуино, LCD и RFID

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

Чтобы защитить модули, нужно использовать 3D-печать корпуса. Если у вас нет 3D-принтера, вы можете просто использовать пластиковый корпус, который позволяет вам вставлять все компоненты внутрь. Это очень полезно, потому что модули будут размещены внутри, а единственными частями вне коробки будут светодиоды, клавиатура и ЖК-дисплей.

Схема соединений, показывающая соединение между Nano, LCD, клавиатурой, RFID и звуковым сигналом

Код для загрузки на микропроцессор доступен по ссылке:

Тестирование и настройка готового дубликатора

Для описанного выше проекта понадобится специальный корпус, чтобы аккуратно разместить все компоненты и сохранить их без ущерба.

Можно разработать корпус с использованием программы SketchUp, которая имеет удобный интерфейс с простыми кнопками, такими как Eraser, Lines и Tape Measure Tool.

Размеры коробки составляют: 120 х 125 х 37 мм.

Если вы не знакомы с Sketchup, вам нужно ознакомиться со следующими учебниками SketchUp:

Коробка для корпуса устройства (вид сверху) Коробка для корпуса устройства (вид снизу)

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

  • Вид сверху:
    — 2 отверстия для светодиодов (5,2 мм).
    — 1 для ЖК-дисплея (42,2 × 7,3 мм).
    — 1 отверстие для кабеля (16 × 10,5 мм).
  • Вид снизу:
    — 1 открытие для клавиатуры (27 × 10 мм).

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

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

Как пользоваться устройством

Откройте последовательный монитор. Нажмите клавиши. Вы должны заметить, что последовательный монитор сообщает, какой именно ключ пользователь нажал.

Тем не менее, может потребоваться небольшая практика нажатия кнопок.

Источник

Создание умного домофона с автоответчиком и Интернет-соединением

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

У меня домофон Cyfral, после недолгих поисков я нашёл кучу разных схем их трубок. Судя по всему, домофоны других компаний работают по примерно такому же принципу. Схему своей трубки я начертил сам (мог допустить ошибки):

Принцип работы прост. Пока домофон не используется, питания в линии нет. Когда трубка лежит, динамик напрямую соединён с линией, сопротивление трубки при этом менее 50 Ом (домофон будет ругаться и выдавать ошибку, если это не так). Когда трубку снимают, размыкается SW2, включается микрофонный усилитель, и сопротивление трубки возрастает, за счёт чего домофон и понимает, что начался разговор. Когда нужно открыть дверь, нажимается кнопка SW1, в результате чего сопротивление трубки вырастает ещё сильнее.

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

Какие же точки на схеме нужны? Во-первых, нужно отслеживать наличие сигнала в линии, чтобы понимать, когда кто-то звонит, и когда разговор завершён. Для этого нужен плюсовой провод от домофонной линии (да, там важна полярность), а лучше точка после защитного диода D1. Для того, чтобы симулировать снятие трубки, нужно поставить реле последовательно с SW2. Для открытия двери нужно либо замыкать базу транзистора на землю, либо тупо размыкать цепь. Для воспроизведения звука нужно подавать сигнал на MIC- через резистор в 10-15 кОм. Самой сложной задачей оказалась запись звука. Можно поставить на выводы динамика трансформатор для гальванической развязки или просто через конденсатор получить переменную составляющую. Эксперименты показали, что особой разницы нет.

Читайте также:  Как построить баню 6х4 своими руками

Для своего проекта я взял микроконтроллер ATMEGA64. У него есть аппаратный ШИМ, который вполне неплохо справляется с воспроизведением звука, а аналого-цифровой преобразователь можно использовать для записи звука. Данные было решено хранить на обычной SD-карте. Для переключения между трубкой (обычный режим) и микроконтроллером (запись/воспроизведение звука) я задействовал электромагнитные реле. Кстати, при таком варианте трубка становится самой обычной в случае, если пропадает внешнее питание. Ну а для связи с внешним миром я решил использовать свою самодельную сеть, о которой писал в другой статье.

Основная плата получилась такой (реле вынес на отдельную):

В корпусе телефона:

Да, получилось не очень-то аккуратно… Я плохо делаю всё, что делаю руками.

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

Но гораздо удобнее управлять им с PC:

Или с телефона, при этом используются и push-уведомления:

Есть три типа режимов работы:

  • Воспроизвести звуковую запись («Здравствуйте, хозяин уже ждёт вас, заносите пиццу скорее!») и открыть дверь
  • Воспроизвести звуковую запись («Оставьте сообщение после гудка. »), записать сообщение и воспроизвести другую запись («Спасибо, пока!»)
  • Просто воспроизвести запись («Извините, хозяин недоступен» или «Никого не хочу видеть»)

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

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

Источник

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

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

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

Железо

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

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

Читайте также:  Детский спортинвентарь сделать своими руками

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

Платы с производства.

Описание работы трубки

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

На схеме: 1,2 — контакты подключения линии домофона (имеет полярность, если кто не знал); SW2 — переключатель звука трубки (внизу — звук выключен, вверху — звук включен); SW1 — рычаг разговорной трубки (внизу — трубка висит, вверху — трубку сняли для разговора); SB1 — кнопка открытия двери; BA1 — динамик трубки; BM1 — микрофон трубки, HL1 — светодиод.

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

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

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

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

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

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

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

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

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

Источник

Оцените статью