Программирование домофонов и копирование ключей Touch memory и систем бесконтактного считывания. Сделать дубликат ключа от домофона с помощью копировальщика – просто и доступно Простой дубликатор домофонных ключей
Каждый ключ для домофона имеет свой номер - именно этот номер и служит идентификатором ключа. Именно по номеру ключа домофон решает - свой или чужой. Поэтому алгоритм копирования такой: сначала нужно узнать номер разрешённого ключа, а затем присвоить этот номер другому ключу - клону. Для домофона нет разницы, был приложен оригинальный ключ или его копия. Сверив номер со своей базой данных разрешённых номеров, он откроет дверь.
Ключи для домофона, которые мы будем подключать к Arduino (их иногда называют iButton или Touch Memory ), считываются и записываются по однопроводному интерфейсу 1-wire . Поэтому схема подключения очень проста. Нам нужны лишь пара проводов и подтягивающий резистор номиналом 2,2 кОм. Схема соединений показана на рисунке.
Собранная схема может выглядеть примерно так:
2 Считывание идентификатора ключа iButton с помощью Arduino
Для работы с интерфейсом 1-wire существуют готовые библиотеки для Ардуино. Можно воспользоваться, например, этой . Скачиваем архив и распаковываем в папку /libraries/ , расположенную в каталоге Arduino IDE. Теперь мы можем очень просто работать с данным протоколом.
Загрузим в Ардуино стандартным способом этот скетч:
Скетч чтения ключа iButton с помощью Arduino (разворачивается) #includeДанный скетч показывает номер ключа для домофона, который подключён к схеме. Это то, что нам и нужно сейчас: мы должны узнать номер ключа, копию которого хотим сделать. Подключим Ардуино к компьютеру. Запустим монитор последовательного порта: Инструменты Монитор последовательного порта (или сочетание клавиш Ctrl+Shift+M).
Теперь подключим ключ к схеме. Монитор порта покажет номер ключа. Запомним этот номер.
А вот какой обмен происходит на однопроводной линии при чтении идентификатора ключа (подробнее - далее):
На рисунке, конечно, не видны все детали реализации. Поэтому в конце статьи я прикладываю временную диаграмму в формате *.logicdata , снятую с помощью логического анализатора и программы Saleae Logic Analyzer и открываемую ей же. Программа бесплатная и скачивается с официального сайта Saleae . Чтобы открыть файл *.logicdata нужно запустить программу, нажать сочетание Ctrl+O или в меню Options (расположено вверху справа) выбрать пункт Open capture / setup .
3 Запись идентификатора ключа Dallas с помощью Arduino
Теперь напишем скетч для записи данных в память ключа iButton.
Скетч записи ключа iButton с помощью Arduino (разворачивается) #includeНе забудьте задать номер своего оригинального ключа в массиве key_to_write , который мы узнали ранее.
Загрузим этот скетч в Arduino. Откроем монитор последовательного порта (Ctrl+Shift+M). Подключим к схеме ключ, который будет клоном оригинального ключа. О результате программирования монитор последовательного порта выведет соответствующее сообщение.
Если данный скетч не сработал, попробуйте заменить код после Serial.print("Start programming...") и до конца функции loop() на следующий:
Дополнительный скетч записи ключа iButton с помощью Arduino (разворачивается) delay (200); iButton.skip(); iButton.reset(); iButton.write(0x33); // чтение текущего номера ключа Serial.print("ID before write:"); for (byte i=0; i<8; i++){ Serial.print(" "); Serial.print(iButton.read(), HEX); } Serial.print("\n"); iButton.skip(); iButton.reset(); iButton.write(0xD1); // команда разрешения записи digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(60); pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10); // выведем ключ, который собираемся записать: Serial.print("Writing iButton ID: "); for (byte i=0; i<8; i++) { Serial.print(key_to_write[i], HEX); Serial.print(" "); } Serial.print("\n"); iButton.skip(); iButton.reset(); iButton.write(0xD5); // команда записи for (byte i=0; i<8; i++) { writeByte(key_to_write[i]); Serial.print("*"); } Serial.print("\n"); iButton.reset(); iButton.write(0xD1); // команда выхода из режима записи digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(10); pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10); Serial.println("Success!"); delay(10000);Здесь функция writeByte() будет следующей:
int writeByte(byte data) { int data_bit; for(data_bit=0; data_bit<8; data_bit++) { if (data & 1) { digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(60); pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10); } else { digitalWrite(pin, LOW); pinMode(pin, OUTPUT); pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10); } data = data >> 1; } return 0; }Временную диаграмму работы скетча записи идентификатора ключа показывать бессмысленно, т.к. она длинная и не поместится на рисунке. Однако файл *.logicdata для программы логического анализатора прикладываю в конце статьи.
Ключи для домофона бывают разных типов. Данный код подойдёт не для всех ключей, а только для RW1990 или RW1990.2. Программирование ключей других типов может привести к выходу ключей из строя!
При желании можно переписать программу для ключа другого типа. Для этого воспользуйтесь техническим описанием Вашего типа ключа (datasheet) и изменить скетч в соответствии с описанием. Скачать datasheet для ключей iButton можно в приложении к статье.
Кстати, некоторые современные домофоны читают не только идентификатор ключа, но и другую информацию, записанную на оригинальном ключе. Поэтому сделать клон, скопировав только номер, не получится. Нужно полностью копировать данные ключа.
4 Описание однопроводного интерфейса 1-Wire
Давайте чуть глубже познакомимся с интерфейсом One-wire. По организации он похож на интерфейс I2C: в нём также должно присутствовать ведущее устройство (master), которое инициирует обмен, а также одно или несколько ведомых устройств (slave). Все устройства подключены к одной общей шине. Устройства iButton - всегда ведомые. В качестве мастера чаще всего выступает микроконтроллер или ПК. Скорость передачи данных составляет 16,3 кбит/сек. Шина в состоянии ожидания находится в логической "1" (HIGH). В данном протоколе предусмотрены всего 5 типов сигналов:
- импульс сброса (master)
- импульс присутствия (slave)
- запись бита "0" (master)
- запись бита "1" (master)
- чтение бита (master)
1) Инициализация
Инициализация заключается в том, что ведущий выставляет условие сброса RESET (на время от 480 мкс или более опускает линию в "0", а затем отпускает её, и за счёт подтягивающего резистора линия поднимается в состояние "1"), а ведомый не позднее чем через 60 мкс после этого должен подтвердить присутствие, также опустив линию в "0" на 60…240 мкс и затем освободив её:
2) Команды работы с ПЗУ
Если после импульса инициализации не пришёл сигнал подтверждения, мастер повторяет опрос шины. Если сигнал подтверждения пришёл, то мастер понимает, что на шине есть устройство, которое готово к обмену, и посылает ему одну из четырёх 8-битных команд работы с ПЗУ:
(*) Кстати, семейств устройств 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: старший бит справа, младший - слева.
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 заменить первый блок после комментариев на следующий:
#include
2) Если при компиляции появляется ошибка class OneWire has no member named read_bytes, то найдите и попробуйте использовать другую библиотеку для работы с интерфейсом OneWire.
Всем доброго времени суток!
Хочу предоставить Вашему вниманию дубликатор (копировальщик) ключей от домофона.
Копировальщик умеет считывать/записывать на брелок или карту.
Давно хотел опробовать недорогое устройство для копирования ключей от домофона. И вот этот момент настал, итак приступим.
Заказ пришел за 3 недели.
Ключи от домофона. Небольшой ликбез.
Ключи бывают:
- Контактными. Официальное название Touch memory (сокр. TM) или iButton
К ним относятся:
Dallas.
В большинстве случаев под TM подразумевается ключ семейства Dallas (например, DS1990A). С этими ключами работает множество устройств: Vizit, Eltis, Z-5R, С2000-2 и др.Cyfral.
Эти домофоны работают только с ключами DC2000А и Цифрал-КП1.Metakom.
Под эти домофоны разработаны ключи К1233КТ2. Эти ключи годятся и для многих других контроллеров.Резистивные.
Есть экзотические домофоны, работающие с резистивными ключами. Вместо кода с них считывается сопротивление. Без сомнения, это контактные ключи, но я бы не назвал их Touch memory.- Бесконтактные. Официальное название RFID.
Выпускаются в форме карт, брелоков, браслетов и пр. Бытовое название «карточки» и «капельки» (брелоки). Ключи действующие до 10-15 см называются Proximity (ближнего действия), а действующие до 1 м - Vicinity (дальнобойные). В домофонах используются исключительно ключи Proximity, и этот термин стал чуть ли не синонимом «бесконтактного ключа».
В мире Proximity тоже нет единства форматов:
EM-Marin
самый популярный на сегодня формат.HID
аксакал среди бесконтактных ключей.MIFARE
перспективный формат. Именно к нему относятся бесконтактные смарт-карты.Данное устройство предназначено ИСКЛЮЧИТЕЛЬНО для копирования бесконтактных ключей с частотой 125KHz.
Никакие другие ключи скопировать не получится.
Содержимое посылки:
Комплект поставки:
- RFID 125KHz EM4100 ID Card Copier;- перезаписываемы брелки 6шт;
- перезаписываемые карточки 6шт.;
- инструкция (англо-китайская).
Батарейки ААА в комплект не входят.
Внешний вид прибора:
Внутренности прибора:
Прибор во включенном положении:
(горит красный огонек, значит прибор включен)
Внутренности ключа:
Инструкция:
- Процесс копирования:
2. Включаем тумблер, расположенный с правой стороны (загорается красный индикатор с надписью POWER и издается два коротких звуковых сигнала).
3. Подносим карточку или брелок к левой боковине, на уровне надписи POWER.
4. Нажимаем кнопку «READ». В ответ дубликатор пискнет 2 раза и загорается зеленый светодиод с надписью «PASS»
5. Убираем карточку или брелок с которого считали метку.
6. Подносим к копировальщику перезаписываемую карточку или брелок. Нажимаем кнопку «WRITE». На время загорится желтый светодиод с надписью BUSY и опять и раздастся двойной писк. Всё новом брелоком или карточкой можно пользоваться.
Видео процесса считывания и записи:
Итог.
Всё прекрасно работает. Если надо сделать несколько копий ключей RFID 125KHz, смело можете покупать, тем более что в комплекте 6 брелоков и 6 карт, а средняя цена за одну копию 100 рублей, выгода очевидна. Если брелоки или карточки закончатся на просторах интернета можно купить в пределах 20р.Перед покупкой данного устройства рекомендую узнать частоту и тип вашего ключа, иначе Вы выбросите деньги на ветер.
Если обзор вам понравился, или помог в выборе устройства ставим лайки, это лучшая Ваша награда моего труда.
Всем спасибо за внимание!
Товар предоставлен для написания обзора магазином. Обзор опубликован в соответствии с п.18 Правил сайта.
Планирую купить +88 Добавить в избранное Обзор понравился +44 +83С появлением домофонных систем появилась необходимость в дубликаторах. Дубликаторы - это устройства, созданные с целью копирования домофонных ключей. Приобрести их можно как для изготовления ключей в небольших количествах, например, для дома или офиса, так и для выполнения больших заказов в мастерских.
Принцип работы копировщика можно уяснить, разобравшись с принципом работы самого домофона. Домофон посылает сигнал открыть дверь тогда, когда получает некую информацию с ключа. Мы подносим домофонный ключ к считывающей панели - распознается код ключа - двери разблокированы. Индивидуальный код ключа задается уже в процессе создания. Таким образом, каждый ключ уникален. Когда устанавливается подъездный домофон, в его базу записываются коды ключей, которые выдаются жителям. После этого открыть дверь без наличия ключа, внесенного в базу или специального кода, состоящего из цифр, - задача нереальная. Но что делать, если ключ утерян или сломан? Тут-то и приходят на помощь дубликаторы домофонных ключей.
Дубликатор представляет собой небольшое по размеру устройство, чаще всего портативное, работающее на батарейках. Он способен считать код с оригинального ключа и записать его на новый, чистый ключ, заготовку. Происходит все это в считанные секунды. В результате небольших махинаций мы получаем дубликат ключа, на который домофон будет реагировать так же, как и на оригинальный. С помощью дубликатора можно создать домофонный или электронный ключ.
КУПИТЬ ДубликаторЫ в интернет-магазине «Домофонный сервис»
В каталоге магазина вы найдете разнообразные модели дубликаторов домофонных ключей. Они отличаются функциями и возможностями. Отличительными чертами является:
год выпуска;
внешний вид, размер, вес;
объем памяти, возможность удалять из нее некоторые коды и запоминать кодовые комбинации некоторых ключей;
возможность получать обновления через ПК и т.д.
О каждой модели вы можете узнать детали в карточке товара. Обратиться за дополнительной информацией необходимо к менеджеру-консультанту по номеру, указанному на сайте. Уточнить условия заказа, оплаты и доставки вы можете по тому же номеру.
Почему дубликаторы купить стоит именно на ? Потому что здесь сделать это можно недорого, а также при покупке получить гарантии и уверенность в качестве. Доставка из главного офиса в Москве производится в другие города России.
Добрый день! Как-то надоело платить по 150 рублей за копию ключа от домофона и решил собрать простой, бюджетный дубликатор iButton на Arduino. Цены на подобные готовые устройства «кусаются», хотя и функционал у них шире, копируют практически всё, включая беспроводные ключи. Мне достаточно простого копирования ключа iButton а-ля «кнопка». Интересно? Прошу под «cut»!
Итак, приступим! Для начала «техзадание», что должно уметь это устройство
:
1) Читать содержимое ключа, интересно же что там зашито.
2) Копировать ключи, как это ни странно звучит:)
3) Прошивать «универсальный» ключ. Под словом «универсальный» будем понимать какой-либо свой ключ, который будет записываться по-умолчанию.
UPD. Очень важно!
Если первый байт, family code, будет 00
, например 00
:12:34:56:AB:CD:EF:AA
, то после прошивки ключ «умрёт», читаться он уже этим программатором, а возможно и другими, не будет. Выявлено опытным путём, спасибо товарищу 16
:AB:CD:EF:E0 с естественно неверной контрольной суммой E0
. Так как контрольная сумма неверная, то домофон игнорирует эту последовательность при считывании. Этот домофон загубил все перезаписываемые ключи, пока я разбирался в чём дело и почему «сами по себе» меняются данные в ключах. В итоге дубликат к этому домофону сделать не удалось, пришлось идти в обслуживающую организацию и заказывать ключик за 100 рублей. :)
В итоге получаем полезную в хозяйстве штуку за смешные деньги, «болванки» для записи продают , хотя у нас в оффлайне можно найти по 30 рублей за штуку, у копировальщиков на рынке по 100 - 150 рублей:).
UPD. О том какие типы ключей можно записать этим дубликатором читаем . Спасибо за помощь товарищу "у.
UPD. Если ключ не пишется следуем товарища . Планирую купить +197 Добавить в избранное Обзор понравился +95 +184