Дубликатор домофонных ключей (iButton) на Arduino Uno


Добрый день! Очередной дубликатор домофонных ключей (iButton) на Arduino Uno с энергонезависимой памятью. Небольшое техническое задание.

Итак, что должно уметь:
1. Копировать ключи, iButton -> iButton;
2. Сохранять ключи, iButton -> Внутренняя память (99 ключей);
3. Записывать ключи, Внутренняя память -> iButton;
4. Восстанавливать «программно убитые» ключи.

Для сборки понадобится Arduino Uno R3, LCD Keypad Shield, считыватель iButton, два резистора 330 Ом.

Arduino Uno R3 — известный герой многих обзоров.

LCD Keypad Shield — «франкенштейн» из этого обзора.

Считыватель iButton — покупал тут. Если в двух словах, то брать стоит. Качественный считыватель.

Распиновка считывателя:
Чёрный провод — GND.
Белый провод — Data.
Красный и зелёный провода — двухцветный светодиод. При протекании тока в «прямом» направлении — светится красным, в «обратном» — зелёным.

Два резистора 330 Ом, первый для «подтяжки» Data-линии считывателя к +5В, резистор припаиваем между выводом D11 и +5В Arduino Uno.
Второй для ограничения тока протекающего через двухцветный светодиод считывателя. Режем красный или зелёный провод считывателя и в разрыв припаиваем резистор.

Гребёнка на 4 пина.

Прошиваем Arduino Uno.

Прошивку в виде hex — файла берём тут. Так же прошивка и исходник есть на гитхабе: github.com/kvolk2git/IButton-Duplicator-With-Mem-LCD
Программное обеспечение для прошивки Arduino Uno берём тут, или на гугл-диске вместе с прошивкой.
Инструкция по прошивке
— подключаем Arduino в USB-порт
— выбираем Hex файл
— выбираем тип Uno
— выбираем COM порт, который создался при подключении Arduino к USB
— скорость 57600 (115200).
— нажимаем Upload

Если Вы предпочитаете исходные коды, скетч лежит там же, недостающие библиотеки берём на просторах интернета.

Приступим к сборке, схему рисовать не вижу смысла, всё собирается за 5 минут.
Припаиваем резисторы, первый.

Теперь второй.

Припаиваем гребёнку, предварительно согнутую под углом 30-45 градусов, на пины D11, D12, D13, GND.

Подключаем считыватель, предварительно завязал провода в узел и продел между пинами VIN и A0 Arduino Uno.

Далее соединяем модуль-франкенштейн LCD Keypad Shield с Arduino Uno.

Подключаем питание.

Сборка закончена.

Как этим пользоваться?!

Кнопка RST — аппаратная перезагрузка устройства.
Кнопки UP и DOWN отвечают за переход по ячейкам памяти для хранения/записи ключей.

Основное меню:
Кнопка SELECT — запись iButton ключа, если до нажатия был приложен ключ, то запишется в болванку код ранее считанного ключа, иначе в болванку запишется ключ из текущей (выбранной) ячейки памяти.
Кнопка RIGHT — меню записи ключа в память устройства.
Кнопка LEFT — включение/отключение подсветки дисплея.

Меню записи ключа в память устройства:
Кнопка RIGHT — отмена записи.
Кнопка LEFT — подтверждение записи.
Кнопка SELECT — выбор действия.

Индикация считывателя:
Красный свет — ожидание записи ID в iButton, приложите ключ для записи.
Зелёный свет — ID считан с iButton.

Консольные команды вводятся в мониторе порта Arduino IDE
Команды управления не чувствительны к регистру:

Memtest — тест энергонезависимой памяти устройства, все сохранённые ключи будут стёрты.

KeyForceSave — Запись ключа в память устройства.
Пример команды:
KeyForceSave:2#aabbccddeeff1234
Синтаксис команды:
KeyForceSave — команда
: — разделитель
2 — записать во вторую ячейку памяти
# — разделитель
AABBCCDDEEFF1234 — ключ который будет сохранён во вторую ячейку памяти устройства.


KeySave — Запись «корректного» ключа в память устройства, в отличие от команды KeyForceSave перед записью в память устройства для вводимого ключа будет подсчитана правильная контрольная сумма и family code ключа будет заменён на «01».
Пример команды:
KeySave:3#aabbccddeeff1234
Синтаксис команды:
KeySave — команда
: — разделитель
3 — записать в третью ячейку памяти
# — разделитель
01BBCCDDEEFF12CE — ключ который будет сохранён во вторую ячейку памяти устройства.


Ключи с family code равным «00» перестают считываться дубликатором. Для их восстановления необходимо приложить ключ к считывателю устройства, нажать и отпустить кнопку RST (перезагрузить устройство), не снимая ключ дождаться загрузки основного меню устройства.

Работа ключа будет восстановлена, в него будет запрограммирован ID 01:FF:FF:FF:FF:FF:FF:2F.

Видео без звука и без штатива :)


«Болванки» для записи RW1990 продают тут.

Всем добра!
Планирую купить +135 Добавить в избранное +82 +170
+
avatar
+6
Кто бы подсказал, как с ардуино копировать ключи на 13 мГц…
+
avatar
  • kvolk
  • 04 декабря 2017, 14:00
+1
mySKU.me/blog/aliexpress/23114.html
arthurphdent.livejournal.com/1759.html
На вскидку.
В Гугле с Яндексом искать по «Arduino RFID».
+
avatar
+4
Он не копирует ключи, а только считывает.На вскидку эти ссылки давно изучены, а больше информации и нет :(
+
avatar
  • Aostspb
  • 04 декабря 2017, 14:10
+3
Это Вы хотите mifare побитово скопировать? :)
+
avatar
+3
Я хочу нормально реализованный на ардуино копировальщик домофонных чипов на 13 мГц :).
+
avatar
  • Aostspb
  • 04 декабря 2017, 15:32
