Как сделать копию ключа домофона
Как сделать своими руками копировальщик контактных и бесконтактных ключей домофона
Для копирования ключа домофона необходимо получить код ключа оригинала, затем записать его в ключ копию. Домофон определит ключ дубликат как свой и откроет входную дверь.
С помощью модуля Ардуино по интерфейсу onewire можно провести считывание а также запись домофонных ключей.
Шаг первый. Распайка схемы.
Схема состоит из платы Arduino Nano с подключенными считывателем контактных ключей и платы считывателя бесконтактных ключей. RGB светодиод служит для индикации режимов работы-дежурный, считывание ключа,запись ключа. Подстроечный многооборотный резистор для регулировки компаратора. Кнопка предназначена для переключения режимов работы дубликатора. Зуммер- для звукового контроль работы копира.
Основная работа предстоит в изготовлении и настройке платы приема сигналов с RFID ключей. На куске монтажной платы распаиваем конденсаторы и резисторы. Конденсаторы желательно надо высоковольтные так, как они лучше работают на высоких частотах.
Колебательный контур состоит из конденсатора 4700 пФ и катушки индуктивности.
Расчет катушки колебательного контура можно произвести на калькуляторе сайта
Шаг второй. Настройка и проверка работы.
Собираем всю схему для настройки на макетной плате. Загружаем скетч. Версия IDE Arduino должна не ниже 1.8.9
С платы Arduino Nano контакт D11 выдается сигнал 125 kHz, который идет на колебательный контур катушки и конденсатора. Но потому что конденсаторы имеют разброс по емкости от 5 до 30%, колебательный контур надо точно настроить на частоту 125 kHz. Для этого катушку наматываем с запасом 10-15 витков, затем сматываем пока на тестере не будет увеличиваться напряжение до максимума. Тестер подключаем к амплитудному детектору(в точке –диод,конденсатор). Напряжение должно находится в пределах 16-22 Вольта. После подстроечным резистором выставляем напряжение 0,1 Вольта(тестер на вывод D6 и GND).
Если схема собрана и настроена правильно то она сразу начинает работать. Подносим к катушке RFID ключ, происходит считывание кода, проходит звуковой сигнал.
Ключ представляет собой катушку с чипом.
Получился интересный и полезный приборчик. Конечно это не панацея, но какую то часть проблем можно решить с помощью данной самоделки сделанной своими руками.
Процесс изготовления и настройки можно посмотреть в видео
Всем желаю здоровья и интересных самоделок!
Сообщества › Сделай Сам › Блог › Дубликатор ключей домофона rfid и ibutton своими руками на ардуино.
Порой случается так, что нужно изготовить копию домофонного ключа. Дубликатор домофонных ключей Arduino может понадобиться если один из ключей комплекта был утерян, потребовался дополнительный ключ, или старый ключ вышел из строя.Конечно можно воспользоваться услугами специализированных мастерских, но можно выполнить эту процедуру и самостоятельно. Особенно интересен этот вариант будет тем, кто разбирается в электронике и имеет практику использования модулей Ардуино.В глобальной сети Интернет существует множество различных проектов того, как используя Arduino, собственноручно сделать копию ключа к домофону. Задача не такая уж и сложная, как это кажется на первый взгляд.
Нужно просто узнать номер-идентификатор оригинального ключа и присвоить его дубликату. Система домофона будет распознавать такой ключ как «свой» и произведет открывание двери.
Процедура считывания с ключа, а также запись на него идентификатора выполняются с применением только однопроводного интерфейса 1-wire. Благодаря этому принципиальная схема будущего дубликата домофонного ключа является достаточно простой.
Ниже поэтапно будут рассмотрены все действия, посредством которых, за минимальное время можно самостоятельно изготовить дубликат своего ключа к домофону. Данный вариант дубликатора работает с болванками контактного типа RW1990 и бесконтактного RFID T5577, T5557.
Метки: ключи домофона, дубликатор ключей, своими руками, ардуино
Комментарии 44
Так и не понял, где скетч взять?
Запускаем видео нажимая на плей, переходим к просмотру этого видео в YOUTUBE и в описании к видео находится ссылка на скетч.
Хорошая статься, я мучаюсь с rfid частью, не понимая что такое резонанс мне будет тяжело ее намотать(
Я все понимаю, но где исходники?Правила читали, прежде чем публиковать?
Ссылки на комплектующие как обычно под описанием видео.
По правилам должны быть в тексе ссылки на первоисточник, либо ссылка на личный сетевой диск/хранилище.Изучайте правила.Ютуб мне не интересен.
А как так же прописать доп чип от машины?
Ну да, по сути программатор получился
У нас цифрал, так в прошлом году домофонщики взяли и как-то отписали все леваковые ключи, которые делались не у них. Как они это сделали без самих ключей — я хз, но часть жильцов после работы попросту не попадали в подъезд.
Так а зачем им иметь сами ключи… чтоб отписать их. Каждый ключ имеет свой id номер…
Те ключи которые, с id они не приписывали, просто удалили из базы… визиток набросали в почтовые ящики… наклеек на стены наклеили… мол только у нас, всё работает)… делов то… щас все так делают, так же как с кабельным и интернетом… новый можно прописать самому, пока не удалят, будет работать.
кувалда в руки и Досвидос домофон.
Мле… купить ардуино на Алике и мастырить с него программатор… Проще с Алика сразу готовый программатор купить, даже лешевле выйдет.
Поделка ради поделки.
Эт вам там до Китая рукой подать, а тут жди 3 месяца. А есть хоть один пост который вам понравился? Написать ради написать?
У нас посылки через вас приходят)))) Как правило растоможка Екатеринбург или Москва)))
Судя по срокам они через Зимбабве идут.
Эт вам там до Китая рукой подать, а тут жди 3 месяца. А есть хоть один пост который вам понравился? Написать ради написать?
Да будет вам известно, что посылки Али таможатся через центральную Россию, не все, но в основной массе да. Какие три месяца, о чем вы? До нас 1-2 максимум.
Есть.
Нет
А у нас какой то хитрый домофон. Обычный Цифрал. Но никто не может сделать дубликат, сделаные ключи просто не подходят.
Приходится вызывать человека из домофонной компании, называть адрес, и он приезжает сразу с готовым ключем. В моем случае он накосячил, ключ привез, а он не подошел. У меня был ненужный ключ от другого домофона. Мастер зашел в меню нашего домофона, попросив меня отвернуться, и просто прописал мой ключ туда. Я еще подумал, может он мой ключ перепрограммировал, специально сходил и проверил на домофоне, от которого этот ключ был изначально — открылся. Одним ключем открываю два разных домофона, хотя обычные ключи от этих домофонов друг друга не открывают.
программируются не ключи, а сам замок)
Я не разбираюсь. Но давно пора эту штуку встроить в телефон, как NFC.
Проще nfc вшить в замок
программируются не ключи, а сам замок)
Через дубликатор id ключа клонируется в другой. При программировании на месте в память домофона вносится id ключа
А у нас какой то хитрый домофон. Обычный Цифрал. Но никто не может сделать дубликат, сделаные ключи просто не подходят.
Приходится вызывать человека из домофонной компании, называть адрес, и он приезжает сразу с готовым ключем. В моем случае он накосячил, ключ привез, а он не подошел. У меня был ненужный ключ от другого домофона. Мастер зашел в меню нашего домофона, попросив меня отвернуться, и просто прописал мой ключ туда. Я еще подумал, может он мой ключ перепрограммировал, специально сходил и проверил на домофоне, от которого этот ключ был изначально — открылся. Одним ключем открываю два разных домофона, хотя обычные ключи от этих домофонов друг друга не открывают.
Как сделать копию ключа для домофона в домашних условиях
С помощью Ардуино можно сделать дома копию ключа для домофона за 15 минут, если, к примеру, мастерская закрыта, а ключ нужен срочно.
Инструкция по чтению и записи ключа iButton (1-wire) с помощью Arduino
1 Схема подключения ключа к Arduinoпо однопроводному интерфейсу
Каждый ключ для домофона имеет свой номер – именно этот номер и служит идентификатором ключа. Именно по номеру ключа домофон решает – свой или чужой. Поэтому алгоритм копирования такой: сначала нужно узнать номер разрешённого ключа, а затем присвоить этот номер другому ключу – клону. Для домофона нет разницы, был приложен оригинальный ключ или его копия. Сверив номер со своей базой данных разрешённых номеров, он откроет дверь.
Ключи для домофона, которые мы будем подключать к Arduino (их иногда называют iButton или Touch Memory), считываются и записываются по однопроводному интерфейсу 1-wire. Поэтому схема подключения очень проста. Нам нужны лишь пара проводов и подтягивающий резистор номиналом 2,2 кОм. Схема соединений показана на рисунке.
Собранная схема может выглядеть примерно так:
2 Считывание идентификатора ключа iButton с помощью Arduino
Для работы с интерфейсом 1-wire существуют готовые библиотеки для Ардуино. Можно воспользоваться, например, этой. Скачиваем архив и распаковываем в папку /libraries/, расположенную в каталоге Arduino IDE. Теперь мы можем очень просто работать с данным протоколом.
Загрузим в Ардуино стандартным способом этот скетч:
Скетч чтения ключа iButton с помощью Arduino (разворачивается)
Данный скетч показывает номер ключа для домофона, который подключён к схеме. Это то, что нам и нужно сейчас: мы должны узнать номер ключа, копию которого хотим сделать. Подключим Ардуино к компьютеру. Запустим монитор последовательного порта: Инструменты Монитор последовательного порта (или сочетание клавиш Ctrl+Shift+M ).
Теперь подключим ключ к схеме. Монитор порта покажет номер ключа. Запомним этот номер.
А вот какой обмен происходит на однопроводной линии при чтении идентификатора ключа (подробнее – далее):
3 Запись идентификатора ключа Dallasс помощью Arduino
Теперь напишем скетч для записи данных в память ключа iButton.
Скетч записи ключа iButton с помощью Arduino (разворачивается)
Не забудьте задать номер своего оригинального ключа в массиве key_to_write, который мы узнали ранее.
Загрузим этот скетч в Arduino. Откроем монитор последовательного порта ( Ctrl+Shift+M ). Подключим к схеме ключ, который будет клоном оригинального ключа. О результате программирования монитор последовательного порта выведет соответствующее сообщение.
Если данный скетч не сработал, попробуйте заменить код после Serial.print(«Start programming. «) и до конца функции loop() на следующий:
Дополнительный скетч записи ключа iButton с помощью Arduino (разворачивается)
Здесь функция writeByte() будет следующей:
Временную диаграмму работы скетча записи идентификатора ключа показывать бессмысленно, т.к. она длинная и не поместится на рисунке. Однако файл *.logicdata для программы логического анализатора прикладываю в конце статьи.
Ключи для домофона бывают разных типов. Данный код подойдёт не для всех ключей, а только для RW1990 или RW1990.2. Программирование ключей других типов может привести к выходу ключей из строя!
При желании можно переписать программу для ключа другого типа. Для этого воспользуйтесь техническим описанием Вашего типа ключа (datasheet) и изменить скетч в соответствии с описанием. Скачать datasheet для ключей iButton можно в приложении к статье.
Кстати, некоторые современные домофоны читают не только идентификатор ключа, но и другую информацию, записанную на оригинальном ключе. Поэтому сделать клон, скопировав только номер, не получится. Нужно полностью копировать данные ключа.
4 Описание однопроводного интерфейса 1-Wire
1) Инициализация
Инициализация заключается в том, что ведущий выставляет условие сброса RESET (на время от 480 мкс или более опускает линию в «0», а затем отпускает её, и за счёт подтягивающего резистора линия поднимается в состояние «1»), а ведомый не позднее чем через 60 мкс после этого должен подтвердить присутствие, также опустив линию в «0» на 60…240 мкс и затем освободив её:
2) Команды работы с ПЗУ
Если после импульса инициализации не пришёл сигнал подтверждения, мастер повторяет опрос шины. Если сигнал подтверждения пришёл, то мастер понимает, что на шине есть устройство, которое готово к обмену, и посылает ему одну из четырёх 8-битных команд работы с ПЗУ:
Название | Команда | Назначение |
---|---|---|
Чтение (Read ROM ) | 0x33 | Мастер считывает 64 первых битов iButton, в которых содержатся: 8 бит кода семейства (*), 48 бит серийного номера и 8 бит контрольной суммы. |
Совпадение (Match ROM) | 0x55 | Обращение к определённому устройству с известным 64-битным номером. |
Поиск (Search ROM) | 0xF0 | Позволяет определить все 64-битные номера ведомых устройств, подключённых к шине. |
Пропуск (Skip ROM) | 0xCC | Позволяет сэкономить время обмена данными с ключом благодаря тому, что мастер пропускает проверку серийного номера. Не рекомендуется к использованию в ситуации, когда на линии присутствуют несколько ведомых. |
(*) Кстати, семейств устройств iButton существует довольно много, некоторые из них перечислены в таблице ниже.
Коды семейств устройств типа iButton (разворачивается)
Код семейства | Устройства iButton | Описание |
---|---|---|
0x01 | DS1990A, DS1990R, DS2401, DS2411 | Уникальный серийный номер-ключ |
0x02 | DS1991 | Мультиключ, 1152-битная защищённая EEPROM |
0x04 | DS1994, DS2404 | 4 кб NV RAM + часы, таймер и будильник |
0x05 | DS2405 | Одиночный адресуемый ключ |
0x06 | DS1993 | 4 кб NV RAM |
0x08 | DS1992 | 1 кб NV RAM |
0x09 | DS1982, DS2502 | 1 кб PROM |
0x0A | DS1995 | 16 кб NV RAM |
0x0B | DS1985, DS2505 | 16 кб EEPROM |
0x0C | DS1996 | 64 кб NV RAM |
0x0F | DS1986, DS2506 | 64 кб EEPROM |
0x10 | DS1920, DS1820, DS18S20, DS18B20 | Датчик температуры |
0x12 | DS2406, DS2407 | 1 кб EEPROM + двухканальный адресуемый ключ |
0x14 | DS1971, DS2430A | 256 бит EEPROM и 64 бита PROM |
0x1A | DS1963L | 4 кб NV RAM + счётчик циклов записи |
0x1C | DS28E04-100 | 4 кб EEPROM + двухканальный адресуемый ключ |
0x1D | DS2423 | 4 кб NV RAM + внешний счётчик |
0x1F | DS2409 | Двухканальный адресуемый ключ с возможностью коммутации на возвратную шину |
0x20 | DS2450 | Четырёхканальный АЦП |
0x21 | DS1921G, DS1921H, DS1921Z | Термохронный датчик с функцией сбора данных |
0x23 | DS1973, DS2433 | 4 кб EEPROM |
0x24 | DS1904, DS2415 | Часы реального времени |
0x26 | DS2438 | Датчик температуры, АЦП |
0x27 | DS2417 | Часы реального времени с прерыванием |
0x29 | DS2408 | Двунаправленный 8-разрядный порт ввода/вывода |
0x2C | DS2890 | Одноканальный цифровой потенциометр |
0x2D | DS1972, DS2431 | 1 кб EEPROM |
0x30 | DS2760 | Датчик температуры, датчик тока, АЦП |
0x37 | DS1977 | 32 кб защищённой паролем EEPROM |
0x3A | DS2413 | Двухканальный адресуемый коммутатор |
0x41 | DS1922L, DS1922T, DS1923, DS2422 | Термохронные и гигрохронные датчики высокого разрешения с функцией сбора данных |
0x42 | DS28EA00 | Цифровой термометр с программируемым разрешением, возможностью работать в режиме подключения к последовательному каналу и программируемыми портами ввода/вывода |
0x43 | DS28EC20 | 20 кб EEPROM |
Данные передаются последовательно, бит за битом. Передачу каждого бита инициирует ведущее устройство. При записи ведущий опускает линию к нулю и удерживает её. Если время удерживания линии равно 1…15 мкс, значит записывается бит «1». Если время удерживания от 60 мкс и выше – записывается бит «0».
Чтение битов также инициируется мастером. В начале чтения каждого бита мастер устанавливает низкий уровень на шине. Если ведомое устройство хочет передать «0», оно удерживает шину в состоянии LOW на время от 60 до 120 мкс, а если хочет передать «1», то на время примерно 15 мкс. После этого ведомый отпускает линию, и за счёт подтягивающего резистора она возвращается в состояние HIGH.
Вот так, например, выглядит временная диаграмма команды поиска Search ROM (0xF0). Красным цветом на диаграмме отмечены команды записи битов. Обратите внимание на порядок следования битов при передаче по 1-Wire: старший бит справа, младший – слева.
Далее, если предшествующей командой подразумевается работа с ППЗУ (чтение и запись из перезаписываемой памяти ключа Dallas), то мастер передаёт команду работы с ППЗУ.
3) Команды работы с ППЗУ
Прежде чем рассматривать команды для работы с ППЗУ iButton, необходимо пару слов сказать о структуре памяти ключа. Память разделена на 4 равных участка: три из них предназначены для хранения трёх уникальных ключей, а четвёртый – для временного хранения данных. Этот временный буфер служит своеобразным черновиком, где данные готовятся для записи ключей.
Для работы с ППЗУ существуют 6 команд:
Название | Команда | Назначение |
---|---|---|
Записать во временный буфер (Write Scratchpad) | 0x96 | Используется для записи данных во временный буфер (scratchpad). |
Прочитать из временного буфера (Read Scratchpad) | 0x69 | Используется для чтения данных из временного буфера. |
Копировать из временного буфера (Copy Scratchpad) | 0x3C | Используется для передачи данных, подготовленных во временном буфере, в выбранный ключ. |
Записать пароль ключа (Write Password) | 0x5A | Используется для записи пароля и уникального идентификатора выбранного ключа (одного из трёх). |
Записать ключ (Write SubKey) | 0x99 | Используется для непосредственной записи данных в выбранный ключ (минуя временный буфер). |
Прочитать ключ (Read SubKey) | 0x66 | Используется для чтения данных выбранного ключа. |
4) Передача данных
5 Возможные ошибки при компиляции скетча
1) Если при компиляции скетча возникнет ошибка WConstants.h: No such file or directory #include «WConstants.h», то, как вариант, следует в файле OneWire.cpp заменить первый блок после комментариев на следующий:
2) Если при компиляции появляется ошибка class OneWire has no member named read_bytes, то найдите и попробуйте использовать другую библиотеку для работы с интерфейсом OneWire.