RFID модуль RC522 чтение запись

Arduino rfid excel. сбор данных

RFID модуль RC522 чтение запись

В этой статье я хочу рассказать как можно занести в таблицу Excel данные через com последовательный порт. А данными у нас будет время и код RFID карты. Считыватель – RFID-RC522. Все это работает на Arduino Uno.Все подключаем по следующей схеме.

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

Для работы с данным считывателем нам необходимо установиться библиотеку rfid-master.

Код был разработан благодаря статье.

Код

#include #include<p>

#define RST_PIN         9#define SS_PIN          10

int row_excel = 0; // количество строк

MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup() {   pinMode(5, OUTPUT);   Serial.begin(9600);   SPI.begin();   Serial.println(“CLEARDATA”);                           // очистка листа excel   Serial.println(“LABEL,Time,Code”);                     // заголовки столбцов   mfrc522.PCD_Init();

void loop() {

  row_excel ; // номер строки 1

  MFRC522::MIFARE_Key key;
for (byte i = 0; i < 6; i ) key.keyByte[i] = 0xFF;

Rfid reader подключение к arduino

Опубликовано 09.10.2021 19:31:00

RFID (англ.

Radio Frequency IDentification, радиочастотная идентификация) — способ автоматической идентификации объектов, в котором посредством радиосигнала считываются или записываются данные, хранящиеся в так называемых транспондерах, или RFID-метках. Любая RFID-система состоит из считывающего устройства (считыватель, ридер или интеррогатор) и транспондера (он же RFID-метка, иногда также применяется термин RFID-тег).

В данной статье просто считаем адрес поднесенной карты и выведем его в порт

Компоненты для повторения (купить в Китае):

Arduino UNO, либо Arduino Nano, либо Arduino Mega

RFID RC-522

Соединительные провода (перемычки)

Rfid-сканер

RFID модуль RC522 чтение записьСчитыватель RFID RC522 13.56MHz карта брелок Комплект содержит минимум деталей, позволяющий создать основу небольшой системы радиочастотной идентификации. В комплект вошли: пластиковая карточка и  брелок, содержащие RFID радиометки, модуль RFID RC522 считывания-записи радиометки и штыревые контакты для монтажа в плате модуля.

Считыватель RFID RC522 – периферийное устройство более сложного прибора. Радиоидентификация RFID (Radio Frequency IDentification) происходит при обмене данными по протоколу Mifare 1K. Использовать термин Mifare может только компания NXP Semiconductors, а также компании, имеющие лицензию от NXP на производство чипов (сейчас компания Infineon).

Эта технология позволяет автоматически опознавать объекты, содержащие RFID метки – так называемые транспондеры. Из меток данные могут не только читаться, но и записываться.  Mifare – торговая марка, объединяющая несколько типов микросхем пластиковых карт, микросхемы считывания и записи стационарных приборов и различные продукты на их основе.

Продукты Mifare соответствуют стандарту ISO 14443 Type A  пластиковых карт. Перевод стандарта на русский язык ГОСТ Р ИСО/МЭК 14443. Обмен данными по радио происходит через рамочные антенны, находящиеся в карточке и в модуле. Сигнал модуля служит источником энергии для метки. Считыватель RFID RC522 срабатывает при поднесении метки. Основа модуля – микросхема MFRC522.

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

RFID системы используются для оплаты общественного транспорта в Москве, Санкт-Петербурге, Казани, Минске, Баку и в других городах. Вошли в употребление бесконтактные проездные билеты метро, представляющие собой карточку с RFID меткой.

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

Характеристики считывателя RFID RC522

  Питание             Напряжение 3,3 B             Ток потребления в режимах                         дежурный 80 мкA                         ожидания 12 мA                         обычный не более 26 мA             наибольший 30 мА Частота HF 13,56 МГц Частотная полоса 13,55–13,57 МГц Расстояние считывания 0–25 мм Сопровождаемые карты             классы S50, S70, Ultralight, Pro, DESFire             типы Mifare S50, Mifare S70, Mifare UltraLight, Mifare Pro, Mifare DESfire Скорость передачи информации 106, 212, 424, 848 кбит/с Стандарт протокола NFC Reader ISO 14443 A Mifare classic protocol Шифрование Security Features Mifare classic™ Размеры 40 x 60 мм Температура             рабочая –20…80 С°             хранения –40…85 С° Относительная влажность 5–95 %

Контакты и сигналы RFID RC522

SDA (SS, CS, NSS) выбор ведомого, вход SPI SCK тактовый сигнал SPI, вход MOSI передача от мастера к помощнику, вход SPI MISO передача от помощника к мастеру, выход SPI IRQ прерывание, выход GND общий RST сброс, вход 3.3 V питание   Считыватель поддерживает интерфейсы SPI, UART и I2C через которые происходит обмен данными с другими приборами.

Соединение

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

Сигнал сброса, поступающий на контакт RST считывателя это не сброс Arduino или Raspberry Pi. Это совершенно другой сигнал. Он должен поступать от цифрового выхода МК и формируется программно. При подаче логического 0 происходит перезагрузка считывателя.

RFID rc522Arduino MegaArduino Uno и Nano v3Arduino Leonardo и MicroArduino Pro MicroCraftDuinoRaspberry Pi B
MISO5012ICSP-1141221
MOSI5111ICSP-4161119
SCK5213ICSP-3151323
SDA531024

Контакт главного модуля для подключения к контакту SDA указывается как SS_PIN в программе. Контакт главного модуля для подключения к контакту RST указывается как RST_PIN в программе. Это выполняется с помощью команд:   #define SS_PIN номер контакта   и   #define RST_PIN номер контакта   Все контакты модуля кроме IRQ обязательно подключаются. Сигнал от контакта IRQ обрабатывается программно.

Запись с помощью считывателя RFID RC522

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

Пластиковая карта

В комплект входит белая пластиковая карта. Mifare 1K на которую можно нанести цветное изображение. Внутри нее находятся антенна и микросхема Mifare S50, содержащая память и радиочасть. Размер памяти 1 килобайт, тип EEPROM. Она разделена на 16 секторов, состоящих из 4 разделов.

В каждом разделе три информационных части и одна для ключей. Внутри одной части есть 16 байт памяти. Срок хранения данных 10 лет, количество циклов перезаписи 100000. Уникальность карточки Mifare обеспечивается присвоением изготовителем номера. Он используется в качестве идентификационного кода.

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

Характеристики карты

  Тип Mifare Standard 1k (тонкая) Время транзакции 0,164 с Температура             рабочая –30…75 С°             хранения –40…85 С° Размеры: 86 х 54 х 0,8 мм  

Определение номера карты

Для записи и чтения с карты необходимо знать ее уникальный номер, необходимый для работы системы радиоидентификации. Определить номер можно использую программу Arduino. Соедините считыватель RFID RC522 и Arduino UNO. Воспользуйтесь готовойбиблиотекой, установив ее в Arduino IDE с помощью копирования в соответствующую папку.

Запишите программу.   #include  #include “RFID.h”   #define SS_PIN 10 #define RST_PIN 9   RFID rfid(SS_PIN, RST_PIN);   // Setup variables:  int serNum0;  int serNum1;  int serNum2;  int serNum3;  int serNum4;   void setup() {  Serial.begin(9600);  SPI.begin();  Serial.println(“12″);  rfid.init();   }   void loop() {    if (rfid.isCard()) {  if (rfid.

readCardSerial()) {  if (rfid.serNum[0] != serNum0  && rfid.serNum[1] != serNum1  && rfid.serNum[2] != serNum2  && rfid.serNum[3] != serNum3  && rfid.serNum[4] != serNum4  ) {  /* With a new cardnumber, show it. */  Serial.println(” “);  Serial.

println(“Card found”);  serNum0 = rfid.serNum[0];  serNum1 = rfid.serNum[1];  serNum2 = rfid.serNum[2];  serNum3 = rfid.serNum[3];  serNum4 = rfid.serNum[4];    //Serial.println(” “);  Serial.println(“Cardnumber:”);  Serial.print(“Dec: “);  Serial.print(rfid.serNum[0],DEC);  Serial.print(“, “);  Serial.print(rfid.serNum[1],DEC);  Serial.print(“, “);  Serial.print(rfid.serNum[2],DEC);  Serial.print(“, “);  Serial.print(rfid.serNum[3],DEC);  Serial.print(“, “);  Serial.print(rfid.serNum[4],DEC);  Serial.println(” “);    Serial.print(“Hex: “);  Serial.print(rfid.serNum[0],HEX);  Serial.print(“, “);  Serial.print(rfid.serNum[1],HEX);  Serial.print(“, “);  Serial.print(rfid.serNum[2],HEX);  Serial.print(“, “);  Serial.print(rfid.serNum[3],HEX);  Serial.print(“, “);  Serial.print(rfid.serNum[4],HEX);  Serial.println(” “);  } else {  /* If we have the same ID, just write a dot. */  Serial.print(“.”);  }  }  }    rfid.halt(); }

Программа выводит ряд чисел: 44, 133, 240, 36, 125. Пишем их в обратном порядке. Убираем первое число, (контрольная сумма, оно только что было последним) и оставшиеся числа переводим в шестнадцатеричный вид. Пишем в том же порядке но без пробелов. Теперь это большое число переводим в десятичный вид и получаем номер карты.

Библиотека mfrc522

Установим через менеджер библиотек вариант MFRC522 (домашняя страница).

MFRC522

В состав библиотеки входят несколько примеров, а также компонент для Fritzing. Для первого знакомства запустите скетч DumpInfo. В комментариях указаны варианты подключения для разных плат. Стандартный вариант для Arduino Uno/Nano.


-------------------------------------
            MFRC522      Arduino    
            Reader/PCD   Uno/101/Nano    
Signal      Pin          Pin        
-------------------------------------
RST/Reset   RST          9          
SPI SS      SDA(SS)      10         
SPI MOSI    MOSI         11
SPI MISO    MISO         12
SPI SCK     SCK          13

При поднесении карточки в мониторе порта увидите большую таблицу данных. Дождитесь полной загрузки данных и обратите внимание на данные в блоке 0 – там можно увидеть идентификатор.

RFID

Но у вас нет необходимости вручную считывать информацию из массива данных, идентификатор можно получить через вызов функции. В начале есть отдельная строка Card UID: 77 E7 BC 3A.

Рассмотрим упрощённый пример. Суть в следующем. Инициализируем объект класса MFRC522 и проверяем различные условия. Если к ридеру не поднесли карточку, то выходим из функции loop(), если прочитать карточку не можем, то также выходим из функции. Если оба условия всё же выполнились (есть карта и данные с неё), то выполняем уже нужный код.


#include <SPI.h>
#include <MFRC522.h>

// контакты
#define SS_PIN 10
#define RST_PIN 9

// Создание экземпляра объекта MFRC522
MFRC522 mfrc522(SS_PIN, RST_PIN);  // Создание экземпляра MFRC522

void setup() {
  Serial.begin(9600);
  SPI.begin();

  // инициализация MFRC522
  mfrc522.PCD_Init();
  // выводим номер версии прошивки ридера
  mfrc522.PCD_DumpVersionToSerial();
}

void loop() {
  // Ожидание
  if ( ! mfrc522.PICC_IsNewCardPresent())
    return;

  // чтение
  if ( !mfrc522.PICC_ReadCardSerial())
    return;

  // вывод данных
  Serial.print("UID = ");
  view_data(mfrc522.uid.uidByte, mfrc522.uid.size);
  Serial.println();
  Serial.print("type = ");
  byte piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);
  Serial.print(mfrc522.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);
  }
}

Подносим карточку и брелок из комплекта (MIFARE 1 KB), а также карточки московского транспорта (MIFARE Ultralight or Ultralight C). Идентификатор карточки выводится в десятичном формате.

MFRC522

Как подключить rfid считыватель rc522 к arduino

Вам понадобится

  • – Arduino;
  • – цифровой потенциометр AD5171;
  • – светодиод;
  • – резистор на 220 Ом;
  • – 2 резистора на 4,7 кОм;
  • – соединительные провода.

Инструкция

Последовательный протокол обмена данными IIC (также называемый I2C – Inter-Integrated Circuits, межмикросхемное соединение) использует для передачи данных две двунаправленные линии связи, которые называются шина последовательных данных SDA (Serial Data) и шина тактирования SCL (Serial Clock).

Также имеются две линии для питания. Шины SDA и SCL подтягиваются к шине питания через резисторы.В сети есть хотя бы одно ведущее устройство (Master), которое инициализирует передачу данных и генерирует сигналы синхронизации.

К одной шине I2C может быть подключено до 127 устройств, в том числе несколько ведущих. К шине можно подключать устройства в процессе работы, т.е. она поддерживает “горячее подключение”.

Arduino использует для работы по интерфейсу I2C два порта. Например, в Arduino UNO и Arduino Nano аналоговый порт A4 соответствует SDA, аналоговый порт A5 соответствует SCL. Для других моделей плат:

Arduino Pro и Pro Mini – A4 (SDA), A5 (SCL)

Arduino Mega – 20 (SDA), 21 (SCL)Arduino Leonardo – 2 (SDA), 3 (SCL)Arduino Due – 20 (SDA), 21 (SCL), SDA1, SCL1

Для облегчения обмена данными с устройствами по шине I2C для Arduino написана стандартная библиотека “Wire”.

Она имеет следующие функции:begin(address) – инициализация библиотеки и подключение к шине I2C; если не указан адрес, то присоединённое устройство считается ведущим; используется 7-битная адресация;requestFrom() – используется ведущим устройством для запроса определённого количества байтов от ведомого;beginTransmission(address) – начало передачи данных к ведомому устройству по определённому адресу;

endTransmission() – прекращение передачи данных ведомому;write() – запись данных от ведомого в ответ на запрос;available() – возвращает количество байт информации, доступных для приёма от ведомого;read() – чтение байта, переданного от ведомого ведущему или от ведущего ведомому;

onReceive() – указывает на функцию, которая должна быть вызвана, когда ведомое устройство получит передачу от ведущего;onRequest() – указывает на функцию, которая должна быть вызвана, когда ведущее устройство получит передачу от ведомого.

Давайте посмотрим, как работать с шиной I2C с помощью Arduino.Сначала соберём схему, как на рисунке. Будем управлять яркостью светодиода, используя цифровой 64-позиционный потенциометр AD5171, который подключается к шине I2C. Адрес, по которому мы будем обращаться к потенциометру – 0x2c (44 в десятичной системе).

Теперь откроем из примеров библиотеки “Wire” скетч:
Файл -> Образцы -> Wire -> digital_potentiometer. Загрузим его в память Arduino. Включим.
Вы видите, яркость светодиода циклически нарастает, а потом резко гаснет. При этом мы управляем потенциометром с помощью Arduino по шине I2C.

Читайте ещё про NFC:  Nfc monitoring

Как работает rfid?

Полное название RFID (Radio Frequency IDentification) — радиочастотная идентификация, широко используемая во многих отраслях, для отслеживания персонала, контроля доступа, управления цепочками поставок, отслеживания библиотечных книг, системы начисления бонусов и других задач.

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

Обзор модуля rc522, rfid

Модуль RFID RC522 основан на микросхеме MFRC522 от NXP. Поставляется с двумя метками, RFID-картой и брелком с объемом памяти 1 КБ.

Модуль RFID RC522 создает электромагнитное поля с частотой 13,56 МГц, которое используется для связи с RFID метками (стандартные метки ISO 14443A). Для взаимодействия с контроллерами, модуль использует 4-х контактный интерфейс SPI. Так же, модуль поддерживает протоколы связи I2C и UART.Дополнительно, выведен контакт прерывания IRQ, которой позволяет опрашивать модуль только тога, когда приложили карту.

Назначение контактов: ► VCC — Вывод питание модуля, от 2,5 до 3,3 вольт. ► RST — Вывод сброса и отключения питания. При установки вывода в низкое состояние, модуль отключается. ► GND — Вывод заземления.►IRQ — Вывод прерывания.

► MISO / SCL / Tx — Вывод интерфейс SPI, I2S и UART включен.► MOSI (Master Out Slave In) — Вход SPI.► SCK — Вывод тактовых импульсов.► SDA / SS / Rx — Вывод интерфейс SPI, I2S и UART включен.

Напряжение питание модуля:Рабочее напряжение модуля составляет от 2,5 до 3,3 В , но логические выводы могут работать от 5 В , поэтому мы можем напрямую подключать его к Arduino или любому 5 В логическому микроконтроллеру без использования какого-либо преобразователя логического уровня.

Подключение

Некоторые столкнуться с проблемой – название пинов в большинстве уроков и руководств может не соответствовать распиновке на вашем модуле. Если в скетчах указан пин SS, а на вашем модуле его нет, то скорее всего он помечен как SDA. Ниже я приведу таблицу подключения модуля для самых распространенных плат.

MFRC522Arduino UnoArduino MegaArduino Nano v3Arduino Leonardo/MicroArduino Pro Micro
RST95D9RESET/ICSP-5RST
SDA(SS)1053D101010
MOSI11 (ICSP-4)51D11ICSP-416
MISO12 (ICSP-1)50D12ICSP-114
SCK13 (ICSP-3)52D13ICSP-315
3.3V3.3V3.3VСтабилизатор 3,3ВСтабилизатор 3,3ВСтабилизатор 3,3В
GNDGNDGNDGNDGNDGND

Пины управления SS(SDA) и RST задаются в скетче, так что если ваша плата отличается от той, что я буду использовать в своих примерах, а использую я UNO R3, указывайте пины из таблицы в начале скетча:

#define SS_PIN 10#define RST_PIN 9

Подключение к arduino:

SS      – 10 цифровойSCK    – 13 цифровойMOSI  –  11 цифровойMISO  –  12 цифровойIRQ     –  не подключаемGND   –   GNDRST    –   9 цифровойVCC   –   3.3V

Библиотека необходимая для работы с модулем RFID library

Её необходимо распаковать и добавить в папку “libraries” в папке с Arduino IDE. Не забывайте перезагрузить среду, если на момент добавления IDEшка была открыта.

// Тестировалось на Arduino IDE 1.0.1#include #include  #define SS_PIN 10#define RST_PIN 9 RFID rfid(SS_PIN, RST_PIN);  int serNum0;int serNum1;int serNum2;int serNum3;int serNum4; void setup(){ Serial.begin(9600);SPI.begin();   rfid.init();} void loop()

{// Если обнаружена картаif (rfid.isCard()) {// Считываем адресif (rfid.readCardSerial()) {// Выводим его в порт в десятичном представленииSerial.println(“Card number:”);Serial.print(rfid.serNum[0],DEC);

Serial.print(“, “);Serial.print(rfid.serNum[1],DEC);Serial.print(“, “);Serial.print(rfid.serNum[2],DEC);Serial.print(“, “);Serial.print(rfid.serNum[3],DEC);

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

Купить в России  RFID reader

В данный момент еще реализованы не все элементы нашего сообщества. Мы активно работаем над ним и в ближайшее время возможность комментирования статей будет добавлена.

Подключение модуля rc522 rfid к arduino uno

Необходимые детали:► Arduino UNO R3 x 1 шт.► Считыватель RFID, RC522, 13.56MHz x 1 шт.► Кабель USB 2.0 A-B x 1 шт.► Провода DuPont M-F, 20 см x 1 шт.

Подключение:В этом примере покажу как подключить модуль RC522 к Arduino UNO и считаем данные с карты и брелка. Для начала подключим питание, вывод VCC на модуле RC522 к 3,3 В на Arduino UNO, а выводу GND — к земле. Вывод RST можно подключить к любому выводу Arduino, в примере используем вывод 5.

Вывод IRQ не подключен, поскольку библиотека Arduino, которую мы собираемся использовать, не поддерживает его. Теперь осталось подключить интерфейсный SPI. Для плат Arduino UNO и Nano, эти контакты являются цифровыми 13 (SCK), 12 (MISO), 11 (MOSI) и 10 (SS).

Таблица подключений

Установка библиотеки:Для работы с RFID модулем RC522 нам понадобится библиотека MFRC522, которая упрощает чтение и запись в RFID матки.  «Скетч» -> «Подключить библиотеку» и нажимает «Управлять библиотеками…»

Откроется новое окно «Менеджер библиотек», в окне поиска вводим «MFRC522» и устанавливаем библиотеку.

Программа:Данный скетч просто считывает уникальный UID карты и отображает его в «Мониторинге порта«.

Преимущества rfid

  • Не требуется прямая видимость;
  • Практически 100% идентификация сигнала;
  • Возможность применения в агрессивной среде;
  • Долгий срок службы;
  • RFID-метку трудно подделать;
  • Возможность хранения и передачи большого объема информации.

Области применения RFID идентификации

RFID-технология часто используется в розничной торговле, библиотеках и архивах, логистике, системах контроля и управления доступом (СКУД), инициализации людей, удостоверении подлинности товаров.

Для идентификации персонала самым популярным форматом являются пластиковые бесконтактные карты и бесконтактные брелки. С их помощью можно регистрировать вход/выход объектов на территории через точки прохода – ворота, КПП.

Основной задачей СКУД является управление доступом — например, ограничение в доступе на какую-либо территорию, идентификация лиц, которые могут попадать на территорию.

Также могут решаться и дополнительные задачи – контроль рабочего времени для персонала, ведение базы посетителей, работа с системами безопасности, расчет заработной платы.

RFID-брелки используются и для подъездных домофонов. Для открытия дверей чаще всего используются брелки Proximity, то есть брелки ближнего действия, работающие на расстоянии 10-15 см.  Proximity также делятся на несколько форматов – наиболее популярные на сегодняшний день EM-Marin, HID для бесконтактных ключей и MIFARE, к которым относятся бесконтактные смарт карты.

Пример №1: считывание номера карты

Рассмотрим пример из библиотеки RFID  – cardRead. Он не выдает данные из карты, а только ее номер, чего обычно бывает достаточно для многих задач.

#include #include #define SS_PIN 10#define RST_PIN 9 RFID rfid(SS_PIN, RST_PIN); // Данные о номере карты храняться в 5 переменных, будем запоминать их, чтобы проверять, считывали ли мы уже такую карту int serNum0; int serNum1; int serNum2; int serNum3; int serNum4; void setup(){ Serial.begin(9600); SPI.begin(); rfid.init(); } void loop(){ if (rfid.isCard()) { if (rfid.

Читайте ещё про NFC:  NFC от «А» до «Я» подробно рассказываем что такое, и как NFC в телефоне изменит жизнь каждого

readCardSerial()) { // Сравниваем номер карты с номером предыдущей карты if (rfid.serNum[0] != serNum0 && rfid.serNum[1] != serNum1 && rfid.serNum[2] != serNum2 && rfid.serNum[3] != serNum3 && rfid.serNum[4] != serNum4 )

{ /* Если карта – новая, то считываем*/ Serial.println(” “); Serial.println(“Card found”); serNum0 = rfid.serNum[0]; serNum1 = rfid.serNum[1]; serNum2 = rfid.serNum[2]; serNum3 = rfid.serNum[3]; serNum4 = rfid.serNum[4]; //Выводим номер карты Serial.

println(“Cardnumber:”); Serial.print(“Dec: “); Serial.print(rfid.serNum[0],DEC); Serial.print(“, “); Serial.print(rfid.serNum[1],DEC); Serial.print(“, “); Serial.print(rfid.serNum[2],DEC); Serial.print(“, “); Serial.print(rfid.serNum[3],DEC); Serial.print(“, “); Serial.print(rfid.serNum[4],DEC); Serial.println(” “); Serial.print(“Hex: “); Serial.print(rfid.serNum[0],HEX); Serial.print(“, “); Serial.print(rfid.serNum[1],HEX); Serial.print(“, “); Serial.print(rfid.serNum[2],HEX); Serial.print(“, “); Serial.print(rfid.serNum[3],HEX); Serial.print(“, “); Serial.print(rfid.serNum[4],HEX); Serial.println(” “); } else { /* Если это уже считанная карта, просто выводим точку */ Serial.print(“.”); } } } rfid.halt();}

Скетч залился, светодиод питания на модуле загорелся, но модуль не реагирует на карту? Не стоит паниковать, или бежать искать “правильные” примеры работы.

Скорее всего, на одном из пинов просто нет контакта – отверстия на плате немного больше чем толщина перемычки, так что стоит попробовать их переставить. На плате не горит светодиод? Попробуйте переставить перемычку, ведующую в 3.

3В, и убедитесь, что на плате она подключена именно к 3.3В, подача питания в 5В может вашу плату запросто убить.

Допустим, все у вас заработало. Тогда, считывая модулем RFID метки, в мониторе последовательного порта увидим следующее:

Здесь я считывал 3 разных метки, и как видно все 3 он успешно считал.

Пример №3: запись нового идентификатора на карту

В этом примере мы рассмотрим смену идентификатора карты (UID). Важно знать, что далеко не все карты поддерживают смену идентификатора. Карта может быть перезаписываемой, но это означает лишь перезаписываемость данных. К сожалению, те карты, которые были у меня на руках, перезапись UID не поддерживали, но код скетча я здесь на всякий случай приведу.

#include #include /* Задаем здесь новый UID */#define NEW_UID {0xDE, 0xAD, 0xBE, 0xEF}#define SS_PIN 10#define RST_PIN 9 MFRC522 mfrc522(SS_PIN, RST_PIN); MFRC522::MIFARE_Key key; void setup() { Serial.begin(9600); while (!Serial); SPI.begin(); mfrc522.PCD_Init(); Serial.

