Переехал жить в другой дом и с удивлением обнаружил, что домофон в подъезде имеет ключи образца iButton (DS1990). В доме, где жил до этого, домофон уже давно открывался беспроводными RFID-метками, что дало мне возможность ознакомиться с целым пластом информации и даже приобрести не дорогой китайский копировщик для быстрого решения вопроса с ключами (посчитал, что самому собирать - дороже выйдет). Но оказалось, что в других домах, и даже в разных его подъездах, могут стоять домофоны не только разных систем, но и разных домофонных компаний! Это очень удивительно, хотя вполне логично.
В общем, для меня это конечно шаг в прошлое, но нужно было решать вопрос с доп.ключами для родственников. Официально ключ стоит 100 или 150 рублей, так еще за ним надо ехать в головной офис (или доставят за отдельную плату). Разумеется, что такая ситуация совершенно не может устраивать жителя пост-советского пространства и он приступил к самостоятельному решению задачи.
Итак, заказал записываемые болванти тут (можно тут, или даже тут), встал вопрос: как их быстро и без особых заморочек запрограммировать? Не хотелось тратить время на поиски корпуса, травление платы, тратить время на сборку и прочее. И всё потому, что требовалось мне всего лишь изготовить несколько ключей-копий для своих родственников и пару ключей на запас - то есть запрограммировать несколько ключей и забыть об этом (возможно на долго).
На помощь пришла ардуино и вот эта ссылка. Использовал я правда не ардуино-нано, а ардуино-uno плату, но это не имеет никакого значения - светодиод на ней так же на 13м порту. По ссылке указана схема подключения как кнопки, так и самого iButton, но я внёс небольшие изменения:
Что я сделал? В оригинальной схеме по ссылке, кнопка подаёт на цифровой порт D6 положительный потенциал. В моей схеме эта кнопка замыкает порт D6 на массу. Резистор R1 можно не ставить, если провода до кнопки короткие (используется внутренний резистор подтяжки).
Что-бы эти изменения работали, потребовалось не много изменить скетч. Так же я обнаружил в нём ошибку, что если сначала прочитать ключ-источник и затем подать команду "w" с терминала (я использовал встроенный ардуиновский "Монитор порта"), то при подключении ключа-приёмника в него прописывался его же код. А если вместо "w" кратковременно нажать кнопку, то записывался код ключа-источника (как и положено).
Так же мне не понравился вывод итоговой информации, где не удобно было сравнивать: попытка записи какого именно кода была произведена, какой код был в ключе-приёмнике изначально и какой получился после записи - всего этого не было в исходном скетче. Сделал на скорую руку - вроде работает.
Еще мне совсем не понравился вывод считанного кода ключа в оригинальном скетче. Например, я привык, что HEX-вывод для 8 битных чисел всегда состоял из двух знакомест - например, FF для десятичного числа 255 или 0A для десятичного 10. Ну правда, код в первой строчке читается тяжелей (или не привычней?), чем код во второй строчке. Надеюсь, я не один в своих заключениях. В общем, привёл вывод к более привычному виду.
так было: 1:3D:1C:A7:E:0:0:EA так стало: 01:3D:1C:A7:0E:00:00:EA
Как сделать в арудине так, что бы выводимый байт всегда выглядел из двух знакомест, на ту же скорую руку я не нашёл. Потому использовал быстрые подручные варианты "в лоб".
Вроде всё. Запрограммировал все 10 ключей. Спустился, проверил - работают все! И вот решил написать сообщение в форум, пока не забыл ничего. Потребуется еще что-то запрограммировать - будет шпаргалка куда чего подключать и какой код использовать. А может и еще кому-то пригодится! Проявлять перфекционизм, например, делать из этого целый проект, и в конце концов через 5 лет получить из него центр по копированию всего на свете, цели не стояло. Ибо это задача одного вечера - прописать необходимые ключи и снова забыть об этом на долгое время.
Кратко как работать: Для обычного чтения ключа - просто подключить ключ и наблюдать в терминале (ваш сом-порт, скорость 115200) код ключа. Для копирования - прикладываем ключ-источник и считываем его код. Затем коротко нажимаем кнопку (зажигается светодиод), или вводим в терминале команду "w" (ничего не зажигается), надёжно(!!!) прикладываем ключ-приёмник до момента, пока не произойдёт вывод информации о результате (3-5 сек). Запись происходит сразу же после прикладывания, так что ничего дополнительно нажимать не надо!!!
Если в ключ был прошит чужой код семейства (отличный от 01h), то для восстановления этого ключа нужно: 1. Выключить ардуину, включить 2. Приложить такой ключ к контактам, нажать и удерживать кнопку в течение 6 секунд. 3. В ключ должен прописаться так называемый "универсальный код". В чём его универсальность я так и не понял (мой домофон он не открыл), но факт в том, что код семейства у ключа снова должен вернуться в 01h, после чего в него уже можно будет записать любой другой код. Не забывайте про CRC, но об этом в оригинальной статье написано изрядно. В общем-то можно заставить скетч самостоятельно высчитывать crc ключа, код которого мы хотим принудительно записать в качестве "универсального", но на данный момент этого не требовалось и я этого делать не стал. Так-же не было цели сделать код компактным, быстродействующим, оптимизированным и прочее. Нужно было прописать новые ключи в кратчайший срок.
Вложения:
Комментарий к файлу: iButton connector со встроенным светодиодом. На цвета проводов не обращайте внимание - не совпадают! EN_KB_Diagram_1_Wire_I_Button_Reader.png [ 9.21 КБ | Просмотров: 7757 ]
Комментарий к файлу: Плата UNO. Кнопка не подключена. Цифровой вывод D13 подключен к светодиоду, который находится в iButton connector !!!!dOnMj.jpg [ 132.52 КБ | Просмотров: 7757 ]
Комментарий к файлу: Изменённый скетч sketch_mar28a.zip [1.53 КБ]
Скачиваний: 670
_________________ Поблагодарить автора: YANDEX 410011774412275 Сбербанк - по номеру мобильного (Алексей Викторович Ш.) Контакты: whatsapp, telegramm, Мобильный - ссылка на свойства профиля Skype: oka275 (в англ.раскладке) Вконтакте Одноквассники Instagram
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения