Считать код домофонного ключа Dallas DS1990A и записать его на болванку RW1990 можно с помощью платы Arduino Uno или Nano, одного резистора и пары строк кода — это базовая схема самодельного дубликатора ключей на Arduino. Устройство работает по протоколу 1-Wire: контроллер подаёт импульс сброса, ключ отвечает уникальным 64-битным идентификатором, который затем переписывается на перезаписываемую заготовку.
Такой проект популярен среди радиолюбителей: компоненты недорогие, схема простая, а результат наглядно демонстрирует принципы работы домофонных систем. В статье разберём, какие типы ключей поддаются копированию, какие модули понадобятся, как собрать схему и какие ограничения есть у метода.
⚠️ Внимание: копирование ключей допустимо только для собственных ключей или с согласия владельца системы доступа. Несанкционированное изготовление дубликатов чужих ключей может повлечь юридическую ответственность. Используйте устройство исключительно в легальных целях — для резервных копий своих ключей и в учебных проектах.
Какие ключи можно копировать на Arduino
Не всякий ключ поддаётся копированию простым дубликатором. Возможность зависит от технологии, по которой работает идентификатор, и от наличия у него защиты.
- 🔑 iButton (DS1990A и аналоги) — контактные «таблетки» по протоколу 1-Wire. Копируются проще всего, именно с них обычно начинают.
- 📡 EM-Marin (125 кГц) — бесконтактные карты и брелоки, считываются модулем RDM6300 или аналогичным.
- 💳 Mifare (13,56 МГц) — читаются модулем RC522, но защищённые сектора без ключей доступа скопировать не получится.
- 🚫 Криптозащищённые метки — ключи с динамическим шифрованием самодельным дубликатором не копируются.
Практический вывод прост: перед сборкой определите тип своего ключа. Контактная «таблетка» — это почти наверняка iButton, пластиковая карта без чипа снаружи — скорее всего EM-Marin, карта с видимой антенной и чипом — семейство Mifare.
Необходимые компоненты
Для базовой версии дубликатора iButton набор деталей минимален. Вам понадобятся:
- 🧠 плата Arduino Uno, Nano или совместимый клон;
- 🔌 контактная площадка (считыватель) для ключей-«таблеток»;
- ⚡ резистор номиналом около 2,2 кОм — подтяжка линии данных 1-Wire к питанию;
- 📝 перезаписываемые болванки RW1990 (или TM2004) для записи копий;
- 🔘 кнопка для запуска чтения/записи и светодиоды для индикации режима.
Для работы с бесконтактными ключами 125 кГц дополнительно нужен считыватель RDM6300 и записываемые карты/брелоки T5577. Для Mifare — модуль RC522 и чистые карты Mifare Classic с известными ключами доступа.
Болванки RW1990 бывают разных ревизий, и часть из них требует специальных команд записи. Если дубликат записался, но домофон его не принимает — попробуйте болванку другого производителя.
Схема подключения iButton-дубликатора
Схема предельно проста, поскольку протокол 1-Wire использует всего одну линию данных. Контактная площадка имеет два вывода: центральный (данные) и внешнее кольцо (земля).
| Элемент | Подключение к Arduino | Назначение |
|---|---|---|
| Центральный контакт считывателя | Цифровой пин (например, D2) через подтяжку 2,2 кОм к 5V | Линия данных 1-Wire |
| Внешний контакт считывателя | GND | Общий провод |
| Кнопка «чтение» | Цифровой пин (например, D3) и GND | Запуск считывания кода |
| Светодиод с резистором | Цифровой пин (например, D4) | Индикация успешной операции |
Подтягивающий резистор обязателен: без него линия данных «висит в воздухе», и библиотека OneWire не увидит ключ. Если ключ не определяется — в первую очередь проверьте именно этот резистор и качество контакта в площадке.
Скетч: чтение и запись кода ключа
Логика прошивки строится на библиотеке OneWire, которую можно установить через менеджер библиотек Arduino IDE. Алгоритм чтения выглядит так: контроллер сбрасывает шину, отправляет команду чтения ROM 0x33 и принимает 8 байт идентификатора.
#include <OneWire.h>
OneWire ds(2); // линия данных на пине D2
void loop() {
byte addr[8];
if (ds.search(addr)) {
// addr[0..7] — считанный код ключа
for (byte i = 0; i < 8; i++) {
Serial.print(addr[i], HEX);
}
Serial.println();
ds.reset_search();
}
}
Запись на болванку RW1990 сложнее: она выполняется специальной последовательностью команд, которая зависит от ревизии болванки. Готовые примеры скетчей для записи есть в открытых проектах на GitHub — ищите по запросу «RW1990 Arduino writer». Перед прошивкой сверяйте, что скетч рассчитан именно на ваш тип болванки.
☑️ Проверка перед первым запуском
Работа с RFID-ключами 125 кГц
Для карт и брелоков EM-Marin схема дополняется считывателем RDM6300. Модуль подключается к UART: вывод данных — к пину RX Arduino, плюс питание 5V и земля. При поднесении карты модуль сам отправляет код в последовательный порт, и скетчу остаётся только разобрать пакет.
Запись на карту T5577 — отдельная задача. Дешёвый RDM6300 умеет только читать, поэтому для записи нужен либо специализированный копировщик, либо схема с управляемой катушкой. Многие DIY-проекты поэтому ограничиваются чтением EM-Marin и эмуляцией кода другими средствами.
⚠️ Внимание: при подключении RDM6300 к аппаратному UART (пины 0 и 1) отключайте модуль на время загрузки скетча, иначе прошивка может завершиться ошибкой. Альтернатива — использовать программный последовательный порт
SoftwareSerialна свободных пинах.
Почему Mifare сложнее копировать
Карты Mifare Classic имеют секторную структуру с ключами доступа. Публичный UID считывается модулем RC522 без проблем, но данные защищённых секторов недоступны без знания ключей. Некоторые домофоны проверяют только UID — тогда достаточно карты с изменяемым нулевым блоком (так называемые «magic cards»). Если домофон читает данные секторов, простое копирование не сработает.
Типичные проблемы и их диагностика
Чаще всего самодельный дубликатор «не видит» ключ из-за механики, а не из-за кода. Окислившиеся контакты площадки, слабый прижим «таблетки» или обрыв в проводе дают полное отсутствие ответа по шине. Проверьте цепь мультиметром и зачистите контакты — это решает большинство случаев.
Вторая группа проблем — запись на болванку. Признак типичной ситуации: код считан корректно, запись прошла без ошибок, но домофон дубликат не принимает. Возможные причины: несовместимая ревизия болванки, домофон проверяет дополнительные байты или контрольную сумму, либо запись фактически не выполнилась. Проверить последнее просто — считайте болванку после записи и сравните дамп с оригиналом побайтно.
Третий сценарий — нестабильное чтение, когда ключ определяется через раз. Здесь подозрение падает на питание и длину проводов: линия 1-Wire чувствительна к помехам, поэтому соединения делайте короткими, а питание — стабильным.
Диагностику всегда начинайте с физического уровня: контакт, резистор подтяжки, питание. Ошибки в скетче проявляются реже, чем плохой прижим ключа в считывателе.
Ограничения самодельного дубликатора
Самодельное устройство на Arduino — учебный и бытовой инструмент, а не универсальный копировщик. Оно не работает с ключами, где применяется криптографическая защита или обмен динамическими кодами. Домофоны некоторых современных систем проверяют не только идентификатор, но и отклик ключа на запрос — такие ключи простым дубликатором не копируются.
Кроме того, качество результата зависит от болванок. Дешёвые заготовки неизвестного происхождения могут записываться нестабильно или «отваливаться» со временем. Для ответственных случаев — например, ключа, которым пользуется вся семья, — надёжнее заказать копию в мастерской, где используют проверенные заготовки и профессиональные копировщики.
Храните считанные коды своих ключей в текстовом файле. Если ключ потеряется, вы запишете дубликат на новую болванку за минуту, не разбирая схему заново.
FAQ: частые вопросы
Подойдёт ли Arduino Nano вместо Uno?
Да, схема и скетч идентичны — отличается только форм-фактор платы. Nano даже удобнее для компактного корпуса дубликатора.
Можно ли скопировать ключ от домофона, не зная его типа?
Сначала определите тип внешне: контактная «таблетка» — iButton, бесконтактный брелок или карта — RFID 125 кГц или 13,56 МГц. Считыватель RDM6300 поможет проверить наличие метки 125 кГц, модуль RC522 — карты Mifare.
Почему домофон не принимает записанный дубликат?
Возможные причины: несовместимая ревизия болванки RW1990, ошибка записи (проверьте повторным считыванием и сравнением дампа) или домофон использует проверку, которую простая копия не проходит. Попробуйте болванку другого производителя.
Нужен ли отдельный модуль для записи RFID 125 кГц?
Модуль RDM6300 умеет только читать. Для записи на карты T5577 потребуется записывающее устройство или специализированный копировщик — это аппаратно более сложная задача, чем запись iButton.
Законно ли делать дубликаты ключей?
Копирование собственных ключей или ключей с согласия владельца системы доступа законно. Изготовление дубликатов чужих ключей без разрешения может повлечь ответственность — используйте устройство только в легальных целях.