Собрать дубликатор домофонных ключей своими руками реально на базе платы Arduino Uno или Nano: схема считывает код ключа-таблетки iButton (DS1990A) через однопроводный интерфейс 1-Wire и записывает его на перезаписываемую заготовку RW1990. Вся конструкция умещается в небольшом корпусе, питается от батареи «Крона» или USB и собирается за один вечер даже без глубокого опыта пайки.
Домофонные ключи бывают двух основных типов: контактные (таблетки Dallas/iButton, Cyfral, Metakom) и бесконтактные RFID-метки на 125 кГц (EM-Marin). Схемы дубликаторов для них различаются, поэтому перед сборкой определите, какой тип ключа используется в вашем подъезде — от этого зависит набор компонентов.
Принцип работы домофонного ключа и дубликатора
Ключ-таблетка iButton содержит микросхему с уникальным 64-битным кодом, зашитым на заводе. При касании считывателя контроллер домофона запрашивает этот код по протоколу 1-Wire и сравнивает его с базой в памяти. Перезаписываемые заготовки RW1990 позволяют изменить свой код, что и используется при копировании.
Дубликатор выполняет две операции: чтение кода с оригинала и запись того же кода на болванку. Микроконтроллер формирует временные диаграммы протокола 1-Wire программно — для этого не нужны специализированные микросхемы, достаточно одного цифрового пина и подтягивающего резистора.
⚠️ Внимание: копирование ключей допустимо только для личного использования — например, чтобы сделать запасной ключ к своему подъезду. Изготовление копий для доступа в чужие помещения без согласия собственников может повлечь юридическую ответственность.
Дубликатор на Arduino работает по простому принципу: читает 64-битный код оригинала по протоколу 1-Wire и записывает его на перезаписываемую заготовку RW1990.
Что понадобится для сборки
Набор компонентов для базовой версии дубликатора ключей iButton невелик и доступен в любом магазине радиодеталей.
- 🛠️ Плата Arduino Uno, Nano или Pro Mini — «мозг» устройства;
- 🔘 Контактная площадка (лизалка) для таблеток iButton — можно выпаять из старого считывателя;
- 🔌 Резистор 2,2–4,7 кОм для подтяжки линии данных к питанию;
- 💡 Светодиоды и резисторы к ним для индикации режимов;
- 🔑 Перезаписываемые заготовки RW1990 для записи копий;
- 🔋 Источник питания: батарея «Крона», аккумулятор или питание от USB.
Опционально добавьте кнопку выбора режима (чтение/запись), пищалку для звукового подтверждения и OLED-дисплей SSD1306 для вывода считанного кода в шестнадцатеричном виде. Дисплей удобен при отладке, но для работы устройства не обязателен.
Заготовки RW1990 бывают двух версий — RW1990.1 и RW1990.2, и алгоритмы записи у них различаются. Берите несколько штук разных версий: если одна не записывается, попробуйте другую.
Схема подключения компонентов
Классическая схема дубликатора на Arduino предельно проста. Линия данных считывателя подключается к цифровому пину (часто используют D2 или D8 — зависит от выбранного скетча) и подтягивается к +5 В через резистор. Второй контакт площадки соединяется с землёй (GND).
| Элемент | Вывод Arduino | Назначение |
|---|---|---|
| Линия данных iButton | D2 (через резистор 2,2 кОм к +5В) | Обмен по протоколу 1-Wire |
| Земля считывателя | GND | Общий провод |
| Светодиод «чтение» | D3 через резистор 220 Ом | Индикация режима чтения |
| Светодиод «запись» | D4 через резистор 220 Ом | Индикация режима записи |
| Кнопка режима | D5 на GND | Переключение чтение/запись |
Конкретные номера пинов зависят от выбранного скетча — сверяйте схему с кодом, который планируете прошивать, и при необходимости меняйте назначение выводов прямо в программе. Это одна из причин, почему схему и прошивку всегда нужно рассматривать как единый комплект, а не как независимые части.
Прошивка и программная часть
Программная часть строится на библиотеке OneWire, которая реализует протокол обмена с таблетками. Логика скетча типична: в режиме чтения контроллер опрашивает линию, при обнаружении ключа считывает его 8-байтный код и сохраняет в буфер; в режиме записи отправляет на заготовку RW1990 последовательность команд записи с сохранённым кодом.
Готовые скетчи для дубликаторов iButton публикуются на профильных форумах и в репозиториях. Перед прошивкой проверьте, какие пины задействованы в коде, и соберите схему под них — либо отредактируйте определения пинов под свою разводку. Загрузка выполняется стандартно через Arduino IDE по USB.
#include <OneWire.h>
OneWire ibutton(2); // линия данных на пине D2
// чтение: ibutton.search(addr) -> код в массиве addr[8]
Учтите, что запись на RW1990 требует точного соблюдения временных интервалов и, в некоторых реализациях, повышенного напряжения или специальной последовательности импульсов. Если запись не проходит, возможная причина — несоответствие алгоритма версии заготовки, а не неисправность схемы.
Сборка и проверка работы
Монтаж удобно начать на макетной плате — это позволит проверить работоспособность до пайки. После успешных тестов схему переносят на печатную или монтажную плату и размещают в корпусе с выведенной наружу контактной площадкой.
☑️ Проверка дубликатора перед использованием
Порядок проверки такой: приложите оригинальный ключ, убедитесь, что код считан (мигание светодиода или вывод в монитор порта через Serial.println()), затем переключитесь в режим записи и приложите заготовку. Финальный тест — проверка копии на реальном домофоне.
⚠️ Внимание: не подавайте на линию данных напряжение выше 5 В и не перепутайте полярность питания — микросхема внутри таблетки и пины Arduino чувствительны к превышению напряжения. Перед первым включением перепроверьте монтаж мультиметром.
Дубликатор для RFID-ключей 125 кГц
Для бесконтактных меток EM-Marin схема другая: понадобится RFID-модуль чтения на 125 кГц, например RDM6300 или аналог, который подключается к Arduino по последовательному интерфейсу (UART). Модуль сам выполняет радиочастотную часть и выдаёт код метки в готовом виде.
Запись выполняется на перезаписываемые карты и брелоки T5577 (или совместимые EM4305). Бытовой дубликатор на Arduino для записи T5577 собрать сложнее, чем ридер: требуется формирование специальных команд записи. На практике многие используют для RFID готовые недорогие копировщики, а самодельную схему применяют для чтения и исследования меток.
Почему ключи Cyfral и Metakom сложнее копировать
Эти системы используют собственные протоколы, отличные от 1-Wire: Cyfral передаёт код сразу при подключении питания, а Metakom требует команды старта. Для них нужны отдельные прошивки, а заготовки должны поддерживать соответствующий режим эмуляции. Универсальные заготовки, совместимые с несколькими форматами, существуют, но их запись требует более сложного алгоритма.
Типичные проблемы и их решение
Если устройство не видит ключ, первым делом проверьте подтягивающий резистор и качество контакта таблетки с площадкой — окислы и загрязнения частая причина сбоев. Также убедитесь, что номер пина в скетче совпадает с фактическим подключением.
Когда код читается, но запись на заготовку не проходит, возможные причины: несовместимая версия RW1990, нарушение таймингов записи или заготовка уже заблокирована предыдущей неудачной попыткой. Попробуйте другую болванку и другой вариант алгоритма записи в прошивке.
Бывает, что копия записана корректно, но домофон её не открывает. Тогда проверьте: возможно, домофон использует фильтрацию по семейству кода или в подъезде установлена система иного типа, чем предполагалось. Считайте код оригинала и копии и сравните побайтно — они должны совпадать полностью.
Большинство проблем самодельного дубликатора сводится к трём причинам: плохой контакт таблетки, несовпадение пинов в схеме и скетче, несовместимость заготовки с алгоритмом записи.
Часто задаваемые вопросы
Законно ли делать дубликат домофонного ключа?
Изготовление копии ключа от собственного подъезда для личных нужд (запасной ключ для семьи) на практике не запрещено. Однако копирование ключей для доступа в чужие помещения без согласия жильцов или управляющей организации может повлечь ответственность.
Какая Arduino лучше подойдёт для дубликатора?
Подойдёт любая плата на ATmega328P: Uno удобна для макетирования, Nano и Pro Mini компактнее и лучше для переносного устройства. Требования к ресурсам минимальны — хватает самых простых версий.
Можно ли скопировать ключ без Arduino, на готовом устройстве?
Да, существуют серийные автономные дубликаторы, которые читают и пишут заготовки в один клик. Самодельная схема интересна как учебный проект и позволяет гибко дорабатывать функционал: логирование кодов, поддержку разных форматов, дисплей.
Почему заготовка RW1990 не записывается?
Возможные причины: несовпадение версии заготовки (RW1990.1/RW1990.2) с алгоритмом записи в прошивке, плохой контакт, нарушение временных интервалов или блокировка заготовки после неудачной записи. Попробуйте другую болванку и альтернативную прошивку.
Подойдёт ли схема для ключей Cyfral и Metakom?
Базовая схема на 1-Wire работает только с таблетками типа Dallas iButton. Для Cyfral и Metakom нужны другие прошивки и совместимые универсальные заготовки — эти протоколы отличаются и требуют отдельной реализации.