println(F(“Warning: this example overwrites the UID of your UID changeable card, use with care!”)); for (byte i = 0; i < 6; i ) { key.keyByte[i] = 0xFF; }
}
void loop() { if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) { delay(50); return;

} // Считываем текущий UID Serial.print(F(“Card UID:”)); for (byte i = 0; i < mfrc522.uid.size; i ) { Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? ” 0″ : ” “); Serial.print(mfrc522.uid.uidByte[i], HEX); } Serial.println(); // Записываем новый UID byte newUid[] = NEW_UID; if ( mfrc522.

MIFARE_SetUid(newUid, (byte)4, true) ) { Serial.println(F(“Wrote new UID to card.”)); } // Halt PICC and re-select it so DumpToSerial doesn’t get confused mfrc522.PICC_HaltA(); if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) { return;

Считыватель бесконтактных карт радио-меток rfid rc522

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

Модуль построен на одноименном контроллере MFRC522 и может считывать и записывать информацию с/на бесконтактные радио метки RFID работающие на частоте 13,56 МГц. На Алиэкспресс есть много продавцов с данным модулем и соответственно с разными ценами на него.

Заказ был сделан на самый дешёвый из них. Целью было быстро проверить работоспособность и пригодность модуля простым способом, пока не закончено основное устройство управления им. В итоге был получен положительный результат.

