Arduino и считыватель RFID RC522
Описание
RFID – технология бесконтактного чтения и записи меток. Набор GyverKIT (с партии 003) комплектуется ключ-картой, меткой-брелоком, а также RFID считывателем RC522: новая чёрная модель платы для работы с RFID метками на частоте 13.56 MHz.
Помимо комплектных меток, данный модуль читает и некоторые другие бесконтактные карты (банковские, проездные, пропускные и т.д.), их тоже можно использовать в своих проектах.
Подключение
Модуль подключается по шине SPI, а также требует два дополнительных цифровых пина на управление SDA (выполняет роль CS) и RST:
- SDA – любой пин
- SCK – (SCLK) D13
- MOSI – (MOSI) D11
- MISO – (MISO) D12
- GND – GND
- RST – любой пин
- 3.3V – 3V3
Библиотеки
Для работы с этим модулем используется библиотека MFRC522 от miguelbalboa. Библиотека есть в архиве к набору GyverKIT, а свежую версию всегда можно установить/обновить из встроенного менеджера библиотек Arduino по названию MFRC522. Краткая документация находится по ссылке выше, базовые примеры есть в самой библиотеке.
Примеры
Библиотека довольно сложна в использовании, особенно для чтения и записи хранящейся на метке информации. Но все метки имеют свой уникальный ID – идентификационный номер (4-10 байт), у большинства меток он жёстко задан и его нельзя изменить, что и можно использовать для идентификации. Простой пример чтения ID метки как 4-байтного числа:
#include <MFRC522.h> MFRC522 rfid(10, 9); // SDA, RST void setup() { Serial.begin(9600); SPI.begin(); // запуск шины rfid.PCD_Init(); // инициализация модуля } void loop() { // если поднесена метка if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()) { // запишем метку в 4 байта uint32_t ID; for (byte i = 0; i < 4; i++) { ID <<= 8; ID |= rfid.uid.uidByte[i]; } // выведем Serial.println(ID, HEX); delay(500); } }
В таком виде ID метки удобно хранить и сравнивать, но большинство карт имеют ID большего размера (до 10 байт), для работы с полной длиной нужно оперировать массивом rfid.uid.uidByte
. Реальный размер прочитанного ID кстати можно узнать из rfid.uid.size
.
Домашнее задание
- Узнать ID меток из набора
- Попробовать прочитать ID банковских карт, пропусков и т.д.
2 Комментария
Александр, пожалуйста помогите. На работе натыкали три проходных зоны на Rfid ключах (две работают от одного кода, третья от второго кода). Все мои начинания, на основе ваших проектов, упираются в стену. На компиляции, почему то упирается в начальную ошибку, ‘MFRC522 mfrc522(SS_PIN, RST_PIN)’ не могу понять в чем дело (прошерстил весь интернет, библиотеки норм, ардуино и все прошивки сместил на 1.5.2 и тот же год, не смог решить проблему). ИТОГ: нужно скопировать, и прошить перезаписываемую rfid метку, на два инд.зап., планирую вживить рядом чтобы не бегать со связкой ключей, и картой в дополнение. чтобы можно было в рабочей одежде оставить и в своей. Работаю на rc522. Я бы к вам не обратился бы, если, не увидел эту микросхему rfid-rc522 в вашем наборе. Не думаю, что вы даете ссылку на набор и не работающую микросхему в нем. Спасибо заранее за помощь.
помоги Алекс загрузил прошивку не выводит в порт нечего