Схема считывателя RFID с использованием Arduino

Попробуйте наш инструмент устранения неполадок





В этой статье мы собираемся совершить экскурсию по технологии RFID-схем. Мы будем изучать, как работают RFID-метки и считыватели, как взаимодействовать с RFID-модулем (RC522) с Arduino и извлекать некоторую полезную информацию из RFID-меток.

Использование RFID-меток

Я уверен, что каждый из вас хотя бы раз использовал RFID для получения безопасного доступа в офисе, школе, колледже, библиотеке и т. Д.



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

В большинстве наших смарт-карт используется пассивная технология RFID, что означает, что для считывания информации с карты не требуется питание. Считыватель питает чип RFID и одновременно извлекает информацию.



Эти типы тегов могут считывать информацию от миллиметров до нескольких футов, в зависимости от тега и приложения.

Активные метки RFID получают питание от внешнего источника, такие метки передают информацию на расстояние до 100 футов. Энергопотребление аккумулятора оптимизировано для работы в течение нескольких лет.

В этом проекте мы рассмотрим пассивную технологию RFID. Мы используем модуль чтения RC522 вместе с Arduino для извлечения и отображения информации. Модуль RC522 обычно доступен на сайтах электронной коммерции и в местных магазинах электроники.

Иллюстрация модуля чтения / записи RC522:

Модуль чтения / записи RC522

Метки типа карты и брелка:

Бирки типа карты и брелка

Как мы видим, часть печатной платы окружена проводящим каналом квадратной формы на считывателе, что будет генерировать электромагнитное поле для метки на частоте 13,56 МГц.

Генерируемая ЭДС улавливается меткой и преобразуется в напряжение, достаточное для работы метки, метка отправляет необходимую информацию в импульсной форме обратно считывателю. Встроенный микроконтроллер декодирует информацию.

Как это устроено

Схема RFID с использованием Arduino

Схема очень проста и не требует пояснений, для выполнения этого проекта достаточно нескольких перемычек. Мы собираемся запитать Arduino и RFID через USB-порт компьютера. Рабочее напряжение RC522 составляет 3,3 В, не подключайте питание 5 В к модулю, это может привести к повреждению бортовых компонентов.

Прототип схемы RFID Arduino:

Это все аппаратные соединения, теперь давайте перейдем к кодированию.

Перед загрузкой программы загрузите файл библиотеки по следующей ссылке и переместите в папку библиотеки Arduino IDE.

github.com/miguelbalboa/rfid.git

Программный код:

//-------------------------Program developed by R.Girish------------------//
#include
#include
#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN)
MFRC522::MIFARE_Key key
void setup()
{
Serial.begin(9600)
SPI.begin()
rfid.PCD_Init()
}
void loop() {
if ( ! rfid.PICC_IsNewCardPresent())
return
if ( ! rfid.PICC_ReadCardSerial())
return
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak)
if(piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K)
{
Serial.println(F('Your tag is not of type MIFARE Classic, your card/tag can't be read :('))
return
}
String StrID = ''
for (byte i = 0 i <4 i ++)
{
StrID +=
(rfid.uid.uidByte[i]<0x10? '0' : '')+
String(rfid.uid.uidByte[i],HEX)+
(i!=3?':' : '' )
}
StrID.toUpperCase()
Serial.print('Your card's UID:')
Serial.println(StrID)
rfid.PICC_HaltA ()
rfid.PCD_StopCrypto1 ()
}
//-------------------------Program developed by R.Girish------------------//

Ok! Для чего предназначена указанная выше программа?

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

ВЫХОД:

UID вашей карты: FA: 4E: B2 // это пример.

Примечание 1. Каждые два значения разделяются двоеточием, что и делается программой. Реальные значения могут быть разделены не двоеточием, а скорее пробелом.

Примечание 2: только RFID-метки, произведенные NXP, доступны для чтения / записи при предлагаемой настройке, они широко используются в коммерческих целях.

UID используется для распознавания тега, который поставляется вместе с комплектом, может хранить до 1 КБ информации. Существуют и другие карты, которые могут хранить до 4 КБ информации или даже больше.

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




Предыдущая статья: Цепь датчика барометрического давления - Детали работы и взаимодействия Далее: Управление фазой симистора с использованием пропорционального времени ШИМ