Блок с датойБлок с временемБлок с возрастом сайта
Mr.ALB

    Анатолий Беляев (aka Mr.ALB). Персональный сайт

    Да пребудут с вами Силы СВЕТА!

     

    Arduino #40. Программа копировщик ключей RFID (Mifare)
    Частота работы ключей 13,56 МГц

    Программа копировщик ключей RFID (Mifare)

    Понадобилось в очередной раз сделать дубликат ключа от домофона. Прежде чем писать что-то своё, порыскал по Интернету и нашёл интересный проект копировальщика всяких разных ключей. Так как мне нужен только ключ с частотой работы 13,56 МГц MIFARE, а модуль RFID-RC522 для таких ключей покупал давным давно, на посмотреть и даже что-то копировал, используя стандартные примеры библиотеки, то решил написать уже конкретный копировщик. Смотрите далее, что получилось.



    Описание

    Программа работает через последовательный порт. Загрузите Arduino IDE. Подключите Arduino UNO, с установленным шилдом копировщика, к USB компьютера. Откройте окно с последовательным портом. В него будет выводиться вся необходимая информация.

    Вначале выводится заставка программы, пояснения по управлению, определяется подключение модуля RFID-RC522 и его версия. Если всё нормально, то будет короткий сигнал и программа выдаст сообщение о режиме работы: Чтение. Надпись о чтении ключа-оригинала, с которого будет делаться копия. Светодиод режима работы светится зелёным.

    Копировщик RFID-RC522 v1.0
    Pic 1. Копировщик RFID-RC522 v1.0

    После прикладывания ключа, происходит чтение UID и выводится его значения в шестнадцатиричном коде. Обычно это первые 4 байта блока #0 сектора #0. Программа остаётся в режиме чтения, можно читать следующие ключи, смотреть их UID.

    Копировщик RFID-RC522 v1.0
    Pic 2. Копировщик RFID-RC522 v1.0

    Для перехода к записи прочитанного ранее ключа, следует в порт отправить символ 'm'. Программа перейдёт к режиму записи. Светодиод режима работы переключится на красный цвет. На экране будет сообщение о режиме работы и приглашение поднести ключ-болванку, на которую и будет записан ранее считанный UID.

    Копировщик RFID-RC522 v1.0
    Pic 3. Копировщик RFID-RC522 v1.0

    Перед записью оригинального UID на ключ-болванку проверяется её UID, если это отличный от оригинала, то производится запись UID и выводится сообщение об успешной записи. Программа остаётся в режиме записи и можно ещё записать несколько ключей-болванок.

    Копировщик RFID-RC522 v1.0
    Pic 4. Копировщик RFID-RC522 v1.0

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

    Копировщик RFID-RC522 v1.0
    Pic 5. Копировщик RFID-RC522 v1.0

    Для перехода к режиму очистки и восстановления необходимо в порт отправить символ 'm'. Световой сигнал режима очистки будет синего цвета. После поднесения и удержания ключа, происходит очистка его блоков. После успешной очистки выводится сигнал и сообщение. Программа автоматически переходит к чтению ключа. Светодиод меняет цвет на зелёный.

    Копировщик RFID-RC522 v1.0
    Pic 6. Копировщик RFID-RC522 v1.0

    Если есть интерес посмотреть дамп памяти ключа, то в порт отправить символ 'd'. Светодиод режимов погаснет. Поднесите ключ к считывателю и удерживайте его до полного окончания вывода на экран дампа памяти ключа.

    Копировщик RFID-RC522 v1.0
    Pic 7. Копировщик RFID-RC522 v1.0

    По завершению считывания программа переходит в режим чтения и светодиод переключается на зелёный цвет. Обычные ключи имеют 1к памяти и она организована в 16 секторов по 4 блока, в каждом блоке по 16 байт, где обычно первые 4 байта блока #0 сектора #0 являются UID ключа.

    Копировщик RFID-RC522 v1.0
    Pic 8. Копировщик RFID-RC522 v1.0


    Схема копировальщика

    Полноценную схему не привожу, устройство достаточно простое, привожу таблицу соединений.

      ПОДКЛЮЧЕНИЕ
      -----------
    
      Типовое подключение модуля mfrc522-MFRC522
      Typical pin layout used:
      --------------------------------------------------------
                 MFRC522      Arduino       Arduino   Arduino
                 Reader/PCD   Uno/101       Mega      Nano v3
      Signal      Pin          Pin           Pin       Pin
      --------------------------------------------------------
      SPI SS      SDA(SS)      10            53        D10
      SPI MOSI    MOSI         11 / ICSP-4   51        D11
      SPI MISO    MISO         12 / ICSP-1   50        D12
      SPI SCK     SCK          13 / ICSP-3   52        D13
      RST         RST          9
    
    
      RGB-Led   Arduino Uno
      R       - 2
      G       - 4
      B       - 5
      ComA -[2,4 kOHm]- 5V
    
      Beeper    Arduino Uno
      1 -[200]- 6
      2     -   GND
      
    

    Скетч

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


    Реализация

    Это устройство используется довольно редко, по необходимости, поэтому полноценную конструкцию делать, на мой взгляд, не имеет смысла. Решил сделать небольшой шилд. Его основа – монтажная плата размерами 40*60 мм. На этой плате установлены: бипер (пассивный), RGB-светодиод, панелька для подключения модуля RFID-RC522, опорная стойка под модулем RFID-RC522.

    Шилд вставляется в панельки платы Arduino UNO v3.

    Ниже фото устройства


    Копировщик RFID-RC522 v1.0
    Pic 10. Копировщик RFID-RC522 v1.0

    Копировщик RFID-RC522 v1.0
    Pic 11. Копировщик RFID-RC522 v1.0

    Копировщик RFID-RC522 v1.0
    Pic 12. Копировщик RFID-RC522 v1.0

    Копировщик RFID-RC522 v1.0
    Pic 13. Копировщик RFID-RC522 v1.0

    Копировщик RFID-RC522 v1.0
    Pic 14. Копировщик RFID-RC522 v1.0

    Копировщик RFID-RC522 v1.0
    Pic 15. Копировщик RFID-RC522 v1.0

    Включен режим чтения. Светодиод светится зелёным.

    Копировщик RFID-RC522 v1.0
    Pic 16. Копировщик RFID-RC522 v1.0

    Копировщик RFID-RC522 v1.0
    Pic 17. Копировщик RFID-RC522 v1.0

    Включен режим записи. Светодиод светится красным.

    Копировщик RFID-RC522 v1.0
    Pic 18. Копировщик RFID-RC522 v1.0

    Включен режим очистки и восстановления. Светодиод светится синим.

    Копировщик RFID-RC522 v1.0
    Pic 19. Копировщик RFID-RC522 v1.0

    Ракурс при котором видно, что модуль RFID-RC522 приподнят над платой шилда, чтобы была устойчивая работа. Если модуль прижать к плате шилда, то работа модуля становится неустойчивой и выдает код 0x80 при его включении.

    Копировщик RFID-RC522 v1.0
    Pic 20. Копировщик RFID-RC522 v1.0

    Возможно что-то ещё будет меняться, тогда тут дополню, а пока и так всё работает.

    2025-04-14


    Приложение

    Используемые библиотеки и программы:



    Анатолий Беляев

    . Mr.ALB
    Предыдущая страница Страница 41 Далее