Подключение RFID-модуля RC522 к Arduino
RFID-модули довольно давно начали активно применяться в системах «умных» домов и устройств автоматизации, а также управления доступом (СКУД), розничной торговле, архивах (системах контроля), логистике, для идентификации людей, проверки подлинности товаров и т.д. Для работы они не требуют прямой видимости, могут быть задействованы в агрессивных средах, не поддаются подделыванию, кроме того, имеют длительный срок эксплуатации. Именно поэтому они присутствуют во многих актуальных проектах (RFID-брелки для домофонов и открытия дверей, бесконтактные карты и др).
Рассмотрим технические параметры считывателя RC522:
- питание: 3.3 V;
- потребляемый ток: 13-26 mA;
- рабочая частота: 13.56 MHz;
- дальность считывания: до 60 мм (бывают и до 25);
- рабочая температура: от -20С до 80 С;
- тип подключения: SPI;
- скорость: 10 МБит/с (max);
- габариты: 40 х 60мм;
Для реализации схемы проекта используем: контроллер Arduino Uno, RFID модуль, макетную плату, RFID-метки (диапазон 13,56 МГц), соединительные провода:
Для проверки работоспособности и программирования нам понадобится библиотека MFRC522. Ее можно скачать у нас:
https://github.com/miguelbalboa/rfid
Не забываем добавить софт в папку libraries на диске C.
Заливаем скетч для считывания типа метки (прописываем без изменений):
// Скетч к обзору модуля RFID RC522
// Вывод UID и типа метки
// 3d-diy.ru
// Подключение библиотек
#include <SPI.h>
#include <MFRC522.h>
// контакты
const int reset 9
const int ss 10
// Создание экземпляра объекта MFRC522
MFRC522 rider(reset, ss);
void setup() {
// запуск Serial
Serial.begin(9600);
// запуск SPI
SPI.begin();
// инициализация MFRC522
rider.PCD_Init();
}
void loop() {
// Ожидание
if ( ! rider.PICC_IsNewCardPresent())
return;
// чтение
if ( ! rider.PICC_ReadCardSerial())
return;
// вывод данных
Serial.print("UID=");
view_data(rider.uid.uidByte,rider.uid.size);
Serial.println();
Serial.print("type=");
byte piccType = rider.PICC_GetType(rider.uid.sak);
Serial.print(rider.PICC_GetTypeName(piccType));
Serial.println();
delay(1000);
}
// преобразование в HEX
void view_data (byte *buf, byte size) {
for (byte j = 0; j < size; j++) {
Serial.print(buf [j]);
Serial.print(buf [j], HEX);
}
}
Проверяем вывод данных, открыв монитор последовательного порта. Готово!Для справки: Если у вас возникли проблемы с чтением метки, рекомендуем проверить корректность подключения ридера (быть может, он не поддерживает вашу модель метки).
Изучайте Arduino и собирайте интересные проекты! Удачи!
Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...
RDM6300 - бесконтактный модуль для считывания данных RFID карт, брелков, различных электронных браслетов, отпирающих электромагнитных ∕ электромеханических и...
В этой статье мы рассмотрим подключение ADS1115 к Ардуино. Речь идет о 16-битном аналого-цифровом преобразователе, оснащенном 4 входами непосредственно для...
В новом информационном обзоре рассматриваем GSM модуль SIM800L к Arduino. Почему выбрано именно это устройство? Во-первых, оно достаточно известно и популярно...
В этой статье обсуждаем подключение датчика температуры DS18B20 к Arduino. О подобных устройствах мы говорили мало, но это не означает, что их редко...