Программатор домофонных ключей на Arduino чаще всего собирают для копирования ключей iButton (таблетки DS1990A и их аналоги) на перезаписываемые заготовки RW1990 — и первая техническая развилка здесь именно в типе ключа: контактный iButton и бесконтактный RFID 125 кГц требуют разных схем и разных модулей. Если считыватель домофона реагирует на таблетку, но не видит карту, это не неисправность, а признак того, что система работает только с одним стандартом, и программатор нужно строить под него.

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

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

Перед покупкой компонентов нужно точно определить, с каким стандартом работает ваш домофон. Возможная проверка проста: приложите ключ к считывателю и посмотрите на его конструкцию. Контактная «таблетка» в пластиковом держателе — это почти наверняка iButton по протоколу 1-Wire (DS1990A или клон). Бесконтактная карта или брелок без металлических контактов — чаще всего RFID 125 кГц формата EM-Marin (EM4100).

Код ключа iButton можно прочитать и визуально: на оригинальных таблетках Dallas он выгравирован на корпусе. У RFID-брелоков номер иногда напечатан на корпусе, но чаще его приходится считывать электронно. Если на корпусе ничего нет — это нормально, скетч выведет код в монитор порта.

  • 🔑 iButton DS1990A — контактный ключ, 64-битный код, читается по 1-Wire;
  • 💾 RW1990 / RW1990.2 — перезаписываемая заготовка под iButton, на неё и пишут копию;
  • 📇 EM4100 (EM-Marin) — бесконтактный ключ 125 кГц, только чтение;
  • 🔄 T5577 — перезаписываемая RFID-заготовка, эмулирует EM4100 после записи;
  • 🚫 Cyfral и Metakom — резистивные ключи старых домофонов, копируются по-другому и с Arduino iButton-схемой несовместимы.

Что понадобится для сборки

Базовый программатор iButton собирается из минимального набора деталей, доступных в любом магазине радиокомпонентов. Для RFID-варианта дополнительно нужен модуль считывателя — чаще всего используют RDM6300 для чтения EM4100.

КомпонентНазначениеПримечание
Arduino Uno / NanoУправляющая платаПодойдёт любой клон на ATmega328P
Резистор 2,2–4,7 кОмПодтяжка линии 1-WireТочное значение некритично
Контактная площадка iButtonСчитыватель таблетокМожно заменить двумя проводами
Модуль RDM6300Чтение RFID 125 кГцТолько для бесконтактных ключей
Заготовки RW1990 / T5577Носители для копийПроверяйте поддержку записи

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

📊 Какой тип домофонного ключа вы планируете копировать?
iButton (таблетка)
RFID 125 кГц (карта/брелок)
Оба типа
Ещё не определился

Схема подключения iButton-программатора

Схема предельно проста: линия данных 1-Wire подключается к цифровому пину Arduino через подтягивающий резистор к питанию +5 В. Второй контакт таблетки — общий провод (GND). Если у вас нет фирменной контактной площадки, центральный контакт ключа прижимается к проводу данных, а ободок — к земле.

Типовое подключение выглядит так: пин D10 (или другой, указанный в скетче) — через резистор 2,2 кОм на 5V и напрямую на центральный контакт ключа; ободок ключа — на GND. Для RFID-варианта модуль RDM6300 подключается по UART: выход TX модуля — на RX Arduino (пин D0 при прошивке лучше отключать, иначе загрузка скетча будет конфликтовать с модулем).

💡

Если используете SoftwareSerial для RDM6300 (например, пины D6/D7), аппаратный UART останется свободным — прошивать плату и смотреть лог можно будет, не отключая модуль.

⚠️ Внимание: не подавайте на линию 1-Wire напряжение выше 5 В и не замыкайте питание на землю прижимом таблетки «вверх ногами» — ключ поляризован, но короткое замыкание питания на корпус способно вывести из строя пин Arduino.

Скетч: чтение и запись ключа

Для работы с 1-Wire используется библиотека OneWire, она устанавливается через менеджер библиотек Arduino IDE (Скетч → Подключить библиотеку → Управление библиотеками). Логика программы строится в два этапа: сначала контроллер читает 8-байтный ROM-код приложенного ключа и выводит его в монитор порта, затем по команде записывает этот код в заготовку RW1990 через специфические команды записи.

Упрощённый фрагмент чтения кода ключа выглядит так:

#include <OneWire.h>

OneWire ds(10); // линия 1-Wire на пине D10

void loop() {

byte addr[8];

if (ds.search(addr)) {

for (byte i = 0; i < 8; i++) {

Serial.print(addr[i], HEX);

Serial.print(" ");

}

Serial.println();

ds.reset_search();

delay(500);

}

}

Запись на RW1990 сложнее: заготовка требует строгой временной диаграммы — команды разблокировки, записи байтов и финального «прошива» кода. Готовые проверенные скетчи-дубликаторы есть в открытых репозиториях; при выборе сверяйте, что скетч рассчитан именно на RW1990, а не на TM1990 или другую разновидность — команды записи у них различаются. После прошивки заготовки обязательно проверьте копию на реальном домофоне, не выбрасывая оригинал.

☑️ Проверка перед записью копии

Выполнено: 0 / 5

Частые проблемы и их диагностика

Самая распространённая жалоба — «ключ читается, но домофон копию не открывает». Причин несколько, и проверять их стоит по порядку. Во-первых, убедитесь, что код записался: прочитайте заготовку тем же скетчем и сравните код с оригиналом побайтно. Во-вторых, некоторые домофоны проверяют не только код, но и контрольную сумму семейства (первый байт 0x01 для DS1990A) — если заготовка пишет его некорректно, домофон отклонит ключ.

Если ключ вообще не определяется скетчем, проверьте контакт: окислы на таблетке снимаются ластиком или спиртом, а подтягивающий резистор должен быть именно между линией данных и +5 В, а не последовательно в цепи. Ещё одна возможная причина — ключ оказался не iButton, а Cyfral или Metakom: внешне они похожи на таблетку, но протокол у них другой, и 1-Wire-скетч их не увидит в принципе.

Как отличить Cyfral/Metakom от iButton без приборов

Приложите таблетку к считывателю рабочего домофона: если она срабатывает, но Arduino-скетч на 1-Wire её не видит — вероятно, это Cyfral или Metakom. Также у iButton на торце обычно виден ровный металлический «стакан» с изолятором, а у резистивных ключей конструкция контактов иная. Точно определить тип поможет мультиметр: между контактами Cyfral измеряется сопротивление порядка сотен Ом–единиц кОм, у iButton цепь ведёт себя иначе.

Правовые и практические ограничения

Сам по себе программатор — легальное устройство, а копирование собственного ключа от подъезда, где вы живёте, обычно не вызывает вопросов. Проблемы начинаются там, где копируются ключи от чужих помещений, офисов или систем с договорными ограничениями. Ряд управляющих компаний и производителей домофонов прямо указывает, что идентификаторы выдаются под учёт, и их самовольное тиражирование нарушает условия обслуживания.

⚠️ Внимание: изготовление копий ключей от чужих домофонов, домов и помещений без согласия владельца системы может квалифицироваться как неправомерный доступ. Используйте программатор только для собственных ключей или с явного разрешения владельца системы контроля доступа.

Также учитывайте технический предел метода: современные домофоны с защищёнными идентификаторами и фильтрацией «болванок» могут не принимать копии на RW1990. Если домофон принимает оригинал, но стабильно отклоняет любые заготовки — вероятно, в нём включена защита от дубликатов, и обойти её простым копированием кода не получится. В таком случае корректный путь — заказать дополнительный ключ через обслуживающую организацию.

💡

Программатор на Arduino надёжно копирует классические ключи DS1990A и EM4100 на заготовки RW1990 и T5577, но бессилен против резистивных ключей Cyfral/Metakom и домофонов с защитой от дубликатов.

Часто задаваемые вопросы

Подойдёт ли Arduino Nano вместо Uno?

Да, схема и скетч идентичны — обе платы построены на ATmega328P. Nano удобнее для компактного корпуса, но при использовании RDM6300 следите за распиновкой UART.

Почему скетч не видит ключ вообще?

Проверьте подтягивающий резистор, чистоту контактов таблетки и правильность пина в коде. Если всё в порядке, но ключа нет — возможно, это не iButton, а резистивный ключ Cyfral или Metakom, который протоколом 1-Wire не читается.

Можно ли перезаписать заготовку повторно?

Качественные RW1990 и T5577 допускают многократную перезапись. Однако встречаются дешёвые заготовки однократной записи — проверяйте возможность повторной прошивки на тестовом коде до финальной записи.

Домофон не принимает копию, хотя код совпадает. Что делать?

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

Нужен ли отдельный программатор для RFID 125 кГц?

Для чтения EM4100 достаточно Arduino с модулем RDM6300. Для записи на T5577 потребуется либо специальный скетч с формированием сигнала записи, либо готовое устройство-копировщик — запись RFID технически сложнее, чем запись iButton.