Копируем ключ от домофона используя Arduino | Пикабу

Копируем ключ от домофона используя Arduino | Пикабу Электронная цифровая подпись

Дубликатор rfid меток (ключи от домофона)

В недорогих системах контроля доступа и подъездных домофонах очень часто используются карты и брелоки формата EM-Marine.

Этот стандарт крайне не защищен, и метки легко копируются. Данный обзор посвящен прибору который за минуту делает копию электронного ключа.

Посылка пришла в обычном пакете, сам прибор упакован в коробку из тонкого гофр-картона.
Копируем ключ от домофона используя Arduino | Пикабу

Копируем ключ от домофона используя Arduino | Пикабу

И собственно сам прибор
Копируем ключ от домофона используя Arduino | Пикабу

Питается дубликатор от двух батареек ААА
Копируем ключ от домофона используя Arduino | Пикабу

Для любителей «потрохов», прибор легко разобрался ногтём
Копируем ключ от домофона используя Arduino | Пикабу

С обратной стороны:
Копируем ключ от домофона используя Arduino | Пикабу

Теперь самое время проверить дубликатор (позвонил друг, сказал что его «таблетка сдохла» и попросил сделать дубликат с моей.

Включаем прибор и подносим исходный ключ
Копируем ключ от домофона используя Arduino | Пикабу

Теперь нажимаем кнопку Read и загорится соответствующий светодиод
Копируем ключ от домофона используя Arduino | Пикабу

Меняем оригинальный ключ на «болванку»
Копируем ключ от домофона используя Arduino | Пикабу

И нажимаем write
Копируем ключ от домофона используя Arduino | Пикабу

Никаких звуков при этом прибор не издавал, желтую «лампочку» я или не заметил или не зажглась.

Параллельно процедуре копирования, я считывал коды с ключей для проверки бесплатной программой Placecard и считывателем Z2 USB.
Копируем ключ от домофона используя Arduino | Пикабу

Считываем исходный ключ

Копируем ключ от домофона используя Arduino | Пикабу

Считываем болванку
Копируем ключ от домофона используя Arduino | Пикабу

Считываем сделанный дубликат, как видите это копия исходного ключа.
Копируем ключ от домофона используя Arduino | Пикабу

Что могу сказать в качестве вывода, девайс крайне простой, пользоваться им легко. И он работает 🙂

В комплекте идет пять ключей-болванок. Учитывая что копия у нас в местных ключных ларьках стоит 400 рублей, покупка экономически, более чем оправдана!

UPDATE: копировщик предназначен для ключей 125 кГц. Ведь есть ещё и 13,56МГц. А болванки выглядят одинаково. Можно легко обмануться.
И для того, чтобы перезаписать МНОГОКРАТНО болванку, она должна быть типа ЕМ4305. В комплекте именно такие идут. Если нужен однократно записываемый ключ, достаточно болванки ЕМ4100. Они дешевле.

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

Сколько дверей мы открываем каждый день? Дом, работа, родители, любимый человек… У каждого ребёнка, даже начальной школы, есть ключ от подъезда. Если нет консьержки или охранника, такая дверь защищает от нежелательных посетителей, бездомных животных, вандалов. И чем больше дверей, тем чаще нам требуется сделать копии домофонных ключей.

Из истории домофонов
Виды домофонных ключей
Как закодировать ключ от домофона
Режимы перекодировки для домофонов
Принцип работы копировщика домофонных ключей
Схема дубликаторов минимальной конфигурации
Универсальный ключ для домофона своими руками 

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

Впервые домофоны изобрели в США в 50-е годы XX века. В советском союзе они появились через 10 лет, помогали сохранить тепло в доме, а не защитить от посторонних, как это задумывалось за бугром. 

С 1991 года американская компании Dallas Semiconductors начинает цифровой этап истории домофонов. Они собираются при помощи высокотехнологичных микросхем, поэтому мы можем слышать и видеть посетителя из своей квартиры, даже управлять дверью смартфоном.  

Все ключи делятся на контактные и бесконтактные. Магнитные ключи для домофонов вышли из обихода из-за постоянных сбоев. До сих пор такая система встречается в банках, где вход осуществляется по намагниченным картам

В России наиболее распространены варианты контактных «таблеток», представляющие собой пластиковый корпус с магнитным носителем. Визуально они почти одинаковы, но методы кодирования при этом разные.

Электронные ключи (брелоки или карточки доступа) содержат код, который проверяет считыватель при открытии двери. Сделать мастер-ключ можно с помощью дубликатора магнитных ключей. Для этого потребуется копировщик, пустая «болванка» и непосредственно оригинал. Код оригинала записывается на «болванку», она распознаётся домофоном как «своя» и открывает входную дверь. Подробную информацию смотрите в видео ниже.

На ключ записывается только заводской код. В домофон прописываются все коды, которыми можно открыть дверь. Чтобы запрограммировать ключ от домофона, необходимо внести его в память контроллера (устройство, запоминающее коды).

Открывать двери разных подъездов или даже разных домов реально, если знать, как перекодировать ключ. Универсальный ключ позволит входить в свой подъезд, офис, а также дом родителей на другом конце города.

Если не вдаваться в технические подробности, то кодирование и копирование это одинаковый процесс. Однако считыватель принимает не все марки ключей домофона. Например, модели MiFare программируются только для чтения, так как там включена защита от клонов. Невозможно прочитать его метку без знания пароля.

В небольших городах или одном районе все модели, скорее всего, будут распространённых марок – Dallas, Metakom, Cyfral.

Здесь можно приобрести простой программатор домофонных ключей.

Модель домофонаВариант перекодировки
CCD 2094/tc
С1
CCD 2094.1 С2 / С4
CCD 2094/tc (5 цифр на экране)
 С1
CCD 2094.1И (5 цифр на экране, цифра  С2
Модель не выяснена
 С1
Цифрал-ИнтелС4
CCD 2094.1M
С2 / С4 
CCD 2094/tm C3 
M-20/T
 X 
CCD 2094 M/T (3 цифры на экране) С1 
M-10M/T
 С1 
   CCD-20 X 
 

Как перекодировать ключ? Это возможно через обслуживающую компанию, частные фирмы, а также своими силами. 

Дубликатор домофонных ключей на arduino – это понятная система для копирования домофонных ключей. 
Вам понадобится: 

  • плата на Arduino Nano-1шт;
  • подстроечный многооборотный резистор на 10Ком -1шт;
  • соединительные провода;
  • макетная плата – 1шт;
  • RFID ключ болванка T5577(Т5557);
  • Ibutton ключ болванка RW1990;
  • RGB светодиод – 1шт;
  • кнопка – 1шт;
  • выключатель питания – 1шт;
  • активный зуммер 5В – 1шт;
  • считыватель контактный – 1шт;
  • провод ПЭВ 0,2-0,4мм;
  • конденсаторы и резисторы;
  • пластмассовый корпус (распредкоробка);
  • паяльник;
  • тестер. 

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

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

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

  1. Домофон будет воспринимать  ваш ключ как сервисный – дверь будет срабатывать на открытие.
  2. Программатор ключей создаёт такую копию, которая будет вводить домофон в состояние ошибки и открывать дверь.
  3. Комплект Вездеход УК 15 открывает все популярные модели домофонных дверей российских и иностранных производителей (Форвард, Визит, Маршал и другие). К каждому комплекту есть таблица соответствия (купить комплект можно здесь).   

За 70 лет от производства первых простейших домофонов человечество шагнуло к видеосвязи, идентификации по отпечаткам пальцев и сетчатки глаза. Но копировщики домофонных ключей дают уверенность в том, что все двери откроются перед нами в нужный момент.  

Где можно сделать ключ от домофона?

Контактные ключи меняем на бесконтактные

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

Как сделать ключ от домофона

Дубликатор домофонных ключей (ibutton) с мозгами из arduino nano

Добрый день! Как-то надоело платить по 150 рублей за копию ключа от домофона и решил собрать простой, бюджетный дубликатор iButton на Arduino. Цены на подобные готовые устройства «кусаются», хотя и функционал у них шире, копируют практически всё, включая беспроводные ключи. Мне достаточно простого копирования ключа iButton а-ля «кнопка». Интересно? Прошу под «cut»!

Итак, приступим! Для начала «техзадание», что должно уметь это устройство:
1) Читать содержимое ключа, интересно же что там зашито.
2) Копировать ключи, как это ни странно звучит 🙂
3) Прошивать «универсальный» ключ. Под словом «универсальный» будем понимать какой-либо свой ключ, который будет записываться по-умолчанию.

Читайте также:  Как подписывать с помощью ЭЦП электронные документы различных форматов

Мозгами будет Arduino Nano v3 неоднократно рассмотренная на этом ресурсе.

Корпусом для этого устройства будет служить неисправный «однобаночный повербанк», так же неоднократно обозримый и тут, и там. Из внутренностей «повербанка» останется только печатная плата с гнёздами USB и MicroUSB. Через MicroUSB будем питать устройство от 5В, так же может быть запитано от порта Mini-USB Arduino. Через USB подключим считыватель iButton. Всё остальные электронные компоненты выпаяны из платы «повербанка». Кнопка для дубликатора куплена в оффлайне, ничего особенного в ней нет, обычная, без фиксации. В корпусе проделаны отверстия для порта Mini-USB расположенного на плате Arduino и над кнопкой «Reset».
Копируем ключ от домофона используя Arduino | Пикабу

Считыватель iButton, взят от какого-то неведомого устройства, ничего особенного в нём нет, просто контактная площадка. К считывателю припаян USB штекер. Так как разъём используется не по назначению и чтобы ничего не «сжечь» при подключении считывателя к порту ПК, ноутбука или зарядного устройства, для подключения используются провода зелёного «Data » и белого «Data-» цвета.
Копируем ключ от домофона используя Arduino | Пикабу
Копируем ключ от домофона используя Arduino | Пикабу

Дубликатор со считывателем и ключами:

Копируем ключ от домофона используя Arduino | Пикабу

Светодиоды для индикации процесса прошивки на корпус не стал выводить, корпус белый и хорошо просвечивается, всё видно.

Схема подключения:
Копируем ключ от домофона используя Arduino | Пикабу
Резистор R2 поставил 1кОм, в интернетах пишут что надо 2,2 кОм.

Программное обеспечение. Для компиляции необходима библиотека

OneWire

взять её можно

тут

.

Скетч от 27.06.2021

Копируем ключ от домофона используя Arduino | Пикабу

#include <OneWire.h>

#define pin 11
OneWire ibutton (pin); // Пин D11 для подлючения iButton (Data)
byte addr[8];
byte ReadID[8] = { 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F }; // "Универсальный" ключ. Прошивается последовательность 01:FF:FF:FF:FF:FF:FF:2F

const int buttonPin = 6;
const int ledPin = 13;
int buttonState = 0;
int writeflag = 0;
int readflag = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
  Serial.begin(115200);
}

void loop() {

  buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {
    readflag = 1;
    writeflag = 1;
    digitalWrite(ledPin, HIGH);
  }
  if (!ibutton.search (addr)) {
    ibutton.reset_search();
    delay(50);
    return;
  }

  digitalWrite(ledPin, HIGH);
  delay(50);

  for (byte x = 0; x < 8; x  ) {
    Serial.print(addr[x], HEX);
    if (readflag == 0) {
      ReadID[x] = (addr[x]);
    }
    Serial.print(":");
  }

  byte crc; // Проверка контрольной суммы
  crc = ibutton.crc8(addr, 7);
  Serial.print("CRC: ");
  Serial.println(crc, HEX);
  digitalWrite(ledPin, LOW);

  if ((writeflag == 1) or (Serial.read() == 'w')) {
    ibutton.skip(); ibutton.reset(); ibutton.write(0x33);
    Serial.print("  ID before write:");
    for (byte x = 0; x < 8; x  ) {
      Serial.print(' ');
      Serial.print(ibutton.read(), HEX);
    }
    // send reset
    ibutton.skip();
    ibutton.reset();
    // send 0xD1
    ibutton.write(0xD1);
    // send logical 0
    digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(60);
    pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10);

    Serial.print('n');
    Serial.print("  Writing iButton ID:n    ");
    byte newID[8] = { (ReadID[0]), (ReadID[1]), (ReadID[2]), (ReadID[3]), (ReadID[4]), (ReadID[5]), (ReadID[6]), (ReadID[7]) };
    ibutton.skip();
    ibutton.reset();
    ibutton.write(0xD5);
    for (byte x = 0; x < 8; x  ) {
      writeByte(newID[x]);
      Serial.print('*');
    }
    Serial.print('n');
    ibutton.reset();
    // send 0xD1
    ibutton.write(0xD1);
    //send logical 1
    digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(10);
    pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10);
    writeflag = 0;
    readflag = 0;
    digitalWrite(ledPin, LOW);
  }
}

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;
}

Скетч от 04.09.2021, добавлена функция восстановления ключей с неправильным family code

Копируем ключ от домофона используя Arduino | Пикабу

#include <OneWire.h>

#define pin 11
OneWire ibutton (pin); // Пин D11 для подлючения iButton (Data)
byte addr[8];
byte ReadID[8] = { 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F }; // "Универсальный" ключ. Прошивается последовательность 01:FF:FF:FF:FF:FF:FF:2F

const int buttonPin = 6;
const int ledPin = 13;
int buttonState = 0;
int writeflag = 0;
int readflag = 0;
int val = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
  Serial.begin(115200);
}

void loop() {

  buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {
    readflag = 1;
    writeflag = 1;
    digitalWrite(ledPin, HIGH);
    val  ;
    if (val > 6) val = 6;
    Serial.print(val);
    delay(500);
  }
  else {
    val = 0;
  }


  if (!ibutton.search (addr)) {
    ibutton.reset_search();
    delay(50);
    if (val <= 5) return;
    val = 0;
  }

  digitalWrite(ledPin, HIGH);
  delay(50);

  for (byte x = 0; x < 8; x  ) {
    Serial.print(addr[x], HEX);
    if (readflag == 0) {
      ReadID[x] = (addr[x]);
    }
    Serial.print(":");
  }

  byte crc; // Проверка контрольной суммы
  crc = ibutton.crc8(addr, 7);
  Serial.print("CRC: ");
  Serial.println(crc, HEX);
  digitalWrite(ledPin, LOW);

  if ((writeflag == 1) or (Serial.read() == 'w')) {
    ibutton.skip(); ibutton.reset(); ibutton.write(0x33);
    Serial.print("  ID before write:");
    for (byte x = 0; x < 8; x  ) {
      Serial.print(' ');
      Serial.print(ibutton.read(), HEX);
    }
    // send reset
    ibutton.skip();
    ibutton.reset();
    // send 0xD1
    ibutton.write(0xD1);
    // send logical 0
    digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(60);
    pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10);

    Serial.print('n');
    Serial.print("  Writing iButton ID:n    ");
    byte newID[8] = { (ReadID[0]), (ReadID[1]), (ReadID[2]), (ReadID[3]), (ReadID[4]), (ReadID[5]), (ReadID[6]), (ReadID[7]) };
    ibutton.skip();
    ibutton.reset();
    ibutton.write(0xD5);
    for (byte x = 0; x < 8; x  ) {
      writeByte(newID[x]);
      Serial.print('*');
    }
    Serial.print('n');
    ibutton.reset();
    // send 0xD1
    ibutton.write(0xD1);
    //send logical 1
    digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(10);
    pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10);
    writeflag = 0;
    readflag = 0;
    digitalWrite(ledPin, LOW);
  }
}

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;
}

Как это работает:

Для вывода содержимого ключа подключаем дубликатор через порт Mini-USB к компьютеру. Устанавливаем драйвер устройства.
В диспетчере устройств появится COM-порт с каким-либо номером, в моём случае 4.

Запускаем программу

Putty

, выбираем тип соединения «Serial» прописываем номер COM порта, в моём случае 4, и скорость 115200.

Нажимаем кнопку «Open» и прикладываем ключ к считывателю.

Для копирования прикладываем ключ к считывателю. Светодиод на корпусе Arduino подключенный к пину D13 начинает мигать, это говорит о том, что код ключа считался в память дубликатора. Нажимаем «зелёную» кнопку записи, светодиод начинает светиться постоянно. Прикладываем ключ который хотим записать, светодиод тухнет и примерно через 1 секунду начинает мигать, это значит что ключ записан.

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

Важно! При записи «универсального» ключа, например такого 01:FF:FF:FF:FF:FF:FF:2F, нужно правильно указать контрольную сумму ключа, в данном случае 2F это и есть контрольная сумма, рассчитывается по особому алгоритму, который описывать не вижу смысла. Ключ можно записать с кривой контрольной суммой, и скорее всего считываться устройствами (домофонами, панелями) он будет, но устройства будут его игнорировать.

Например нам нужно прошить ключ 01:12:34:56:AB:CD:EF:XX. Первый байт, передаваемый из памяти ключа, является кодом типа устройства — family code, всегда 01. После него идёт гарантированно уникальный серийный номер (6 байт) 12:34:56:AB:CD:EF. Последний байт XX несёт информацию Cyclic Redundancy Check (CRC), что означает проверочный циклический избыточный код. CRC специальным образом вычисляется от первых семи байт.
Для вычисления контрольной суммы вместо XX записываем любое шестнадцатеричное число, например AA. Получаем ключ следующего вида 01:12:34:56:AB:CD:EF:AA. Заменяем в скетче строку

byte ReadID[8] = { 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F };

на

byte ReadID[8] = { 0x01, 0x12, 0x34, 0x56, 0xAB, 0xCD, 0xEF, 0xAA };

прошиваем ключ и смотрим что там, а там видно что в поле CRC должно быть

E0

.

Копируем ключ от домофона используя Arduino | Пикабу

Меняем в скетче строку

byte ReadID[8] = { 0x01, 0x12, 0x34, 0x56, 0xAB, 0xCD, 0xEF, 0xAA };

на

byte ReadID[8] = { 0x01, 0x12, 0x34, 0x56, 0xAB, 0xCD, 0xEF, 0xE0 };

снова прошиваем ключ и смотрим что там, а там теперь ключ с правильной CRC.

Копируем ключ от домофона используя Arduino | Пикабу

Коды ключей

тут

.

UPD. Очень важно! Если первый байт, family code, будет 00, например 00:12:34:56:AB:CD:EF:AA, то после прошивки ключ «умрёт», читаться он уже этим программатором, а возможно и другими, не будет. Выявлено опытным путём, спасибо товарищу belik1982‘у. Подробнее тут.

Читайте также:  Электронные торги - как участвовать: пошаговая инструкция и что для этого нужно - Помощь Юриста

UPD. В скетч от 04.09.2021 добавлена функция восстановления ключей с неправильным family code, для этого необходимо приложить ключ к считывателю и удерживать кнопку в течение 6 секунд. После этого в ключ будет записан «универсальный» ключ. Спасибо за помощь товарищу krassalex‘у. Подробнее тут.

В итоге получаем полезную в хозяйстве штуку за смешные деньги, «болванки» для записи продают

тут

, хотя у нас в оффлайне можно найти по 30 рублей за штуку, у копировальщиков на рынке по 100 — 150 рублей :).

UPD.

О том какие типы ключей можно записать этим дубликатором читаем

тут

. Спасибо за помощь товарищу

biverov

‘у.

UPD.

Если ключ не пишется следуем

совету

товарища

andrey2596

.

Копировщик домофонных ключей. вещь нужная не всем.

В данном обзоре я расскажу по мере сил о копировщике домофонных ключей поддерживающем несколько стандартов (125/250/375/500/625/750/875/1000кГц и 13.56МГц), а также

о перезаписываемых метках «два в одном»

, на 125кГц 13.56Мгц.

Сразу хочу обозначить несколько вещей, обсуждение которых я не хотел бы видеть в комментах.
1. копировать чужие ключи — может быть незаконно, об этом кстати прибор пишет каждый раз при включении
2. нужен такой копировщик не всем, обычному человеку он скорее не нужен, я приобрёл во-первых потому что у меня на воротах стоит кодовый замок, и во-вторых потому что мне было интересно.
3. можно взять ардуину/малинку/чтотоеще, сделать всё то же самое на коленке, и не платить кучу денег за бесполезное устройство.
4. я понятия не имею, может ли данный девайс работать с российскими проездными и картами метро, по причине отсутствия у меня оных.
5. зато я знаю, что данный девайс может что-то записать только в перезаписываемые карты, а они такие далеко не все.

Далее. Обзор аналогичного устройства (но с поддержкой только меток на 125кГц) уже был, и не один, и не два, да и вообще поиск по слову «rfid» выдает много интересного. По стандартам карт можно почитать например тут, по-моему довольно полно и доступно изложено.

Начну же я с перезаписываемой двухчастотной метки. Тут ключевой момент, что она «два в одном», то есть и 125кГц и 13.56МГц, то есть и EM-Marine и Mifare, к тому же перезаписываемая. Поэтому она относительно дорогая (плюс тут 1 штука в лоте, а оптом всегда дешевле), но поверьте, оно того стоит, если повезло иметь две двери с разными стандартами замков и соответственно без возможности прописать одну метку в оба. В частности, я отдал метку брательнику — у него на подъезде Mifare, у нас на воротах — Em Marine? в итоге он одной меткой может открывать две двери.

Нам обещают:
Frequency: 13.56MHz 125khz
Card chip: UID T5577/EM4305 dual chip
Read/Write Time: 1~2ms
Rewritable: >100, 100 times
Data Retention: >10 years

Тут есть один нюанс, непонятный лично мне, как неспециалисту: и 5577 и 4305 — это чипы для 125кГц. Какой используется для 13.56Мгц — не совсем понятно, в описании написано UID что ИМХО ни о чем не говорит — если я неправ поправьте в комментах. К сожалению, и другого оборудования для работы с такими метками у меня нет, а обозреваемый считыватель не выдает никакой информации по метке. Единственное что есть в FAQ — что памяти в чипе 8кБ, что я немогу ни подтвердить ни опровергнуть. Впрочем, софт показывает вроде бы объем памяти у карты при попытке её раскодировки, ну и в данном случае показал по 1кБ и у оригинальной карты и у обозреваемой, что в целом тоже ни о чем не говорит.

упаковка:
Копируем ключ от домофона используя Arduino | Пикабу

сравнение с «однократкой» em marine на 125кГц
Копируем ключ от домофона используя Arduino | Пикабу

размеры 44*30.5*5мм
Копируем ключ от домофона используя Arduino | Пикабу

на просвет видно два чипа и две катушки
Копируем ключ от домофона используя Arduino | Пикабу

Читается, пишется, работает. Можно брать.

Ну и к основному предмету обзора.

Нам обещают следующее:
ID / IC Full-Time Broadcast and Voice (English).

Support reading and writing frequency: 125 khz, 250 khz, 375 khz, 500 khz, 625 khz, 750 khz, 875 khz, 1000 khz, 13.56 khz, and support HID induction card.

Support card reading: em4100 / em4200, classic mi-fare, uid card, ultra light, hidden 1386/1326/1346, ntag203.

Support card writing: t5577, em4305, hidden 1386/1326/1346, uid card.

You can directly enter the numeric keys used to enter the card number.

Has USB interface.

Uses 4 AA batteries, standard equipment, easy to carry (not included).

It has a decoding function and can directly prepare various types of smart card access ports.

С батарейками обманули, они тут ААА. Но 4штуки, да. И в комплект не входят.

Упаковка:
Копируем ключ от домофона используя Arduino | Пикабу

Комплектация и внешний вид:
Копируем ключ от домофона используя Arduino | Пикабу
Копируем ключ от домофона используя Arduino | Пикабу
Копируем ключ от домофона используя Arduino | Пикабу

Ну и сразу давайте кишочки

Вставляем батарейки, включаем.
Заставка:
Копируем ключ от домофона используя Arduino | Пикабу

Предупреждение о законности:
Копируем ключ от домофона используя Arduino | Пикабу

Берем метку, нажимаем scan
Копируем ключ от домофона используя Arduino | Пикабу

Ура, работает!

По органам управления.
Стрелки — не знаю для чего
Кнопка питания — понятно.
Кнопка OK думаю тоже — она нужна по сути для подтверждения о чтении предупреждения, ввода кода вручную и вероятно где-то еще.
кнопка C стирает последний введенный символ при вводе кода
Кнопки READ и WRITE — чтение и запись
SCAN — сканирование всех режимов, до первого удачного чтения. Если карточка двухчастотная — прочитается только один раз.
INPUT — кнопка ручного ввода кода. тут понятное дело действуют и цифровые кнопки.
У цифровых кнопок есть и дополнительная функция: по длинному нажатию выбирается режим работы/частота, то есть:
0 — IC Type A (13.56M), 1 — Id-125kHz, 2 — Id-250kHz, 3 — Id-375kHz, 4 — Id-500kHz, 5 — Id-625kHz, 6 — Id-750kHz, 7 — Id-875kHz, 8 — Id-1000kHz, 9 — HID-125kHz
Ну а если вы не помните где какая частота — то кнопка MODE перебирает их по кругу.

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

Как это работает? Вариантов тут несколько. Первый вариант — простые метки типа EM-Marine на 125кГц. Подносим метку сзади ридера (там есть резинка от трусов чтобы можно было её подсунуть и зафиксировать), выбираем режим и нажимаем read, либо нажимаем scan, метка читается, номер появляется на экране, извлекаем прочитанную метку, вставляем перезаписываемую, нажимаем write, поздравляю, всё готово.Если известен код, но метки-исходника нет — нажимаем input, вводим код, еще раз input либо ok, вставляем перезаписываемую метку, write — готово.

С метками на 13МГц сложнее, они бывают криптованные. В этом случае после чтения на экране будет написано что нужно подключить устройство к компьютеру для расшифровки.

Выключаем устройство, подключаем к USB, включаем, КНОПКИ НЕ НАЖИМАЕМ. Оно видится как диск, там лежит софт для расшифровки и pdf с инструкцией. Копируем это всё на локальный диск, нажимаем на приборе кнопку OK — и устройство переподключается уже как некое устройство ввода. Нажимаем в программе START DECODING, после этого метка читается и в течение пары минут производится её расшифровка.

Копируем ключ от домофона используя Arduino | Пикабу

После этого оригинал метки вынимаем, вставляем перезаписываемую, нажимаем write и радуемся. К сожалению, прочитанное и расшифрованное содержимое на экран не выводится, только IC/ID.

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

Ну и как-бы и всё, тоже всё работает, быстро, просто, удобно. Можно покупать — если вам оно нужно и не жалко денег.

Читайте также:  Как получить электронную подпись для физического лица?

на копировщик есть купон BGUSRFID, снижающий цену до 24,59 до 28.02, но только 10 штук

Копируем ключ от домофона используя arduino

Метаком

Ещё одна отечественная разработка — домофоны Метаком и ключи К1233КТ2. Как и Cyfral он просто бесконечно посылает код, меняя своё сопротивление/потребляемый ток. К счастью в Интернете доступна официальная документация:

Это всё, что нужно знать для работы с этим ключом. Он посылает четыре байта данных, но в каждом из них один бит уходит на проверку чётности. Итого выходит 28 полезных бит, а 228 = 268435456 комбинаций.

Увы, я так и не смог найти ни один такой ключ, чтобы поэкспериментировать с ним. Однако, в Интернете легко найти универсальный код, который открывает 99% домофонов Метаком. Один из них как раз в соседнем от меня подъезде. Я написал программу, посылающую этот код, основываясь только на технической документации.

Создание мультиключа


Перейдём уже к практике! Да, я пытался совместить в одном устройстве и имитацию ключей, и их считывание (кроме Метаком), и синхронизацию с компьютером по USB. Вот схема того, что получилось (кликабельно):

Компоненты и их предназначение:

  • IC1 — микроконтроллер ATMEGA8/ATMEGA8A/ATMEGA8L;
  • U1 — USB-контроллер FT232RL, нужен для подключения устройства к компьютеру;
  • CON1 — miniUSB разъём;
  • BT1 — батарейки, дающие 3-5 вольт;
  • D1 и D2 — диоды (желательно шоттки), которые изолируют питание от батареи от питания от USB;
  • P1 — «таблетка» iButton, используется для подключения к домофонам;
  • P2 — контакты считывателя ключей, используются для подключения к ключам;
  • R1 — резистор, подтягивающий линию 1-wire к VCC;
  • R2 — токопонижающий резистор для управления транзистором Q2;
  • R3 — резистор, ещё сильнее подтягивающий линию к VCC для считывания ключей Cyfral;
  • R4 — токопонижающий резистор, используется для открытия Q1 и определения подключения к USB;
  • R5 — подтягивает базу Q1 к земле, чтобы закрывать его, когда нет подключения к USB;
  • R6 — токопонижающий резистор для светодиодов, достаточно одного, т.к. одновременно они не горят;
  • R7 и R8 — делитель напряжения для одного из входов компаратора, чтобы считывать ключи Cyfral;
  • Q1 — транзистор для определения подключения к USB;
  • Q2 — транзистор для включения земли на считывателе и эмуляторе, чтобы не сажать батарейки, случайно замкнув контакты в кармане;
  • C1, C2 и C3 — конденсаторы для фильтрации питания;
  • SW1 — единственная кнопка для управления устройством;
  • LEDS — семь светодиодов в форме восьмёрочки для отображения номера ключа.

Печатная плата (кликабельно):

Это было ещё время до покупки 3D принтера, когда я проектировал устройства под корпуса, а не корпуса под устройства. Ко мне в руки попал очень приятный экземпляр в виде брелка и с кнопкой. Просто идеально, оставалось только проделать отверстия под USB и светодиоды. Увы, я до сих пор не могу найти в продаже точно такой же корпус. В итоге получилось как-то так:

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

Управление производится всего одной кнопкой. При её первом нажатии устройство включается. Кратковременным нажатием кнопки производится выбор ключа, номер которого отображается светодиодами. Когда нужный ключ выбран, достаточно приложить контакты к считывателю домофона.

Длительное нажатие на кнопку переводит устройство в режим считывания ключей, при этом мигает средний светодиод. В этот момент нужно приложить ключ к контактам считывателя ключей (именно для этого у меня снизу вкручен винтик). Если считывание прошло успешно, отобразится номер, под которым ключ занесён в память.

При подключении по USB устройство видится как виртуальный COM-порт. Для простоты работы был написан клиент под Windows:

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

Типы домофонных ключей «таблеток»

Копируем ключ от домофона используя Arduino | Пикабу

На самом деле подобные ключи в корпусе MicroCAN бывают разных типов, хотя внешне и выглядят почти одинаково. Объединяет их только то, что ключ имеет два контакта — земля и данные, при этом используется паразитное питание, т.е. ключ питается непосредственно от линии данных.

Универсальные коды ключей

На самом деле универсальные ключи от домофонов — это скорее миф. Разработчики почти никогда не делают для себя какой-то специальный код для всех дверей, исключение составляют только Vizit.

Но есть легенда, которая гласит, что после чтения кода ключа многие домофоны сверяют его со всеми кодами, которые записаны в ячейках памяти. Однако, в ячейках, где ещё ничего не было записано, лежат FFки или нули. Таким образом домофон можно открыть, послав ключ только из нулей или только из FFок.

Звучит как полнейший бред. Каким надо быть программистом, чтобы допустить такой баг? Но… это действительно часто работает. Да, в свежих прошивках это обычно исправлено, но многие домофоны стоят без изменений годами. Невероятно, но факт.

Любые другие коды ключей выдаваемые за универсальные — это обычно всего лишь служебные ключи для сотрудников почты, ЖКО или самой домофонной компании, и они работают только в отдельных населённых пунктах.

Заключение

Очень удобно в одном устройстве иметь ключи от дома, родственников, работы и подъездов друзей. Особенно актуально для тех, кто не провёл в квартиру домофонную трубку. Но создавать мультиключ было не столько полезно, сколько интересно. Это отличная практика для изучения микроконтроллеров.

Да, именно с этого я в своё время начинал. Помимо этого каждый новый не открывающийся подъезд вызывал целую бурю интереса. Бегать по городу и решать логические задачи, чтобы открыть какую-то дверь — это как видеоигра в реальной жизни! Чертовски увлекательно. Не хватает только схваток с гопниками и бабулек у подъездов в виде боссов 😉

Оцените статью
ЭЦП Эксперт
Добавить комментарий

Adblock
detector