Домофонный ключ-«таблетка» формата Dallas DS1990A хранит всего 48 бит уникального кода, который считывается по однопроводному протоколу 1-Wire — именно эта простота и делает возможным сборку копировщика на базе Arduino или даже на нескольких дискретных компонентах. Устройство читает код с оригинала и записывает его на перезаписываемую заготовку, например RW1990 или TM2004, после чего заготовка открывает домофон так же, как исходный ключ.
Прежде чем браться за паяльник, стоит понимать границы применения: копирование собственного ключа для себя или членов семьи — легитимная задача, а вот изготовление дубликатов чужих ключей без согласия владельца или управляющей компании может нарушать закон. Ниже разберём принцип работы, схему, список деталей и порядок сборки именно как учебный и бытовой DIY-проект.
Как устроен домофонный ключ и почему его можно скопировать
Внутри «таблетки» находится микросхема с прошитым на заводе уникальным серийным номером. При касании считывателя домофон подаёт питание по тем же двум контактам, по которым идёт обмен данными, — это и есть шина 1-Wire. Контроллер домофона запрашивает код, сравнивает его со списком в памяти и при совпадении открывает замок.
Ключевой момент: домофон не проверяет, «настоящий» ли это ключ. Он сравнивает только код. Поэтому заготовка, умеющая подменять свой номер на записанный, для домофона неотличима от оригинала. Именно на этом работают и заводские дубликаторы, и самодельные устройства.
Ограничение метода — защищённые системы. Часть современных домофонов использует проксимити-карты стандартов EM-Marin (125 кГц) или Mifare (13,56 МГц), а также ключи с криптографической защитой. Их копирование требует другого оборудования, а в случае с защищёнными картами может быть вовсе невозможно без доступа к мастер-карте системы.
⚠️ Внимание: изготавливайте дубликаты только своих ключей либо с согласия владельца. Самовольное копирование ключей от чужих подъездов может расцениваться как неправомерный доступ, а в ряде случаев — как приготовление к правонарушению.
Какие заготовки и форматы существуют
Перед сборкой определите, с каким типом ключа вы имеете дело. Внешне «таблетки» похожи, но внутри могут быть совершенно разные микросхемы. Бытовой тест: если ключ срабатывает только при непосредственном касании считывателя — это почти наверняка контактный iButton, если на расстоянии нескольких сантиметров — RFID.
| Тип | Интерфейс | Перезаписываемая заготовка | Сложность копирования |
|---|---|---|---|
| DS1990A (Dallas) | 1-Wire, контактный | RW1990, TM2004, TM08v | Низкая |
| Метаком / Цифрал | Контактный, свои протоколы | Универсальные заготовки TM | Средняя |
| EM-Marin | RFID 125 кГц | T5577 | Низкая (нужен RFID-модуль) |
| Mifare Classic | RFID 13,56 МГц | UID-чейнджабл карты | Средняя/высокая |
| Mifare DESFire | RFID 13,56 МГц, крипто | — | Практически невозможна |
Самый благодарный вариант для первого устройства — связка DS1990A → RW1990. Протокол документирован, заготовки недороги, а код прошивки умещается в пару сотен строк.
Список деталей для копировщика на Arduino
Базовая схема копировщика строится вокруг любой платы Arduino (Nano, Uno или Pro Mini — разницы нет, важны лишь цифровые пины). Полный перечень выглядит так:
- 🔧 Плата Arduino Nano или аналог — «мозг» устройства;
- 🔘 Две контактные площадки (лизалки) под формат iButton — одна для чтения, одна для записи, либо одна универсальная;
- 💡 Два светодиода с резисторами 220–330 Ом — индикация режима и результата;
- 🔀 Кнопка тактовая — запуск чтения/записи;
- 🔋 Батарейный отсек или аккумулятор с повышающим модулем на 5 В для автономности;
- 📟 Опционально — OLED-дисплей 0,96" по
I2Cдля отображения считанного кода.
Из резисторов критичен один: подтягивающий резистор линии данных 1-Wire номиналом около 2,2–4,7 кОм между линией данных и плюсом питания. Без него шина не заработает — это самая частая причина «мёртвого» самодельного дубликатора.
Контактные площадки для iButton можно сделать из латунных винтов или вытащить из нерабочего домофонного считывателя — главное, чтобы был надёжный пружинный контакт с корпусом «таблетки».
Схема подключения и принцип работы
Схема предельно проста. Линия данных считывателя подключается к цифровому пину (условно D2), между этим пином и +5V ставится подтягивающий резистор. Корпус «таблетки» — это земля (GND), центральный контакт — данные. Кнопка подключается между другим пином и землёй, светодиоды — через токоограничивающие резисторы на свободные пины.
Алгоритм работы устройства выглядит так. В режиме ожидания контроллер периодически опрашивает шину 1-Wire импульсом сброса. Появление ключа на контакте выдаёт импульс присутствия — устройство считывает 64-битный ROM-код (8 бит семейства, 48 бит серийника, 8 бит CRC) и сохраняет его в память. Затем пользователь прикладывает заготовку и нажимает кнопку записи: контроллер переводит RW1990 в режим программирования и передаёт сохранённый код.
Нюанс: у разных заготовок команда входа в режим записи различается. Для RW1990 и TM2004 последовательности отличаются, поэтому в прошивке либо выбирают тип заготовки, либо реализуют оба варианта. Точные команды берите из документации на конкретную заготовку — универсальной «волшебной» комбинации не существует.
Что такое CRC и зачем он нужен
Последний байт ROM-кода — контрольная сумма CRC8, вычисленная от предыдущих семи байт. Домофон проверяет её при каждом считывании. При записи на заготовку CRC вычисляется автоматически из серийного номера, поэтому вручную его считать не нужно — достаточно передать 48 бит кода.
Прошивка и порядок сборки
Готовые скетчи для дубликатора на Arduino есть в открытых источниках, но полезнее понимать структуру кода. Основа — работа с шиной 1-Wire через стандартную библиотеку OneWire.h: функции сброса, чтения байта и записи байта. Логика чтения сводится к последовательности «сброс → команда Read ROM (0x33) → чтение 8 байт».
#include <OneWire.h>
OneWire ds(2); // линия данных на пине D2
byte addr[8];
if (ds.search(addr)) {
// addr[0..7] — считанный ROM-код ключа
// проверка CRC: OneWire::crc8(addr, 7) == addr[7]
}
☑️ Порядок сборки и проверки копировщика
Обязательный этап — верификация. После записи считайте код с заготовки и сравните его с сохранённым побайтно. Только полное совпадение всех восьми байт гарантирует, что домофон примет дубликат.
⚠️ Внимание: при питании от батареи следите за уровнем напряжения. При просадке ниже рабочего диапазона запись на заготовку может прерваться на середине, и она окажется в неопределённом состоянии — часть заготовок после этого восстановить не удаётся.
Типичные ошибки и их диагностика
Чаще всего самодельный дубликатор «не видит» ключ. Причины, как правило, три: отсутствует или неверно подобран подтягивающий резистор, плохой контакт «таблетки» с площадкой (окислы, слабый прижим) и перепутанные контакты — данные и земля. Начинайте диагностику с мультиметра: между линией данных и плюсом должно читаться сопротивление подтяжки.
Вторая группа проблем — заготовка записывается, но домофон её не открывает. Здесь проверяйте: совпадает ли считанный обратно код с оригиналом, тот ли тип заготовки использован (некоторые домофоны капризничают с отдельными сериями заготовок), и не использует ли домофон дополнительную проверку, например фильтрацию по семейству кода.
- 🔍 Считанный код состоит из одних нулей или единиц — нет контакта или не работает подтяжка шины;
- 🔁 Код читается нестабильно, меняется от раза к разу — помехи на линии, укоротите провода до считывателя;
- 🚫 CRC не сходится — чтение прошло с ошибкой, повторите с более плотным контактом;
- 🧱 Заготовка не входит в режим записи — неверная команда программирования для данного типа заготовки.
Надёжность самодельного копировщика на 90% определяется качеством контакта со считывателем и корректной подтяжкой шины 1-Wire, а не сложностью прошивки.
Альтернативы самодельному устройству
Если пайка и программирование не входят в ваши планы, существуют готовые решения. Портативные дубликаторы продаются как законченные устройства и работают по тому же принципу: приложил оригинал — считал, приложил заготовку — записал. Их преимущество — поддержка сразу нескольких форматов, включая EM-Marin.
Ещё один путь — официальный: многие управляющие компании и обслуживающие домофоны организации добавляют дополнительные ключи в память домофона за умеренную плату. Это избавляет от необходимости что-либо копировать и гарантированно работает даже с защищёнными системами.
Наконец, часть смартфонов с модулем NFC умеет эмулировать некоторые RFID-метки, но контактные ключи iButton таким способом скопировать нельзя — физически разные интерфейсы.
Часто задаваемые вопросы
Можно ли скопировать любой домофонный ключ?
Нет. Контактные ключи семейства Dallas и простые RFID-метки 125 кГц копируются относительно легко. Защищённые карты с криптографией (например, Mifare DESFire) без доступа к ключам системы скопировать практически невозможно.
Сколько раз можно перезаписывать заготовку RW1990?
Перезаписываемые заготовки рассчитаны на многократную запись, но точный ресурс зависит от производителя конкретной заготовки. На практике для бытовых задач ресурса хватает с большим запасом.
Почему домофон не принимает исправно записанную заготовку?
Возможные причины: несовпадение хотя бы одного байта кода, несовместимость конкретной заготовки с данной моделью домофона либо дополнительные проверки на стороне контроллера. Считайте код с заготовки и сравните с оригиналом побайтно.
Законно ли делать копию своего ключа от домофона?
Копирование собственного ключа для личного использования, как правило, не нарушает закон. Проблемы возникают при изготовлении дубликатов чужих ключей без согласия владельца или при обходе ограничений доступа. При сомнениях согласуйте вопрос с управляющей компанией.
Можно ли собрать копировщик без Arduino?
Да, существуют схемы на микроконтроллерах PIC и даже на дискретной логике, но по соотношению трудозатрат и результата Arduino — самый доступный вариант: готовые библиотеки 1-Wire снимают необходимость вручную формировать временные диаграммы протокола.