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

Привет, друзья!
Я запилил копировальщик домофонных ключей на ардуино и сделал пару видосов на своём канале youtube про копирование контактных ключей типа Dallas, токовых ключей Cyfral и Metakom, а также про копирование rfid ключей типа EM-Marine, работающих на частоте 125 кГц. Как раз такие используются в домофонах наших подъездов.

Подробное видео можно посмотреть тут:

Электрическая Схема

Так выглядит схема копировальщика: к ардуино нано подключается луза для копирования контактных ключей, а к ногам 11 и 7 подключается вход и выход rfid модуля.
Rgb-cветодиод для индикации режима чтение/запись/BlueMode, buzzer — для попискивания. Энкодер — для управления дибликатором. На шине i2c подцеплен oled дисплей.

Схема дубликатора

Корпус и Механическая сборка

Я забацал 3D модель кастомного корпуса для моего дубликатора.

А вот как это напечаталось на 3D принтере. У меня нет принтера, но я нашёл человека через сервис дружественная печать.

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

Катушку можно взять готовую, например от модуля rdm или купить у китайцев на али на 340 мкГн.
Если будете мотать на спичечный короб — это 59 витков.

Вот как выглядит аппарат в сборе.

Скетч и библиотеки

Ссылка на гитхаб библиотеки и скетч. Библиотеки oled дисплея и oneWireSlave нужно сложить в папочку libraries среды ардуино. Для энкодера я использую библиотеку от Алекса Гайвера. Её нужно распаковать туда же.
Также нужно доустановить библиотеку oneWire и TimerOne из репозитория библиотек ардуино.

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

При запуске копировальщик достаёт из eeprom последний сохранённый туда ключик и показывает на дисплее количество ключей в EEPROM, шифр ключа и его тип. Максимум в дубликатор можно сохранить 20 разных ключей.
Rgb диод светит зелёным, т.е ключ уже можно писать на болванку. Если в EEPROM было пусто, на экране будет соответствующая надпись, в ожидании чтения ключа.
Чтобы выбрать из EEPROM другой ключ , достаточно покрутить энкодер вправо или влево.

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

Для перевода в режим записи жмём на кнопку энкодера — светится красный диод. Ключ который отображается на дисплее будет записан на болванку.

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

Но и это ещё не всё! Я прикинул, а что если сделать эмулятор rfid ключа? У меня есть девайс, который может хранить до 20 разных ключей, в нем есть мозги и рамка, как в обычном ключе. С манчестерским кодом я уже разобрался….
Короче, жмём на кнопку энкодера и переключаемся в третий режим — blueMode. Достаточно поднести дубликатор к домофону и … опа.. дверь открывается! Магия!

Если вам понравился проект — поддержите автора!

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

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

Конденсаторы любые неполярные. Я использовал керамические на 50В.

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

688 комментариев к «Крутой дубликатор домофонных ключей на Arduino»

  1. Здравствуйте собрал и я такую штуку автору проекта большое спасибо. У меня вроде все работает контактные и бесконтактные ключи читает и пишет. Я в этом деле новичок и мало, что понимаю только начинаю познавать азы электроники. У меня есть пару вопросов к вам МЕХАТРОН или форумчанам. Первое собрав сей девайс стал испытывать разные режимы и моя крона здохла промерно минут так через 10 первое что перестало работать при падении напряжении RFD. Но думал крона говно купил подороже но теперь подключил мультиметр на крону посмотреть падение напряжение, включил дубликатор показало 9,3в и стало потихоньку падать 9,27 9,26 итд отключил антену rfd вроде стало чуть чуть поменьше падать. Вопрос почему так быстро подает напряжение в чем может быть причина в LED Дисплее или в RFD антенне или так и должно беспрерывная работа дубликатора примерно 5 минут и все.Перечитал все коменты но никто об этом не писал. И второй вопрос при включении дубликатора моргнет и загорается красный диод в лузе потом когда загорелся зеленый диод режим чтения ключей красны диод в лузе гаснет и загорается толька в режиме — bluemode, это так и должно быть так в скетче прописано или у меня что-то неправильно работает . Просто у вас на видео вроде после загрузки светиться зеленый и красный в лузе диод и можно ли в скетче в режиме — bluemode наоборот отключить светодиод, а в режиме чтения и записи включить. Буду вам всем рад за помощь в ответах на мои вопросы повторюсь ребята я в этом деле новичок . Спасибо вам всем заранее!!!!

  2. Здравствуйте собрал и я такую штуку автору проекта большое спасибо. У меня вроде все работает контактные и бесконтактные ключи читает и пишет. Я в этом деле новичок и мало, что понимаю только начинаю познавать азы электроники. У меня есть пару вопросов к вам МЕХАТРОН или форумчанам. Первое собрав сей девайс стал испытывать разные режимы и моя крона здохла примерно минут так через 10 первое что перестало работать при падении напряжении RFD. Но думал крона говно купил подороже но теперь подключил мультиметр на крону посмотреть падение напряжение, включил дубликатор показало 9,3в и стало потихоньку падать 9,27 9,26 итд отключил антену rfd вроде стало чуть чуть поменьше падать. Вопрос почему так быстро подает напряжение в чем может быть причина в LED Дисплее или в RFD антенне или так и должно беспрерывная работа дубликатора примерно 5 минут и все.Перечитал все коменты но никто об этом не писал. И второй вопрос при включении дубликатора моргнет и загорается красный диод в лузе, потом когда загорелся зеленый диод режим чтения ключей красны диод в лузе гаснет и загорается толька при выборе режима — bluemode, это так и должно быть, так в скетче прописано или у меня что-то неправильно работает . Просто у вас на видео вроде после загрузки светиться зеленый и красный в лузе диод и можно ли в скетче в режиме — bluemode наоборот отключить светодиод, а в режиме чтения и записи включить. Буду вам всем рад за помощь в ответах на мои вопросы, повторюсь ребята я в этом деле новичок . Спасибо вам всем заранее!!!!

    1. А что вы хотите ?
      Крона — это очень слабая батарейка.
      Вы не падение напряжения измеряйте, а померьте потребляемый этим устройством ток — и всё станет ясно !

    2. Да, тоже сдохла быстро новая крона. Я ее откл, хватает питания от юсб

  3. Здраствуйте. Может кто-то из вас который доработал прошивку к вводу ключа из монитор порта поделитсья ее на почту tatrat4d@abv.bg потому что я пробовал сам добавитъ этот недостающий код но у меня уже 3я попытка и вообще не получается.

    1. Да, действительно, а как записать ключ из монитор порта? Когда есть только номер так сказать

  4. Добрый день! Уже год мучаюсь с данным проектом. Сам дубликатор работает и ключи так называемые таблетки считывает и все ок, но проблема с бесконтактными ключами. Наотрез отказывается работать. Кондеры разные ставил, разные катушки тоже, не работает, не происходит резонанса. Напряжение около 12 вольт на контрольной точке, я уже хз что делать. Есть какие-нибудь идеи. Спасибо!

  5. Доброго дня собрал катушку но она только читает а писать не хочет.Подскажите это мой косяк?

  6. Добрый день. Заказал платы как и вы все собрал по инструкции но не знаю что пошло не так но у меня. Моргает деод какимто красно синем оттенком ключи не пишет. По прошывке все залилось хорошо. Питание для проверки как на схеме вместо 15в 2,8В. Что делать??? Зарание благодарю за понимание

  7. Добрый день. Заказал платы как и вы все собрал по инструкции но не знаю что пошло не так но у меня. Моргает деод какимто красно синем оттенком ключи не пишет. По прошывке все залилось хорошо. Питание для проверки как на схеме вместо 15в 2,8В. Что делать??? Зарание благодарю за понимание. Kolya147@yandex.ru

  8. Здравствуйте. Я собрал данное устройство, но оно у меня не считывает ключи, а, следовательно, и не записывает. Подскажите в чем может быть проблема?

  9. EEPROM_key_count = EEPROM[0];
    maxKeyCount = EEPROM.length() / 8 — 1; if (maxKeyCount > 20) maxKeyCount = 20;
    if (EEPROM_key_count > maxKeyCount) EEPROM_key_count = 0;
    if (EEPROM_key_count i= 0 ) {
    EEPROM_key_index = EEPROM[1]; ЗДЕСЬ РУГАЕТСЯ (no match for ‘operator[]’ (operand types are ‘EEPROMClass’ and ‘int’))

  10. Кто собирает дубликатор, в помощь инфа по RFID
    Максимальное напряжение удалось собрать при подборе параллельным подключением конденсаторов 2,5нф+1,5нф+0,68нф (вместо 4,7). напряжение в этом случае будет 25,8В. Метки срабатывают как часы.
    при кодключении кондера 4,7 у меня напряжение было 12,7В, по сути этого напряжения должно было хватить, но срабатывали метки только иногда, и далеко не все.

  11. Здравствуйте. Дубликатор просто супер!!! Но не хватает одной нужной функции, удаление ключа из списка уже сохраненных. А если бы еще можно было как то подписывать сохранённые в списке ключи, было бы просто супер!

    1. Через монитор порта, послать команду «e»

  12. Всем привет! Автору спасибо!
    Увидел Ваше первое про копировальщик видео на Ю-тубе, и всё повторил. Получилось с первого раза. Затем следующее про RFID, затем с дополнением … . Тоже всё собрал и на UNO, и на NANO всё получилось с первого-второго раза. Чётко описываете все моменты, разобраться легко. Спасибо!
    И так, к сути:
    Собрал схемку, но без дисплея (работаю с монитором порта, не планирую собирать копировальщик, а просто дома поиграться). Заливаю скетч приведённый в статье со всеми необходимыми манипуляциями. Всё чётко работает. Считываю ключ, записываю по инструкции(удержанием клавиши) — пишется(запоминается даже после отключения/включения питания), копируется, в общем всё работает. Поигрался :))
    Без дисплея удалить из памяти записанный ключ не получилось 🙂 , чистил память в мониторе порта посылкой » Mode: 0″. Ура. Память «обнулилась» . Другой копирую — всё чётко!
    Так вот, записанный в память ключ остаётся на Ардуинке даже после перезаливки скетча. Почему?
    Разбираю обвес монтажа, оставляю Nano «голой». Заливаю скетч из Примера в приложении Arduino IDE, светодиод моргает. Заливаю другие скетчи, все работают без проблем. Но(!) когда я снова заливаю скетч копировальщика в Nano Arduinо, почему-то в памяти уже прописаны ранее сохранённые ключи. Почему так???! Подскажите, пожалуйста!
    Кстати, удалял драйвер, переустанавливал Arduino_IDE, чистил реестр Винды 7, прогонял через CCleaner, удалил все папки Ардуино. Заново скачивал Скетч, устанавливал драйвер, заливал … , но в памяти так и остались записанные ключи.
    Почему такое происходит? Что, даже после всех манипуляций по заливке других скетчей в Ардуино остается память ключей и занимает память?
    С уважением, Николай. Дайте, пожалуйста, ответы. Спасибо ещё раз!

  13. слегка доработал скетч. при запуске записывает в память 5 универсальных кодов ключей найденных на просторах инета. больше всего домофонов открывает код №2. выбираете в списке код, переходите в режим записи и подносите болванку — в итоге получаете набор ключей, которые продают в инете как универсальный набор от всех домофонов. если у кого-то есть этот универсальный набор — считайте и поделитесь кодами.
    https://yadi.sk/d/WfX6gFoAPeiPDA

    1. Дружище, а как в твой скетчя добавить еще своих ключей? Добавляю свои и при компиляции ошибка

  14. У меня баттоны читает и пишет нормально. радиjметки читает, но при записи выдает «Error»

  15. Возможно ли прошить программатор keymaster 3rf чтобы он дублировал цисфрал и метаком? (rw2000 и тому подобные)

  16. А заготовки RW15 поддерживает? У меня нужно копировать ключ Cyfral, а RW15 показывает metacom и не пишет.

  17. Помогите, при компиляции ругается: no matching function for call to ‘OLED::print(const_FlashStringHelper*, int, int) ‘

    1. Распаковать архив. Архив имеет формат .zip, для его распаковки можно использовать встроенные инструменты операционной системы, либо популярный WinRAR. Если не распаковать архив – прошивка откроется неправильно.
      https://alexgyver.ru/arduino-first/#Arduino_IDE

  18. Кто повторял устройство подскажите, не могу уже до шизи довела эта схема, не читает ключ и всё! Конденсаторы уже и катушки какие только не делал,за диодом было 18 вольт, уже и до 21 получилось догнать но всё равно не читает. И кто знает какие вообще сигналы в схеме детектора? Особенно выход на D7? Смущает, что там вообще никаких сигналов толком нет

  19. Привет всем!
    Просветите, пожалуйста в следующем вопросе: вход и выход rfid подключены к пинам 7 и 11. В скетче, для D11 указан pinmode, а для D7 — нет. D7 вообще не упоминается в скетче! На своей схеме я хотел бы поменять поменять пин с седьмого на другой, но найти где заменить не знаю. Проясните!

  20. Собрал данное устройство используя катушку с али, подобрал ёмкость конденсатора для контура, чтобы напряжение в контрольной точке было максимальным, но метки RFID не читались или читались очень плохо.
    В итоге я смог настроить и всё заработало, делюсь самым быстрым способом оживления RFIDa:
    1. Обеспечить стабильное питание устройства, лучше использовать внешний блок питания или аккумулятор от 7 до 12В, т.к. крону высасывает очень быстро и настроить врядли получится;
    2. Подбор ёмкости резонансного конденсатора до установления максимального напряжения в контрольной точке;
    3. Подать опорное напряжение примерно(!) +0,1В на D6 (так было сделано во второй версии дубликатора), для чего нужно соединить последовательно резисторы на 1кОм и 51кОм. Подсоединить 1кОм к GND, 51кОм к +5V, а от средней точки подать опорное напряжение на D6;
    4. После указанных действий метки должны чётко срабатывать, можно перевести устройство на питание от батарейки (кроны).

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

    1. https://alexgyver.ru/arduino-first/#Arduino_IDE
      Распаковать архив. Архив имеет формат .zip, для его распаковки можно использовать встроенные инструменты операционной системы, либо популярный WinRAR. Если не распаковать архив – прошивка откроется неправильно.

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

  23. Здравствуйте! Я столкнулся с контактными ключами Falcon Eye и Smart Button на которых по всему диаметру контактной поверхности «таблетки» уже написано длиннющее число (номер ключа нужно понимать). В такие ключи информация не записывается, так же как в RFID карточки, на которых уже есть типографски написанный номер. Я смог записывать ключи только на ключи, на которых нет никаких надписей. Скажите пожалуйста, такие ключи не записываются вообще, или у них другой протокол?

    1. Если на ключе выгравирован его код — то это НЕПЕРЕЗАПИСЫВАЕМЫЙ ключ !
      Он программируется при производстве на заводе.

    1. Нет такого скетча для RW2000 !
      Думаю, что и не будет……

  24. кто подскажет как загрузить свои ключи, уже все комменты прочитал, и что ранее писали с подменой в 902строке, ничего не помогает.
    может у кого скетч есть какой-нибудь допиленный, или напишите пожалуйста порядок действий.
    либо в личку
    avb_@mail.ru

    1. Плата нужна? Напишите где вы территориально. Возможно просто так отдам.

  25. Здравствуйте, я так понимаю если использовать RGB светодиод с общим анодом, то надо везде в скетче изменить значение LOW на HIGH и наоборот, а сам анод подтянуть через резистор к +5В? Или лучше анод напрямую к +5В, а цвета через ограничивающие резисторы?
    Спасибо

  26. Скажите, почему отличаются ключи, считанные вашим устройством и, например, RDM 6300? Считываю с одной и той же карты и цифровой код разный.

  27. Собрал по схеме. Не работает бесконтактная часть. Путем подбора конденсатора С1 удалось повысить напряжение в контрольной точке до 25.6 В, но чтения нет. Попробую еще повысить напряжение резонанса путем изменения витков катушки. Кто-нибудь может сказать должно ли быть напряжение в контрольной точке в режиме записи (когда светодиод горит красным светом). И еще у меня почему то три режима (три цвета светодиода) зеленый, синий и красный последовательно следующие при нажатии на кнопку экондера. Это так и должно быть?

  28. Собрал все как описано, компилятор ругался но все равно скетч зашился, все работает без доработок, запитал от повер банка через провод mini usb, от другого питания начинает глючить)

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

  30. Спасибо! Повторил, работает. Запаял.

    ТМ — работает, не пользуюсь почти.
    Болванки T5557. Те, что брелоки — все ок, прям идеально.
    Но вот те, что в формате силиконовых браслетов —
    (накупил на али, получил и) — там что-то странное происходит.
    Думаю — сами болванки, разброс параметров, качество итп?…
    Несколько разных кучек из разных поставок.
    Или надо донастроить само устройство?
    Или какие-нибудь тайминги подкрутить в коде между посылками итп?
    Выглядит, что параметры расходятся немного, вот почти, но чуть больше/меньше и срывается…
    Чтобы с этими проблемными браслетами разобраться — собрал на макетке еще один.
    Отрубил бипер, утомил. Экранчик — не всегда понятен — считал то же самое, или просто ничего не сделал?
    Подключил по усб — куда нагляднее.
    Довел резонанс кондерами до 15В, емкость 5,5.
    Решил погонять проблемные, сортировать, что сразу ок, что в проблемные.

    Ведут себя по-разному. Все изначально идут — пустые, какой-то префикс, и далее нули.
    Из одной поставки часть приняла новое ИД из памяти с 1й попытки, часть с 2-3-10-20й, часть тупо не берет.
    Burning rfid ID: ** The key copy faild
    The rfid RW-key is T5557. Vendor ID is 5429F3E

    Причем в режиме записи проблемные болванки раз на 20-30 могут это показать и текущий ИД,
    но это редкое событие.
    Burning rfid ID: ** The key copy faild
    FF:80:0:0:0:0:0:0: ( id 0 key 0) Type: EM-Marie
    The rfid RW-key is T5557. Vendor ID is 0

    Вендор ИД — может показывать 0, или константу,
    Burning rfid ID: ** The key copy faild
    The rfid RW-key is T5557. Vendor ID is 22222222
    Burning rfid ID: ** The key copy faild
    The rfid RW-key is T5557. Vendor ID is 1000000
    Burning rfid ID: ** The key copy faild
    The rfid RW-key is T5557. Vendor ID is 800000

    а может «инкремент», почти при каждом считывании.
    На самом деле — нет, не инкремент, просто на 1 болванку по кругу пара значений разных, в разнобой
    Burning rfid ID: ** The key copy faild
    The rfid RW-key is T5557. Vendor ID is 2A14F9C
    Burning rfid ID: ** The key copy faild
    The rfid RW-key is T5557. Vendor ID is 2A14F9F
    Burning rfid ID: ** The key copy faild
    The rfid RW-key is T5557. Vendor ID is 2A14F9F

    В разных кучках по-разному. У 5777 еще и пара разных версий есть, насколько я понял, но это не принципиально.

    Одна пачка браслетов была взята очень давно, и вообще не виделась.
    Сначала подумал, «ну пересорт/обманули, например 13,55 или как там другой стандарт подсунули»,
    так они и лежали. Вспомнил, решил перепроверить — на тестовой макетке они стали давать ошибку, а на собранном = 0 по фазе. Так они все-таки ем-марин, и тоже 5557. ухты ) Но из этой кучки вообще не пишутся, ни один.
    Burning rfid ID: ** The key copy faild
    The rfid RW-key is T5557. Vendor ID is 0

    Как я понимаю ситуацию — какой-то небольшой рассинхрон, почти укладывается в стандарт.
    В итоге набегает/убегает и к концу обмена с вероятностью 98-99% дает ошибку контрольной суммы?
    Тот же «сменяемый» между чтаниями вендор-ИД показывает, что считывается «почти правильно»,
    но вот запись нового ид уже не получается.
    Некоторые, у кого разброс не такой большой, могут записаться, а некоторые — уже нет.
    Все записанные читаются отлично обоими устройствами, это именно несоблюдение протокола записи.
    Общая стабильность схемы? Питание? (поставил на питание электролиты и несколько разных керамических, попробую питать не от усб…) Задержки на кондерах, поиграть номиналами?
    Ну и да на макетке конечно провода не идеально короткие, хотя на запаянной плате все короткое
    итп аккуратно, но тоже не работает. Возможно, резонанс стоит уменьшить — оно само себя не глушит по входу?
    Как это понять, без осциллографа? ) Пробовал все это, не получилось пока.
    По ссылкам видел другую схему аналоговой части, возможно, придется собрать ее тоже.
    Тайминги покрутить? Видимо, надо совсем чуть, а из кода это будет грубовато?

  31. совет про подать +0,1В на D6 — мне не помог вообще. Если на д6 не земля — вообще не пашет и все, без вариантов.

  32. Собрал, эту версию.
    маленькие поправки 4,7 конденсатор заменил на 3
    Катушка от rdm
    На 8,4 вольта питания удалось выжать 20-22в.
    В Скейче кому нужен порт, у меня сразу не заработал, пока не исправил скорость на 9600
    Автору спасибо огромное

Добавить комментарий для Александр Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх