Собрать копировальщик домофонных ключей на Arduino реально за один вечер: базовая связка — плата Arduino Uno или Nano, модуль считывателя RFID 125 кГц (или контактор для таблеток iButton) и записываемая заготовка вроде T5577 или RW1990. Устройство читает код с оригинального ключа и переносит его на болванку, после чего копия открывает тот же домофон.
Ниже разберём, какие форматы ключей встречаются в домофонах, какие компоненты понадобятся, как подключить модули и какой скетч использовать. Отдельно остановимся на ограничениях метода: не все ключи копируются, и это нормально.
⚠️ Внимание: копирование ключей допустимо только для собственного домофона или с согласия владельца системы доступа. Изготовление копий чужих ключей без разрешения может нарушать закон и правила управляющей компании.
Какие домофонные ключи существуют и что реально скопировать
Прежде чем паять схему, определите тип вашего ключа — от этого зависит вся конструкция. Чаще всего в домофонах встречаются два семейства: контактные таблетки Dallas iButton (DS1990A и совместимые) и бесконтактные RFID-метки 125 кГц (EM-Marin, формат EM4100). Реже попадаются ключи Mifare 13,56 МГц — их копирование заметно сложнее и выходит за рамки простого дубликатора.
Ключи iButton передают уникальный 48-битный код по протоколу 1-Wire при касании считывателя. RFID-метки 125 кГц излучают свой номер по радио, как только попадают в поле антенны. В обоих случаях домофон просто сравнивает код со списком в памяти — поэтому копия с тем же кодом воспринимается как оригинал.
- 🔑 iButton (DS1990A) — металлическая «таблетка», копируется на заготовки RW1990;
- 📡 EM-Marin 125 кГц — карта или брелок, копируется на перезаписываемые метки T5577;
- 💳 Mifare 13,56 МГц — защищённые карты, простым дубликатором не копируются;
- 🚫 Ключи с шифрованием — если домофон проверяет не только номер, но и криптографический отклик, копия не сработает.
Тип ключа определяет схему устройства: для iButton нужен контактор и протокол 1-Wire, для RFID 125 кГц — модуль считывателя и запись на T5577.
Необходимые компоненты
Список деталей зависит от того, какой формат вы будете дублировать. Для универсального устройства «два в одном» понадобятся оба считывателя — они подключаются к разным пинам и не конфликтуют.
| Компонент | Назначение | Примечание |
|---|---|---|
| Arduino Uno / Nano | Управляющая плата | Подойдёт любой клон на ATmega328P |
| Модуль RFID 125 кГц (RDM6300 или аналог) | Чтение EM-Marin | Передаёт код по UART |
| Контактор для iButton | Чтение DS1990A | Можно заменить двумя проводами с зажимом |
| Заготовки RW1990, T5577 | Записываемые копии | Покупаются отдельно от ключей |
| Резистор 4,7 кОм, кнопка, светодиод | Обвязка схемы | Подтяжка линии 1-Wire и индикация |
Для записи на T5577 потребуется отдельная схема с катушкой и транзисторным каскадом — готовый модуль RDM6300 умеет только читать. Это самая сложная часть проекта; альтернатива — использовать готовый записывающий модуль 125 кГц, который управляется по UART теми же командами.
Начните с версии только для iButton: схема из контактора, резистора 4,7 кОм и библиотеки OneWire собирается за 10 минут и не требует ВЧ-части.
Схема подключения
Подключение считывателя iButton предельно простое. Линия данных контактора соединяется с цифровым пином (например, D2) и подтягивается к +5V резистором 4,7 кОм. Второй контакт таблетки — общий провод GND.
Модуль RDM6300 подключается по UART: вывод TX модуля — на пин RX Arduino (или на программный последовательный порт через SoftwareSerial, чтобы не мешать прошивке и отладке). Питание модуля — 5 В, антенна обычно идёт в комплекте и подключается к разъёму на плате.
☑️ Проверка перед первым включением
Кнопку режима удобно повесить на отдельный пин, а для индикации хватит встроенного светодиода на D13 или пары внешних светодиодов: «прочитано», «записано», «ошибка».
Скетч и логика работы
Логика дубликатора состоит из трёх шагов: чтение кода оригинала в буфер, ожидание заготовки, запись сохранённого кода. Для iButton используется библиотека OneWire: функция поиска устройства на шине возвращает 8-байтовый адрес, который и является кодом ключа.
#include <OneWire.h>
OneWire ds(2); // линия 1-Wire на пине D2
void loop() {
byte addr[8];
if (ds.search(addr)) {
// addr[0..7] — прочитанный код ключа
// дальше — запись на RW1990 командами записи
ds.reset_search();
}
}
Запись на RW1990 выполняется тем же интерфейсом 1-Wire, но специальными командами программирования — их последовательность описана в документации на заготовку и в готовых проектах дубликаторов. Учтите: существуют разные ревизии RW1990, и команды записи у них могут отличаться, поэтому скетч стоит сверять с описанием именно вашей болванки. Для RFID-части коды с RDM6300 приходят по UART в готовом виде — остаётся распарсить пакет и сохранить номер.
Запись копии и проверка результата
Приложите заготовку к считывателю только после того, как оригинал успешно прочитан — иначе есть риск перезаписать пустым или мусорным кодом. После записи обязательно выполните контрольное чтение копии и сравните код с оригиналом побайтно. Совпадение — признак успешного дублирования.
Финальная проверка — на реальном домофоне. Поднесите копию к считывателю подъезда: замок должен сработать так же, как от оригинала. Если домофон не реагирует, возможные причины: код записался с ошибкой, заготовка другого формата, либо система использует защищённую проверку, которую простая копия не проходит.
⚠️ Внимание: не тестируйте самодельное устройство на чужих домофонах и не копируйте ключи третьих лиц. Даже технически успешная копия чужого ключа — это юридический риск, а не достижение.
Почему некоторые ключи не копируются
Часть современных домофонов работает с Mifare и проверяет криптографический отклик сектора, а не только номер карты. Также встречаются заготовки с однократной записью и домофоны с фильтрацией «неоригинальных» кодов. В этих случаях простой дубликатор бессилен — потребуется оборудование другого класса либо добавление копии в память домофона штатным способом через мастер-ключ или управляющую компанию.
Типичные ошибки при сборке
Чаще всего устройство не работает из-за обвязки, а не кода. Отсутствие подтягивающего резистора на линии 1-Wire даёт хаотичные данные, перепутанные TX/RX — тишину в порту, а плохой контакт антенны — нестабильное чтение RFID.
- 🔌 Проверьте подтяжку 4,7 кОм — без неё протокол 1-Wire не работает;
- 🔁 Убедитесь, что
TXмодуля идёт наRXплаты, а не «TX к TX»; - 📏 Держите антенну RFID вдали от металлических поверхностей — они гасят поле;
- 🧪 Тестируйте чтение через монитор порта, прежде чем пытаться писать на заготовку.
Если заготовка не записывается, проверьте её тип: EM4100 — это только чтение, записать на неё ничего нельзя. Для копий нужны именно перезаписываемые чипы T5577 или RW1990.
Диагностику всегда начинайте с чтения: если оригинал читается стабильно и код выводится в монитор порта — половина устройства уже работает.
FAQ: частые вопросы
Можно ли скопировать ключ Mifare на Arduino?
Только номер UID — и то не всегда, если он защищён от записи на заготовке. Полноценное копирование защищённых секторов Mifare требует другого оборудования и методов, простой дубликатор на Arduino для этого не предназначен.
Какая Arduino лучше подойдёт — Uno, Nano или Mega?
Для дубликатора достаточно любой платы на ATmega328P — Uno или Nano. Nano удобнее для компактного корпуса, Uno проще при макетировании на первых этапах.
Сколько копий можно сделать с одного оригинала?
Количество не ограничено: код хранится в скетче или EEPROM и записывается на любое число заготовок. Ограничением является лишь ресурс перезаписи самих болванок.
Почему домофон не открывает, хотя коды совпадают?
Возможные причины: заготовка другого формата, домофон проверяет дополнительные данные помимо номера, либо запись прошла с ошибкой в старших байтах. Сравните коды побайтно и проверьте копию на другом домофоне того же типа.
Законно ли делать копию своего ключа?
Копирование собственного ключа для личного использования, как правило, не запрещено, но условия могут регулироваться договором с управляющей компанией. Изготовление копий чужих ключей без согласия владельца недопустимо.