Самый простой и бюджетный дубликатор ключей iButton/RW1990 на Esp8266

И где тут на схеме свето-звуковая индикация?

На самом деле для меня оптимально иметь две кнопки и два светодиода.
Первый светодиод загорается, если ключ вообще читается.
Второй - когда код ключа и код в памяти девайса совпадают.
И кнопки - Read & Write.

Алгоритм простой:

  1. Прикладываем копируемый ключ к лузе. Если ключ читается - загорается желтая лампочка.
  2. Нажимаем Read и ждем, пока не зажгется второй светодиод. Это означает что код скопирован в память.
  3. Берем “пустую” заготовку и прикладываем - если первый светодиод горит - заготовка рабочая (а то разные бывают).
  4. Нажимаем Write , если второй светик зажегся - ключ записался.

Пункты 3-4 повторяем по числу копий.

После записи обязательно проверить - просто прикладываем к лузе, должно сразу загоратся оба светика.

PS
ESP8266 тут нафик не нужен и даже вреден, для надежной записи болванок нужен МК с логик-уровнем 5в. Ардуино Нано подходит идеально, потому что ее можно питать через УСБ кабель от любой телефоннной зарядки или повербанка.

  1. Повторяем операцию.
  2. Не понял вопроса. Только перезаписываемую заготовку можно перезаписать.

Ну допустим, я закапаю заготовки от 1000 шт, по работе. В Июне закупал по 16,7 руб с доставкой. Вам 1000 шт надо?

Попробовали мой код именно на этой плате? Там RGB светодиод всё показывает и ещё пищалку можно подключить.

tone(12,25,4000);
На порт 12(GPIO 12 вешаем ещё пищалку). И будет звуковое сопровождение.

Какую операцию? С какого шага по какой?
Вот мне надо сделать десять копий с одной болванки, мне 10 раз прикладывать оригинал к прибору или как?

Если у нас болванка записывается при прикладывании к прибору без нажатия всяких кнопок, как я могу быть уверен, что этот прибор не испортит мне нахрен единственный ключ-образец, записанный на перезаписываемую болванку?

Тогда лучше 2 кнопки. Скажем при нажатии одной происходит считывание. Чтобы записать, нажать 2 кнопки одновременно. Так скать защита от невнимательности. А считанное значение хранить до следующей перезаписи.

Мысль верная, но… неправильная.
Человек не способен нажать две кнопки одновременно с той точностью, которую может отследит МК. Следует читать “нажать 2 кнопки в нужном порядке, после чего отпустить в обратном порядке”.

Как напишешь, так и будет (с). Достаточно в момент клика одной кнопкой, проверять, нажата ли другая, если да - нажаты две кнопки. Это ж логично? :wink:

Спойлер

shButton/examples/PressTwoButton/PressTwoButton.ino at master · VAleSh-Soft/shButton · GitHub

В технаре случай был,препод спросил что будет если нажать одновременно две клавиши на клавиатуре. Ну мы начали гипотезы озвучивать,мол,наверно, они поочерёдно отправятся в ПК. Он говорит:" нет! Нельзя одновременно нажать,всё равно одна из них сработает первой!". Все ржали долго…)
@andriano , к нажатиям кнопок можно применить операцию И ))

Это лишь один из способов реализации того условия, что я описал выше. А вот является ли он самым оптимальным - отдельный вопрос. Сколько раз следует перезаписать болванку, если человек держит кнопку, скажем 2 секунды? Значит, нужно отслеживать не только нажатия, но и отпускания, да еще следить за дребезгом контактов… Так что даже предельно простые формулировки могут оказаться достаточно объемными в реализации.

Как напишешь, так и будет (с). Я всего лишь указал на самую логичную реализацию отслеживания нажатия на две кнопки сразу. А самый глупый способ здесь ловить именно два одновременных клика - МК в любом случае опрашивает кнопки не одновременно, а по очереди

И где физически должна находиться эта операция “И”?
На плате контроллера клавиатуры?
На выходе порта клавиатуры?
В драйвере клавиатуры?
В прикладной программе, работающей с клавиатурой?

Ну чего в самом деле? Это зависит от пристрастий человека. Можно поставить К155ЛА3, можно if(b1&b2), а можно отслеживать статусы кнопок и в простейшем конечном аппарате реализовать любую логику и последовательность нажатий. Практически кодовый замок сделать.

Уже второй раз приводишь это высказывание, пора уже просто призывать капитана Очевидность!
Но у каждого человека свой опыт - вот сколько вопросов в разделе для новичков связано просто с тем, что скетч работает именно так, как написан, но совсем не так, как хотел сделать новичок.
Здесь вопрос “как напишешь” на самом деле разбивается на два уровня: это уровень реализации (т.е. просто грамотно написать то, чего хочешь) и уровень проектирования (т.е. понять, что именно нужно).
Вот мы сейчас скатились к обсуждению уровня реализации, а у автора, как мне кажется, есть проблемы на уровне проектирования. По крайней мере остался без ответа мой вопрос из 25 сообщения: как гарантировать себя от порчи ключа-образца на перезаписываемой болванке?

Ежели не разоряться на ещё одну кнопку, то можно ещё по времени нажатия. Например запись по долгому нажатию или двойному,тройному. Но тут нужен полноценный кнопочный алгоритм .

И это тоже - как написано, так и работает. И проблема новичка не в последнюю очередь в том, что он этого не понимает. Виноваты МК, IDE, язык - ну не он же, в самом то деле. Он же НЕ ТАК хотел ))

Не верю я в надежность тройных и более нажатий. Двойной-то клик на мелкой кнопке еще попробуй кликни, а уж еще и считать при этом клики - баловство. Не говоря уж о том, что этот алгоритм нужно еще вспомнить, когда понадобится ))

Ну хорошо, можно задать мотив " В ле-су ро-ди-лась ё-ло-чка…". Не забудешь. Правда,в ноты хрен попадёшь потом😄

Забудешь, проверено. Все равно, когда понадобится, придется шпаргалку доставать ))

А я шпаргалки или вкладываю в корпус или клею где-то рядом ))