0
В широко распространенных домофонах пока используются карты 125MHz.
+
avatar
  • jo_b1ack
  • 04 декабря 2017, 18:24
+1
Которые тоже нельзя копирнуть через ардуины ;)
+
avatar
  • Snoks
  • 04 декабря 2017, 19:20
0
А вот такая штука копирует?
+
avatar
  • jo_b1ack
  • 04 декабря 2017, 19:31
0
Дубликатов есть, но связать их с ардуиной нельзя
+
avatar
  • CuMr
  • 05 декабря 2017, 01:42
0
конечно можно
это первое что попалось.
+
avatar
  • ksiman
  • 04 декабря 2017, 19:13
+3
125MHz.
кГц
+
avatar
  • Zolg
  • 04 декабря 2017, 15:04
+3
А в чем проблема-то, если речь про Mifare Classic (включая Plus в режиме совместимости)?

Атака на Crypto-1 известна. Инструментарий в публичном доступе github.com/nfc-tools/mfoc
Выпуск болванок с перезаписываемым нулевым сектором китайской промышленностью освоен www.google.ru/search?q=UID+Changeable+Mifare

Ломаем ключи, затем копируем по болванкам.

Причем скорее всего для домофонных ключей первый шаг излишен, т.к. с большой долей вероятности для идентификации используется тупо UID.
+
avatar
  • fps
  • 04 декабря 2017, 14:56
+3
Копирует. В комплекте с библиотекой для него идут примеры. Там и чтение, и запись карточки, и смена её ID.
Карточка и брелок, которые идут в комплекте, не позволяют перезаписывать ID. Надо покупать отдельно.
Я брал такие aliexpress.com/item//32788592746.html
+
avatar
  • sir0ta
  • 04 декабря 2017, 16:39
0
Согласен. Сам недавно проверял. И за лот спасибо. Как раз искал еще меток.
+
avatar
  • Diablo
  • 04 декабря 2017, 23:49
0
ebay.com/itm/311877023566:g:FVUAAOSwaEhZIA4e

на бакс дешевле, мало ли кому пригодится :)
+
avatar
  • kborisov
  • 04 декабря 2017, 14:13
0
копировал mifare с помощью такой aliexpress.com/item/1-PN532-NFC-RFID-V3/32670829805.html на ubuntu (через mfoc+mfcuk)
+
avatar
+1
Можно ссылку на инструкцию?
+
avatar
  • Tosha
  • 06 декабря 2017, 14:48
0
Кто-нибудь знает, ключи TKRF (ТехКом) как копировать?

Они, похоже, не Mifare и что за стандарт не понятно.
Ни телефон с NFC, ни считыватель ACR122U не реагируют на них.
+
avatar
  • SEM
  • 07 декабря 2017, 15:12
0
Есть два стандарта беспроводных карточек/брелков, 125КГц и 13.56МГц
Что там в ваших ключах — не знаю, но проверяли вы их только на 13.56МГц. Попробуйте поискать считыватели (домофоны, офисные двери) на 125КГц, большинство из них на чужой ключ своего стандарта пикают (но не открывают).
+
avatar
  • Corvax
  • 04 декабря 2017, 14:09
0
А ссылку на сами ключи подскажете?
+
avatar
  • Aostspb
  • 04 декабря 2017, 14:11
0
RW1990
+
avatar
  • m13ale
  • 04 декабря 2017, 14:30
0
А это именно та контактная таблетка, что в применяется большинстве домофонов (Визит, например)?
+
avatar
  • Aostspb
  • 04 декабря 2017, 15:30
0
По контактной технологии 1-wire работают только i-button (и их аналоги), других я не встречал.
+
avatar
  • m13ale
  • 04 декабря 2017, 15:44
0
Это хорошо. Осталось разобраться, как купить именно 1990.2 и как их окончательно финализировать.
+
avatar
  • kvolk
  • 04 декабря 2017, 14:18
+2
Добавил в конец обзора.
Я брал тут.
+
avatar
  • m13ale
  • 05 декабря 2017, 13:39
+2
Забавно, но в дорогущем Чип-и-Дипе ключи RW1990 с черным держателем продают всего по 25р./шт. Взял на пробу.
+
avatar
  • Bald
  • 04 декабря 2017, 14:10
0
А считыватель заменить просто проводами с контактами нельзя?
+
avatar
  • exe
  • 04 декабря 2017, 14:13
0
можно
+
avatar
  • kvolk
  • 04 декабря 2017, 14:14
+1
Конечно можно, можно взять гнездо от батарейки CR2032.
+
avatar
0
А такие ключи еще где то применяют?
+
avatar
  • kvolk
  • 04 декабря 2017, 14:20
+6
Нет конечно, уже и производство ключей давно остановили, и домофоны на айбаттонах переплавили на рельсы.
+
avatar
  • exe
  • 04 декабря 2017, 14:19
+11
есть еще интересный вариант эмуляция таблеток, запихать все в маленькую коробочку, чтобы не таскать охапку таблеток может сам копировать ключи
проверял на cyfral и dallas, полет нормальный:) метаком-ов у нас увы нет
+
avatar
  • Jeri
  • 04 декабря 2017, 14:38
+7
неплохой эмулятор
на радиокоте выкладывал его законченный вариант с плюшками в виде зарядки и т.д. :)

но он довольно много жрет — порядка 20ма, atmega8 все же устаревший МК и дисплей прожорливый
+
avatar
  • m13ale
  • 04 декабря 2017, 14:33
0
А сырца скетча нет? Такто LCD-шилд большинству там нафиг не нужен — подключил к компу и через консоль копируй…
+
avatar
  • kvolk
  • 04 декабря 2017, 14:49
+2
+
avatar
  • kvolk
  • 05 декабря 2017, 09:57
0
Если Вы предпочитаете исходные коды, скетч лежит там же, недостающие библиотеки берём на просторах интернета.
+
avatar
  • m13ale
  • 05 декабря 2017, 11:10
0
Исходные коды в данном случае предпочтительнее — тут достаточно просто разобраться и исправить код как тебе надо…
+
avatar
  • kvolk
  • 05 декабря 2017, 12:03
0
Кому как. Были случаи когда люди дружили с паяльником, могли подключить ардуину к компу, но были сложности с библиотеками, компиляцией, версиями библиотек. С прошивкой хекс файлом таких «затыков» не бывает, подключил, выбрал файл, выбрал порт, нажал кнопку — прошито.
Пруфы.
+
avatar
  • m13ale
  • 05 декабря 2017, 12:58
0
Ну здесь совсем не тот случай, да и onewire — вроде как стандартная библиотека в ардуино иде. Так что просто открыл скетч, залил одной кнопкой в ардуинку и пользуйся…
+
avatar
  • kvolk
  • 05 декабря 2017, 13:07
0
Это именно тот случай, когда обновление версии ПО повлияло на компиляцию скетча. Учитывайте тот факт, что обзор висит не день и не месяц, через пол года, год, пару лет, когда обновится и ардуино иде, и библиотеки, скетч с большой долей вероятности перестанет компилироваться, уже сталкивался с подобным, поверьте. А с бинарником таких проблем нет — тоже кстати одной кнопкой шьётся.
+
avatar
  • SEM
  • 05 декабря 2017, 14:20
0
Но можно выложить и то, и то… Кто хочет «залить одной кнопкой» — возьмёт бинарник, кто хочет что-то подправить (адаптировать для другого железа) — тот возьмёт исходник (поправит, плюнет и зальёт бинарник)…
+
avatar
+4
я себе такой дубликатор сделал
+
avatar
  • m13ale
  • 04 декабря 2017, 14:42
+1
скетчик плз!
+
avatar
0
я здесь всё брал mySKU.me/blog/aliexpress/42027.html
+
avatar
  • m13ale
  • 04 декабря 2017, 15:08
0
ага, тоже уже нагуглил этом пост… заказал ключики, буду пробовать.
+
avatar
+1
вот я тоже думаю — нафига Ардуино уно, если хватает Про-мини.
+
avatar
  • kvolk
  • 08 декабря 2017, 14:43
0
Я тоже думаю — нафига грузовики покупают если легковушки тоже едут.
+
avatar
  • FreeZLO
  • 04 декабря 2017, 14:48
0
А финализировать ключи конечно же не нужно…
+
avatar
  • kvolk
  • 04 декабря 2017, 14:50
0
RW1990?
+
avatar
  • FreeZLO
  • 04 декабря 2017, 14:54
0
Я конкретно о копировщиках на ардуино. Не умеет.
+
avatar
  • kvolk
  • 04 декабря 2017, 14:55
+1
Без допобвеса никак.
+
avatar
  • FreeZLO
  • 04 декабря 2017, 15:10
0
Полцарства за схему. Иначе в этом копировщике мало смысла.
+
avatar
  • kvolk
  • 04 декабря 2017, 15:14
0
В большинстве случаев обычного копирования без финализации хватает.
+
avatar
  • Ivan_113
  • 13 декабря 2017, 22:11
0
«Хитрые» домофоны их переписывают. Вроде проверки на оринальность
+
avatar
  • m13ale
  • 04 декабря 2017, 15:27
0
Чойта пишут, что окончательно финализировать можно только таблетки 1990.2. А как их купить у кетайцев? В поиске на али такого нет.
+
avatar
0
aliexpress.com/item/10pcs-lot-rewritable-RFID-Touch-Memory-Key-RW1990-iButton-Copy-Card-Sauna-Key/32788142164.html,searchweb201602_2_5130011_10152_10065_10151_10344_10068_10345_10342_10343_10340_10341_10543_5000011_10541_10084_10083_10307_10301_5080011_10539_5690011_10312_10059_10313_10314_10534_100031_10604_10603_10103_10605_10594_10596_5060011_10142_10107,searchweb201603_33,ppcSwitch_5&algo_expid=3bf3dcd9-acde-4276-9600-51cab9eaade9-0&algo_pvid=3bf3dcd9-acde-4276-9600-51cab9eaade9&rmStoreLevelAB=2 ключи здесь брал
+
avatar
  • trembo
  • 04 декабря 2017, 14:57
0
10 штук:
5 таблеток и 5 держателей.
Будьте внимательны!
+
avatar
  • kvolk
  • 04 декабря 2017, 15:00
0
Как бы 10 ключей, и в отзывах по 10 штук.
+
avatar
  • trembo
  • 04 декабря 2017, 15:11
0
Тогда будем посмотреть…
Мой заказ вот этот: ebay.com/itm/222563158467
Выехал 27 ноября…
+
avatar
+1
Зачем такие сложности?
Достаточно одной Ардуины с USB разъемом, одного резистора на 2200Ом, четырех (если консольно) или пяти (если автономно) проводов и паяльника.
+
avatar
  • kvolk
  • 04 декабря 2017, 15:31
0
Какие сложности? О чём речь? Мне кажется всё «проще некуда».
+
avatar
+4
Какие сложности? О чём речь? Мне кажется всё «проще некуда».
Проще некуда — это воткнуть в макетку Ардуину, резистор и провода. Экран здесь лишний, как и 99 ячеек памяти. Или Вы записываете в блокнот что-то вроде:
01 02 03 04 05 06 07 ХХ это подъезд Васи Пупкина, который по ночам таксует, а жена у него молодая
01 08 09 0A 0B 0C 0D ХХ это улица Войтика, д. 39, п. 4
и т. д.
+
avatar
  • kvolk
  • 04 декабря 2017, 16:00
+3
А если отвязаться от домофона, совсем. Вы можете представить что iButton используется не только для открывания дверей подъезда? Или например тупо надо забэкапить ключи, не один, и не два...? Задачи бывают разные. И если отдать человеку который с ардуиной дел не имел резистор и провода, будет толк? Или это устройство — чем проще пользоваться?

Очень интересный подход: я умею — все могут, мне не нужно — никому не нужно.
+
avatar
0
тупо надо забэкапить ключи, не один, и не два
Тут главное запомнить, который ключ для чего. Вот Вы, взглянув на ключ, можете сказать, откуда он?
+
avatar
  • kvolk
  • 04 декабря 2017, 16:05
0
Да, вполне, те кто работают с ключами — могут сказать.
Да к примеру просто штамповать наборы ключей. Быстрее шить без считывания исходного ключа.
+
avatar
0
Да, вполне, те кто работают с ключами — могут сказать.
И угадают? Даже учитывая, что первый байт — 01, а последний — контрольная сумма, остается 12 символов, которые нужно запомнить с привязкой к конкретному месту.
Сколько ключей эти Джонни Мнемоники осилят?
+
avatar
  • kvolk
  • 04 декабря 2017, 16:21
0
То есть обязательно надо 99 запомнить? Или может 10-20 будет достаточно? :)
Зы угадать и запомнить это разные вещи.
+
avatar
0
Не знаю. Если все их обязанности заключаются в запоминании 10-20 групп символов с примечаниями, то те кто работают с ключами неплохо устроились.
+
avatar
  • kvolk
  • 04 декабря 2017, 16:44
0
Поймите простую вещь, тупой пример. Сидит ключник на рынке, продаёт комплекты «универсальных» ключей, которые сам же и штампует. Проще из памяти записать 10 — 20 ключей чем сделать дубликаты. Другой пример. А если болванки закончились, но считать ключ надо сегодня, а дубликат сделать когда болванки появятся.
Вариантов много, но вы почему-то думаете только об адресах, домофонах и листочках с записями.
+
avatar
-2
Сидит ключник на рынке, продаёт комплекты «универсальных» ключей
Вариантов много, но вы почему-то думаете только об адресах, домофонах
Вариант один, и не один я так думаю.
А если болванки закончились, но считать ключ надо сегодня
Если ключник не предусмотрел запас расходников, он — плохой ключник. Ведь если в больнице закончатся бинты, Вас запишут на потом, когда бинты появятся. Это если Вас довезут до больницы, если бензин не закончится. Не принимайте на свой счет., это просто тупой пример.
+
avatar
  • kvolk
  • 04 декабря 2017, 17:21
0
Вы невнимательно читаете. Ключник на рынке это один пример, а бэкап ключа с последующей записью — другой. Причём тут ключник и запас расходников? Вы меня утомили, честное слово.
+
avatar
  • m13ale
  • 04 декабря 2017, 17:42
+2
Сдается мне, для коммерческого применения полно нормального оборудования и софта. Кому тут нужен колхоз на ардуине и одном резисторе? Только тем, кто хочет 1-2 ключа скопировать или с мастер-ключами поиграться…
+
avatar
  • kvolk
  • 04 декабря 2017, 17:44
0
Сдается мне, для коммерческого применения полно нормального оборудования и софта.
Вопрос цены.
+
avatar
0
Спору нету, только по итогу дешевле и надежнее взять готовый комплект (готовое устройство)
+
avatar
  • kvolk
  • 06 декабря 2017, 15:43
0
Спору нету, только по итогу дешевле...
Это личное мнение, можете аргументировать?
Дешевле чем что? Ардуина и шилд? Надёжнее в каком плане?
+
avatar
0
Надежнее в том плане — что вы приобретаете готовое устройство с блоком питания, нужной прошивкой, аккуратно собранное, и которое может работать как от ноутбука так и автономно (батарейка Крона)
Который будет работать не только с ключами формата Dallas, так же форматы Cyfral, Metakom, Em-marin, Техком.

Простота, возможность сразу делать финализацию ключа, без доп. обвязки

Дешевле — если сравнить стоимость готового прибора, и конструктора (прибор на Ардуино и Шилд + доп. обвес) то цена будет не чуть не меньше.

Про начальные знания работы с Ардуино, и умения паять упущу — это уже индивидуально.
+
avatar
  • kvolk
  • 10 декабря 2017, 18:08
0
если сравнить стоимость готового прибора, и конструктора (прибор на Ардуино и Шилд + доп. обвес) то цена будет не чуть не меньше.
Дайте ссылку, покажите пример, вот тут железа на 8 баксов, покажите мне аналог, просто автономное устройство для бэкапа ключей которое будет дешевле. Не надо допобвес, давайте ограничимся ценой и функциональностью устройства из обзора.
Вы пытаетесь сравнить бюджетный «бэкапер» ключей, который будет использоваться в «своей нише» с промышленными дубликаторами, это не совсем верно.
Надежнее в том плане — что вы приобретаете готовое устройство...
Это тоже готовое устройство, корпус — хотите печатайте, хотите нет.
и которое может работать как от ноутбука так и автономно

Так это тоже может «от ноутбука», разве что кроны нет, но может питаться от павербанка, удобнее правда?
Про начальные знания работы с Ардуино
Шейте бинарником — всё по инструкции, даже ардуино ИДЕ устанавливать не надо. Паять надо, но наверное для тех кто не сможет запаять «два провода» этот обзор будет мало интересен.
+
avatar
+2
Какая разница, что давать человеку который с ардуиной дел не имел? Поясняю.
Вы навязываете, помимо Ардуины, покупку экрана с кнопками, и считывателя. Вы даете не скетч, а прошивку, которая не факт, что будет работать на другом контроллере. И да, придется поработать паяльником наугад, ведь
схему рисовать не вижу смысла, всё собирается за 5 минут.
Интересный подход.
+
avatar
  • kvolk
  • 04 декабря 2017, 17:54
+1
Какая разница, что давать человеку который с ардуиной дел не имел?
Согласен.
Опять пример. Нужно в командировке забэкапить ключи, ноутбука нет, ардуиной с резисторами бэкапить будете?
Поясняю.
Вы навязываете, помимо Ардуины, покупку экрана с кнопками, и считывателя.
Я вам ничего не навязываю, вы перегибаете палку.
Вы даете не скетч, а прошивку, которая не факт, что будет работать на другом контроллере.
Я выкладываю прошивку которая 100% будет работать на таком же устройстве.
И да, придется поработать паяльником наугад, ведь
Если вы умеете читать, то наугад паять ничего не придётся.

А специально для Вас, для тех кому это сложно или не нужно, или нужно, но не хватает денег на навязываемые мной экран и считыватель есть обзор, вот там вообще всё очень дёшево и без навязывания.
+
avatar
0
Опять пример. Нужно в командировке забэкапить ключи, ноутбука нет, ардуиной с резисторами бэкапить будете?
Согласен. Человеку в командировке постоянно надо бэкапить ключи, а ноута у него вообще нет, он же не знает, как и зачем он оказался в этом незнакомом городе.
Я вам ничего не навязываю, вы перегибаете палку.
Согласен. Вы навязываете это человеку который с ардуиной дел не имел.
Я выкладываю прошивку которая 100% будет работать на таком же устройстве.
Согласен. Вы защищаете свои авторские права. Но не уподобляйтесь Эпплу. Выложите скетч и все будут довольны.
Если вы умеете читать, то наугад паять ничего не придётся.
Согласен. Вы же писали это не для человека который с ардуиной дел не имел.
А специально для Вас, для тех кому это сложно или не нужно, или нужно, но не хватает денег
Спасибо, очень приятно, что Вы отделяете меня от тех кому это сложно или не нужно, или нужно, но не хватает денег. У меня все есть и все работает.
+
avatar
  • kvolk
  • 04 декабря 2017, 18:24
0
Выложите скетч и все будут довольны.
Так вся проблема в том, что я не выложил исходник?
Ещё раз поясню, основной смысл этого устройства в бэкапе ключей и их тиражировании, если вы не можете проедставить где и как это можно использовать — тогда мне сказать больше нечего, предлагаю на этом закончить.
+
avatar
0
Так вся проблема в том, что я не выложил исходник?
Вовсе нет. Проблема в лишних деталях. Скетч, которым пользуюсь я, может читать, записывать на болванку, записывать в оперативную память и записывать в энергонезависимую память. И все это с одним резистором с тремя красными полосками.
+
avatar
  • kvolk
  • 04 декабря 2017, 18:44
0
Скетч, которым пользуюсь я
Вы молодец! Ваш скетч лучше, я всё понял.
+
avatar
0
Автор — не я.
+
avatar
  • kvolk
  • 04 декабря 2017, 18:54
+1
Автор — не я.
Какая разница, то чем вы пользуетесь бесспорно лучше, давайте на этом закончим.
+
avatar
  • kvolk
  • 05 декабря 2017, 09:58
0
Выложите скетч и все будут довольны.
Специально для Вас :)
Если Вы предпочитаете исходные коды, скетч лежит там же, недостающие библиотеки берём на просторах интернета.
+
avatar
  • moyemail
  • 04 декабря 2017, 15:30
+1
— а есть девайсы, которые не копируют ключи, а сами подбирают код, и то же самое на RFID?
+
avatar
  • kvolk
  • 04 декабря 2017, 15:36
0
Сколько лет понадобится на перебор 48 битного ID ключа iButton с проверкой каждого ключа в «домофоне»?
+
avatar
  • m13ale
  • 04 декабря 2017, 15:41
+1
Ну а почему бы не перебирать те самые 20+ мастер-ключей? Это уже вполне реально…
+
avatar
  • exe
  • 04 декабря 2017, 15:47
+2
у приведенной несколькими постами выше схемы эмулятора, есть такая возможность — перебор заранее прошитых мастер-ключей, но работает далеко не везде, т.к. часто ключи изменены установщиками.
+
avatar
  • moyemail
  • 04 декабря 2017, 16:03
0
— а мастер-ключи где берут?
+
avatar
  • kvolk
  • 04 декабря 2017, 16:10
+8
+
avatar
  • exe
  • 04 декабря 2017, 16:10
0
в паблике некоторое количество есть (гугл знает), полагаю установщики иногда сливают
+
avatar
  • moyemail
  • 04 декабря 2017, 16:53
+1
тут?
+
avatar
  • exe
  • 04 декабря 2017, 17:19
0
угу, их много где выкладывают
+
avatar
  • exe
  • 04 декабря 2017, 15:38
-1
есть вариант только с инженерными универсальными ключами, перебор исключен, а вообще это незаконно
+
avatar
0
А не подскажите, где на просторах китайских магазинов найти RW2007 или аналоги какие есть?
+
avatar
  • Snoks
  • 04 декабря 2017, 18:07
0
Ребят, а где по вменяемой цене взять комплект ключей вездеходов?
Желательно чтоб и без контактный тоже был в комплекте.
+
avatar
  • Kartus
  • 04 декабря 2017, 20:28
+4
а где по вменяемой цене взять комплект ключей вездеходов?
Вроде здесь)))
+
avatar
0
Дом 2 уже отреставрировали? Давно его не видел.
+
avatar
  • Brs
  • 05 декабря 2017, 01:02
0
А вы из какого города?
+
avatar
  • Snoks
  • 05 декабря 2017, 07:45
0
Нижний Новгород
+
avatar
0
Спасибо за наводку. Вот прям в подходящее время добавили обзор. Мне актуально.
+
avatar
  • Varicap
  • 04 декабря 2017, 18:35
0
Хорошо бы Arduino Uno R3 и LCD Keypad Shield заменить на Arduino Pro Mini, LCD1602 (без I2C) и кнопки.
И скетч, соответственно.
+
avatar
  • kvolk
  • 05 декабря 2017, 09:59
+1
Если Вы предпочитаете исходные коды, скетч лежит там же, недостающие библиотеки берём на просторах интернета.
+
avatar
  • Snoks
  • 04 декабря 2017, 18:57
0
Готовые решения у наших китайских друзей никто не покупал?
Типа такого?
Но чтоб работали.
А то нам по работе нужны универсальные ключи. Ранее закупали у местного «ключника», он отдавал по 130 рублей. А сейчас на бесконтактный цена выросла до 500… :-(
+
avatar
  • batal
  • 04 декабря 2017, 19:47
+1
Вот именно такой покупал) Работает
+
avatar
  • armada
  • 04 декабря 2017, 19:07
-1
Есть 1 оригинальный ключ DS1990a
Есть болванки DS1993 +F5
Возможно ли сделать копию оригинального ключа?
Первый байт у оригинала 01. А у клонов… кажется 6.
+
avatar
  • MisHel64
  • 05 декабря 2017, 00:17
0
двухцветный светодиод. При протекании тока в «прямом» направлении — светится красным, в «обратном» — зелёным.
Где наЕбае такие продают? Очень удобная штука…
На рынке у нас есть, но древние, старшенькие, тусклые и 15р/штука.
+
avatar
  • kvolk
  • 05 декабря 2017, 13:39
0
Вот на али нашел aliexpress.com/item/3/32676955611.html
Вот на ибее ebay.com/itm/291991445367

Поиск по ключу «Bi Color Polar led»
+
avatar
0
Всем добра.
Помощи прошу у знатоков…
Собрал по образцу свой дубликатор, но с некоторыми изменениями…
1. Экран LCD 16,2 без кнопок, подключен через i2c адаптер.
2. Добавлены выносные кнопки с ali Ad_key(5 кнопок)
Прибор работает, но есть одна проблема, не могу программно повесить на левую кнопку включение/выключение подсветки Lcd, как это было реализовано на образце…
Помогите разобраться…
+
avatar
  • kvolk
  • 14 марта 2018, 14:50
0
В исходнике всё есть:

#define LCDLedPin 10
int8_t LCDLedState = HIGH;

void setup() {
///...
  digitalWrite(LCDLedPin, LCDLedState);
//...
}

void loop() {
//...
    else if  (StepCode == 0 && AnswerCode == 0) {
      if (LCDLedState == LOW)
        LCDLedState = HIGH;
      else
        LCDLedState = LOW;

      delay(300);
      digitalWrite(LCDLedPin, LCDLedState);

//...

}


Попробуйте так:

#include <LiquidCrystal_I2C.h>        //  Подключаем библиотеку для работы с LCD дисплеем по шине I2C
LiquidCrystal_I2C lcd(0x27,16,2);     //  Объявляем  объект библиотеки, указывая параметры дисплея (адрес I2C = 0x27, количество столбцов = 16, количество строк = 2). Если надпись не появилась, замените адрес 0x27 на 0x3F

void setup() {
  lcd.init();
  lcd.backlight();
}

lcd.clear(); // Чистим дисплей (надпись безвозвратно исчезнет с дисплея)
lcd.noBacklight(); // Отключаем подсветку дисплея
lcd.backlight(); // Включаем подсветку дисплея
lcd.setBacklight(0); // Отключаем подсветку дисплея
lcd.setBacklight(1); // Включаем подсветку дисплея
+
avatar
0
При таком варианте скетча, функционал на 99%
Работает всё, кроме выключения подсветки при нажатии левой кнопки…
Мой скетч
#include <EEPROM.h>
#include <LiquidCrystal_I2C.h>
#include <OneWire.h>
#include <Wire.h>

#define keyPadInput 1 //панель кнопок К845037 указать номер порта
#define pin 11
#define RPin 12
#define GPin 13
OneWire iButton (pin);
byte Addr[8];
byte CalcCRC;

LiquidCrystal_I2C lcd(0x3F,16,2); // set the LCD address to 0x3F for a 16 chars and 2 line display

#define LCDLedPin 10
int8_t LCDLedState = HIGH;

byte KeyDataForWrite[8];
byte ReadIButtonKey[8];
byte RecoveryKeyID[8] = { 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F }; // «Универсальный» ключ. Прошивается последовательность 01:FF:FF:FF:FF:FF:FF:2F
byte EEPROMKeyReadID[8];
byte InputKeyManual[8];

uint8_t ch = 0;
String val = "";
uint8_t CellNumber = 1;
uint8_t StepCode = 0;
uint8_t AnswerCode = 0;
uint8_t EventWrite = 1; // 1- Recovery; 2 — EEPROM to iButton; 3 — iButton to iButton.

void setup() {
Serial.begin(9600);
randomSeed(analogRead(5));
pinMode(RPin, OUTPUT);
pinMode(GPin, OUTPUT);
lcd.init(); // initialize the lcd
lcd.backlight(); // turn backlight on
lcd.begin(16, 2);
Serial.println( F(«iButton Copier RW1990»));
Serial.println();
WriteIButton ();
lcd.setCursor(0, 0);
lcd.print(F(" iButton Copier"));
lcd.setCursor(0, 1);
lcd.print(F(" RW1990 "));
delay (3000);
LCDPrintHomeScreen();
}

//Автоматическое восстановление ключа при перезагрузке устройства.
void WriteIButton() {
//delay(50);
if (EventWrite != 1) {
while (!iButton.search (Addr)) {
iButton.reset_search();
RedLight ();
}
}
iButton.skip(); iButton.reset(); iButton.write(0x33);
if (EventWrite == 1) Serial.println(F («Auto recovery key ID on boot device...»));
iButton.skip();
iButton.reset();
iButton.write(0xD1);
digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(60);
pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10);
Serial.print(«Write iButton ID: „);
iButton.skip();
iButton.reset();
iButton.write(0xD5);
if (EventWrite == 1) memcpy(KeyDataForWrite, RecoveryKeyID, 8);
else if (EventWrite == 2) memcpy(KeyDataForWrite, EEPROMKeyReadID, 8);
else if (EventWrite == 3) memcpy(KeyDataForWrite, ReadIButtonKey, 8);

for (byte x = 0; x < 8; x++) {
writeByte(KeyDataForWrite[x]);
Serial.print(KeyDataForWrite[x], HEX);
if (x < 7) {
Serial.print(“:»);
} /*else {
Serial.print(" ");
}*/
}
Serial.println();
iButton.reset();
iButton.write(0xD1);
digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(10);
pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10);
EventWrite = 2;
RedGreenLightOff ();
}

int writeByte(byte data) {
int data_bit;
for (data_bit = 0; data_bit < 8; data_bit++) {
if (data & 1) {
digitalWrite(pin, LOW); pinMode(pin, OUTPUT);
delayMicroseconds(60);
pinMode(pin, INPUT); digitalWrite(pin, HIGH);
delay(10);
} else {
digitalWrite(pin, LOW); pinMode(pin, OUTPUT);
pinMode(pin, INPUT); digitalWrite(pin, HIGH);
delay(10);
}
data = data >> 1;
}
return 0;
}

void loop() {
int x;
x = analogRead(keyPadInput);

if (x >= 164 && x <= 165) { //RIGHT SW4
if (StepCode == 2) {
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(9, 1);
lcd.print("*");
AnswerCode = 1;
} else {
lcd.clear();
LCDPrintWriteCell();
}
}
else if (x >= 30 && x <= 31) { //UP SW2
EventWrite = 2;
RedGreenLightOff ();
if (StepCode == 2) {
ResetStepAnswer();
}
if (CellNumber < 99) {
CellNumber++;
LCDPrintHomeScreen();
}
}
else if (x >= 86 && x <= 87) { //DOWN SW3
EventWrite = 2;
RedGreenLightOff ();
if (StepCode == 2) {
ResetStepAnswer();
}
if (CellNumber > 1) {
CellNumber--;
LCDPrintHomeScreen();
}
}
else if (x==0) { //LEFT SW1
if (StepCode == 2) {
lcd.setCursor(9, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("*");
AnswerCode = 2;
}
else if (StepCode == 0 && AnswerCode == 0) {
if (LCDLedState == LOW)
LCDLedState = HIGH;
else
LCDLedState = LOW;

delay(300);
digitalWrite(LCDLedPin, LCDLedState);
}
else lcd.clear();
}…

Не пойму, куда прикрутьть эти комманды:
lcd.noBacklight();
lcd.setBacklight(0);
+
avatar
  • kvolk
  • 14 марта 2018, 16:25
0
Не пойму, куда прикрутьть эти комманды
Конечно же в обработчик нажатия кнопки.
lcd.setBacklight(0); // Отключаем подсветку дисплея
lcd.setBacklight(1); // Включаем подсветку дисплея
+
avatar
0
С ардуиной на ВЫ… Пока что)
Готового решения не нашёл…
Методом подбора и проб розличных вариантов ничего не получается… Увы
Был бы признателен, если бы вы поправили кусок этого скетча, касательно кнопок…
повторюсь, работает всё, кроме отключения/включения светодиода подсветки Lcd…
Заранее благодарен…

скетч
#include <EEPROM.h>
#include <LiquidCrystal_I2C.h>
#include <OneWire.h>
#include <Wire.h>

#define keyPadInput 1 //панель кнопок К845037 указать номер порта
#define pin 11
#define RPin 12
#define GPin 13
OneWire iButton (pin);
byte Addr[8];
byte CalcCRC;

LiquidCrystal_I2C lcd(0x3F,16,2); // set the LCD address to 0x3F for a 16 chars and 2 line display

#define LCDLedPin 10
int8_t LCDLedState = HIGH;

byte KeyDataForWrite[8];
byte ReadIButtonKey[8];
byte RecoveryKeyID[8] = { 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F }; // «Универсальный» ключ. Прошивается последовательность 01:FF:FF:FF:FF:FF:FF:2F
byte EEPROMKeyReadID[8];
byte InputKeyManual[8];

uint8_t ch = 0;
String val = "";
uint8_t CellNumber = 1;
uint8_t StepCode = 0;
uint8_t AnswerCode = 0;
uint8_t EventWrite = 1; // 1- Recovery; 2 — EEPROM to iButton; 3 — iButton to iButton.

void setup() {
Serial.begin(9600);
randomSeed(analogRead(5));
pinMode(RPin, OUTPUT);
pinMode(GPin, OUTPUT);
lcd.init(); // initialize the lcd
lcd.backlight(); // Отключаем подсветку дисплея
lcd.begin(16, 2);
Serial.println( F(«iButton Copier RW1990»));
Serial.println();
WriteIButton ();
lcd.setCursor(0, 0);
lcd.print(F(" iButton Copier"));
lcd.setCursor(0, 1);
lcd.print(F(" RW1990 "));
delay (3000);
LCDPrintHomeScreen();
}

//Автоматическое восстановление ключа при перезагрузке устройства.
void WriteIButton() {
//delay(50);
if (EventWrite != 1) {
while (!iButton.search (Addr)) {
iButton.reset_search();
RedLight ();
}
}
iButton.skip(); iButton.reset(); iButton.write(0x33);
if (EventWrite == 1) Serial.println(F («Auto recovery key ID on boot device...»));
iButton.skip();
iButton.reset();
iButton.write(0xD1);
digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(60);
pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10);
Serial.print(«Write iButton ID: „);
iButton.skip();
iButton.reset();
iButton.write(0xD5);
if (EventWrite == 1) memcpy(KeyDataForWrite, RecoveryKeyID, 8);
else if (EventWrite == 2) memcpy(KeyDataForWrite, EEPROMKeyReadID, 8);
else if (EventWrite == 3) memcpy(KeyDataForWrite, ReadIButtonKey, 8);

for (byte x = 0; x < 8; x++) {
writeByte(KeyDataForWrite[x]);
Serial.print(KeyDataForWrite[x], HEX);
if (x < 7) {
Serial.print(“:»);
} /*else {
Serial.print(" ");
}*/
}
Serial.println();
iButton.reset();
iButton.write(0xD1);
digitalWrite(pin, LOW); pinMode(pin, OUTPUT); delayMicroseconds(10);
pinMode(pin, INPUT); digitalWrite(pin, HIGH); delay(10);
EventWrite = 2;
RedGreenLightOff ();
}

int writeByte(byte data) {
int data_bit;
for (data_bit = 0; data_bit < 8; data_bit++) {
if (data & 1) {
digitalWrite(pin, LOW); pinMode(pin, OUTPUT);
delayMicroseconds(60);
pinMode(pin, INPUT); digitalWrite(pin, HIGH);
delay(10);
} else {
digitalWrite(pin, LOW); pinMode(pin, OUTPUT);
pinMode(pin, INPUT); digitalWrite(pin, HIGH);
delay(10);
}
data = data >> 1;
}
return 0;
}…
}
else if (x==0) { //LEFT SW1
if (StepCode == 2) {
lcd.setCursor(9, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("*");
AnswerCode = 2;
}
else if (StepCode == 0 && AnswerCode == 0) {
if (LCDLedState = LOW)
LCDLedState = HIGH;
else
LCDLedState = LOW;

delay(300);
digitalWrite(LCDLedPin, LCDLedState);
}
else lcd.clear();
}
+
avatar
  • kvolk
  • 14 марта 2018, 17:33
0
Попробуйте в воид сетуп вставить включение подсветки ожидание секунды 2-3 и выключение подсветки. Диод подсветки рабочий?
+
avatar
0
Диод 100% рабочий.
Игры с ожиданиями не к чему не привели…
+
avatar
  • dm33
  • 26 марта 2018, 22:35
0
del
+
avatar
  • zazafa
  • 08 мая 2018, 13:24
0
собрал сей девайс, что понравилось, так это легкое восстановление нечитаемого ключа, в отличии от девайса
osboy.ru/blog/microcontrollers/ibutton-dublicator.html час другой потратишь, пока ключ читаемым сделаешь. не понял только он через компьютер через терминал не работает, так?
+
avatar
  • kvolk
  • 08 мая 2018, 20:06
0
Та статья тоже с моего обзора написана. Да, там только через терминал.
+
avatar
  • zazafa
  • 08 мая 2018, 15:25
0
кто захочет собрать, не покупайте плату www.aliexpress.com/item/high-quality-One-set-UNO-R3-CH340G-MEGA328P-for-Arduino-UNO-R3-USB-CABLE-ATMEGA328P-AU/32810623079.html UNO WVACAT там кварцевый резонатор 12MZ и библиотеки очень старые с епром не работают. и скетч этот туда не залить.

такая плата подошла нормальна www.aliexpress.com/item/CH340G-MEGA328P-Mini-USB-UNO-R3-Microcontroller-For-Arduino-Replace-ATmega16U2-Without-Usb-Cable-ATmega328-Uno/32831275525.html
+
avatar
  • vfv
  • 23 октября 2018, 19:41
0
Собрал этот Дубликатор домофонных ключей (iButton) на Arduino Uno.Работает.Однако ключ контактный к домофону Cyfral этот дубликатор почему то не читает. Вы не подскажите почему?
Валерий.
+
avatar
  • kvolk
  • 25 октября 2018, 08:49
0
Некоторые ключи может не читать.
+
avatar
0
Парни, а никто не встречал проект корпуса для принтера 3D. Сбацать-бы ему коробочку, девайс хороший получился.
+
avatar
0
добрый вечер хлопцы, решил повторить проект но по прошивке не идет скейтч не формируется идут ошибки, может у кого рабочий скейтч есть скинте пожайлуста в личку, сильно не ругайте только начинаю осваивать.
+
avatar
  • kvolk
  • 29 марта 2020, 15:17
0
решил повторить проект
Если решили повторить, прошейтесь хексом, результат 100% работоспособность.

не идет скейтч не формируется идут ошибки
Логи хотя бы покажите.

100% какой-то библиотеки не хватает.