А если рассматривать этот модуль в конкретной конструкции, то это тема уже другой статьи и об этом поговорим немного позже. В данной же статье Мы рассмотрим с Вами следующие пункты:

  • Заказ, доставка, распаковка;
  • Внешний осмотр, визуальная оценка;
  • Знакомство с документацией модуля;
  • Обзор справочных данных контроллера модуля;
  • Подключение и проверка модуля;
  • Вывод, окончательная оценка.

Заказ, доставка, распаковка

Заказ производился в китайском интернет-магазине Алиэкспресс стоимостью около 75 рублей:

В Грузию товар был доставлен бесплатно компанией “4PX Singapore Post OM Pro” в стандартном пакете:

Внутри пакета находился свёрток с пупырышками:

Развернув его добираемся до антистатического пакета с модулем. В комплекте с модулем две колодки штырьков – прямые и согнутые, которые лежат в одном пакете с модулем:

С одной стороны пакета всё хорошо, но перевернув его видим, что согнутые штырьки, которые идут в комплекте с модулем, лежат в этом же пакете и проткнув его нарушили герметизацию:

Внешний осмотр, визуальная оценка

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

Со стороны радиоэлементов всё в порядке. Детали установлены ровно, флюс хорошо отмыт, повреждений не найдено:

На плате имеется четыре отверстия для крепления. Так же можно заметить, что имеется белая линия, по которой, скорее всего, должна была обрезаться целая единая плата, но это место почему то оставлено и плата разрезана в другом месте.

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

 Вся плата модуля небольшого размера и свободно умещается в руке взрослого человека:

Знакомство с документацией модуля

Рассмотрим описание с сайта продавца:

В RC522 применяется высокоинтегрированный считывающий и записывающий чип, работающий с бесконтактными картами на частоте 13,56 МГц , изготовленный для применения в низковольтных и недорогих устройствах небольшого размера.

MF RC522 использует усовершенствованную концепцию модуляции и демодуляции, полностью интегрированную во всех типах пассивных бесконтактных коммуникационных методов и протоколов 13,56 МГц. Кроме того, поддерживаются быстрые алгоритмы шифрования CRYPTO1 и терминологическая проверка продуктов MIFARE.

MFRC522 поддерживает высокоскоростную бесконтактную связь MIFARE, двухстороннюю скорость передачи данных до 424 кбит / с. Связь между ним и режимом SPI хоста помогает сократить объем соединения узкой печатной платы и снизить затраты.

Технические параметры: 1. Рабочий ток: 13-26 мА / DC 3,3 В 2. Ток ожидания: 10-13 мА / DC 3,3 В 3. Дежурный ток:<p>

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector