Ока в Новосибирске http://www.oka-nsk.ru/forum/ |
|
RW1990 и дубликатор "на коленке" под ардуино http://www.oka-nsk.ru/forum/viewtopic.php?f=21&t=1879 |
Страница 1 из 1 |
Автор: | oka275 [ 29 мар 2017, 23:30 ] | ||||
Заголовок сообщения: | RW1990 и дубликатор "на коленке" под ардуино | ||||
Переехал жить в другой дом и с удивлением обнаружил, что домофон в подъезде имеет ключи образца 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 ключа, код которого мы хотим принудительно записать в качестве "универсального", но на данный момент этого не требовалось и я этого делать не стал. Так-же не было цели сделать код компактным, быстродействующим, оптимизированным и прочее. Нужно было прописать новые ключи в кратчайший срок.
|
Страница 1 из 1 | Часовой пояс: UTC + 7 часов |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |