Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
В этом руководстве я расскажу об основных принципах работы модуля RFID вместе с его тегами и микросхемами. Я также приведу краткий пример проекта, который я сделал с использованием этого модуля RFID со светодиодом RGB. Как обычно с моими инструкциями, я дам краткий обзор в рамках первых нескольких шагов и оставлю исчерпывающее, подробное объяснение на последнем шаге для тех, кто заинтересован.
Запасы:
RFID-модуль RC522 + идентификационная бирка и карта -
RGB LED + три резистора 220 Ом
Шаг 1. Аппаратные подключения
В этом проекте я использовал Arduino Mega, но вы можете использовать любой микроконтроллер, который вам нужен, поскольку это проект с относительно низким уровнем ресурсов, единственное, что будет отличаться, - это разъемы контактов для SCK, SDA, MOSI, MISO и RST, так как они разные на каждой плате. Если вы не используете Mega, обратитесь к началу этого скрипта, который мы вскоре будем использовать:
RFID:
ПДД (белый) - 53
SCK (оранжевый) - 52
MOSI (желтый) - 51
MISO (зеленый) - 50
RST (синий) - 5
3,3–3,3 В
GND - GND
(Примечание: хотя считывателю строго требуется 3,3 В, контакты допускают 5 В, что позволяет нам использовать этот модуль с Arduinos и другими микроконтроллерами DIO на 5 В)
RGB светодиод:
Red Cathode (фиолетовый) - 8
GND - GND
Зеленый катод (зеленый) - 9
Blue Cathode (синий) - 10
Шаг 2: Программное обеспечение
Теперь о программном обеспечении.
Во-первых, нам нужно установить библиотеку MFRC522, чтобы иметь возможность получать, записывать и обрабатывать данные RFID. Ссылка на github: https://github.com/miguelbalboa/rfid, но вы также можете установить его через диспетчер библиотек в Arduino IDE или на PlatformIO. Прежде чем мы сможем создать нашу собственную программу для работы с данными RFID и их обработки, нам сначала нужно получить фактические UID для нашей карты и тега. Для этого нам нужно загрузить этот скетч:
(IDE Arduino: примеры> MFRC522> DumpInfo)
(PlatformIO: PIO Home> библиотеки> установлено> MFRC522> примеры> DumpInfo)
Этот набросок фактически извлекает всю информацию, имеющуюся на карте, включая UID в шестнадцатеричной форме. Например, UID моей карты - 0x72 0x7D 0xF5 0x1D (см. Рисунок). Остальная часть распечатанной структуры данных - это информация, присутствующая на карте, которую мы можем читать или записывать. В последнем разделе я расскажу подробнее.
Шаг 3. Программное обеспечение (2)
Как обычно с моими инструкциями, я объясню программное обеспечение в построчных комментариях, чтобы можно было объяснить каждую часть кода в связи с ее функцией в остальной части скрипта, но по сути он определяет, какая карта read и либо разрешает, либо запрещает доступ. Он также показывает секретное сообщение, если правильная карта отсканирована дважды.
github.com/belsh/RFID_MEGA/blob/master/mfr….
Шаг 4: RFID; Объяснил
В считывателе есть радиочастотный модуль и антенна, которая генерирует электромагнитное поле. Карта, с другой стороны, содержит чип, который может хранить информацию и позволять нам изменять ее, записывая в один из ее многочисленных блоков, о чем я расскажу более подробно в следующем разделе, поскольку он подпадает под структуру данных RFID.
Принцип работы RFID-связи довольно прост. Антенна считывающего устройства (в нашем случае антенна на RC522 представляет собой встроенную катушечную конструкцию на лицевой стороне), которая будет излучать радиоволны, которые, в свою очередь, будут возбуждать катушку в карте / метке (в непосредственной близости), и это преобразованная электроэнергия будет использоваться транспондером (устройством, которое принимает и излучает радиочастотные сигналы) внутри карты, чтобы отправить обратно информацию, хранящуюся в ней, в виде большего количества радиоволн. Это известно как обратное рассеяние. В следующем разделе я расскажу о конкретной структуре данных, используемой картой / тегом для хранения информации, которую мы можем читать или записывать.
Шаг 5: RFID; Разъяснил (2)
Если вы посмотрите на верхнюю часть вывода нашего сценария, загруженного ранее, вы заметите, что тип карты - PICC 1 КБ, что означает, что у нее 1 КБ памяти. Эта память выделена в структуру данных, состоящую из 16 секторов, которые несут 4 блока, каждый из которых несут 16 байтов данных (16 x 4 x 16 = 1024 = 1 КБ). Последний блок в каждом секторе (AKA Sector Trailer) будет зарезервирован для предоставления доступа на чтение / запись к остальной части сектора, что означает, что у нас есть только первые 3 блока для работы с точки зрения хранения и чтения данных.
(Примечание: первый блок сектора 0 известен как блок производителя и содержит важную информацию, такую как данные производителя; изменение этого блока может полностью заблокировать вашу карту, поэтому будьте осторожны при попытке записать на него данные)
Удачной работы.