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

Arduino İle RC522 RFID Modül Kullanarak Kapı Kilidi Projesi Yapalım

Kart okuyucu devresini yaparken aynı zamanda RFID ile servo motor kontrolü uygulamasını da gerçekleştirmiş olacağız. Yani hem Arduino’nun RFID ile iletişimini öğreneceğiz hem de servo motor kullanarak algoritmamızı yazmış olacağız.

Gereken malzemeler:

  • Arduino UNO
  • Breadboard
  • RC522 RFID NFC Kiti
  • Servo motor
  • Erkek-erkek jumper kablo

Devre şemamız şu şekilde:

Kart Okuyucu Devresi

Projeye Başlamadan Önce İndirmemiz Gereken RFID ve Servo Motor Kütüphaneleri

Bu adresten kartımızı çalıştırmamızda gerekli olan kütüphaneyi indirerek Arduino programının kurulu olduğu klasör altındaki libraries klasörüne MFRC522 ismiyle kaydediyoruz.

Arduino Kart Okuyucu devremiz için gerekli kodu aşağıdaki gibi yazıyoruz. Her bir satırda açıklamalar bulunuyor fakat projede bir sorun yaşarsanız yorum kısmından bildirebilirsiniz.

#include <spi.h>                   //SPI kütüphanemizi tanımlıyoruz.

#include <mfrc522.h>              //MFRC522 kütüphanemizi tanımlıyoruz.

#include <servo.h>               //Servo kütüphanemizi tanımlıyoruz

int RST_PIN = 9; //RC522 modülü reset pinini tanımlıyoruz.
int SS_PIN = 10; //RC522 modülü chip select pinini tanımlıyoruz.
int servoPin = 8; //Servo motor pinini tanımlıyoruz.

Servo motor; //Servo motor için değişken oluşturuyoruz.
MFRC522 rfid(SS_PIN, RST_PIN); //RC522 modülü ayarlarını yapıyoruz.
byte ID = {
  97,
  76,
  67,
  9
}; //Yetkili kart ID'sini tanımlıyoruz. 

void setup() {
  motor.attach(servoPin); //Servo motor pinini motor değişkeni ile ilişkilendiriyoruz.
  Serial.begin(9600); //Seri haberleşmeyi başlatıyoruz.
  SPI.begin(); //SPI iletişimini başlatıyoruz.
  rfid.PCD_Init(); //RC522 modülünü başlatıyoruz.
}

void loop() {

  if (!rfid.PICC_IsNewCardPresent()) //Yeni kartın okunmasını bekliyoruz.
    return;

  if (!rfid.PICC_ReadCardSerial()) //Kart okunmadığı zaman bekliyoruz.
    return;

  if (rfid.uid.uidByte == ID && //Okunan kart ID'si ile ID değişkenini karşılaştırıyoruz.
    rfid.uid.uidByte == ID &&
    rfid.uid.uidByte == ID &&
    rfid.uid.uidByte == ID) {
    Serial.println("Kapi acildi");
    ekranaYazdir();
    motor.write(180); //Servo motoru 180 dereceye getiriyoruz.
    delay(3000);
    motor.write(0); //Servo motoru 0 dereceye getiriyoruz.
    delay(1000);
  } else { //Yetkisiz girişte içerideki komutlar çalıştırılır.
    Serial.println("Yetkisiz Kart");
    ekranaYazdir();
  }
  rfid.PICC_HaltA();
}
void ekranaYazdir() {
  Serial.print("ID Numarasi: ");
  for (int sayac = 0; sayac < 4; sayac++) {
    Serial.print(rfid.uid.uidByte);
    Serial.print(" ");
  }
  Serial.println("");
}

RFID ile yaptığımız bu projeden memnun kaldınız mı? Öyleyse kendinizi RFID protokolü konusunda daha çok geliştirebileceğiniz bir proje seti tavsiye ediyoruz. Arduino RFID Kit Seti ile servo motor haricinde LDR, yangın sensörü, ses sensörü, sıcaklık sensörü gibi birçok komponent kullanarak bilgi sinyali alarak step motor, LED, buzzer ve daha bir sürü aktüatör ile projeler yapabilirsiniz

> Buradan Alabilirsin.

Hardware Overview – RC522 RFID Reader/Writer Module

The RC522 RFID module based on MFRC522 IC from NXP is one of the most inexpensive RFID options that you can get online for less than four dollars. It usually comes with a RFID card tag and key fob tag having 1KB memory. And best of all, it can write a tag, so you can store your some sort of secret message in it.

The RC522 RFID Reader module is designed to create a 13.56MHz electromagnetic field that it uses to communicate with the RFID tags (ISO 14443A standard tags). The reader can communicate with a microcontroller over a 4-pin Serial Peripheral Interface (SPI) with a maximum data rate of 10Mbps. It also supports communication over I2C and UART protocols.

The module comes with an interrupt pin. It is handy because instead of constantly asking the RFID module “is there a card in view yet? “, the module will alert us when a tag comes into its vicinity.

The operating voltage of the module is from 2.5 to 3.3V, but the good news is that the logic pins are 5-volt tolerant, so we can easily connect it to an Arduino or any 5V logic microcontroller without using any logic level converter.

Here are complete specifications:

Frequency Range 13.56 MHz ISM Band
Host Interface SPI / I2C / UART
Operating Supply Voltage 2.5 V to 3.3 V
Max. Operating Current 13-26mA
Min. Current(Power down) 10µA
Logic Inputs 5V Tolerant
Read Range 5 cm

Arduino Code – Reading RFID Tag

Communicating with RC522 RFID module is a bunch of work, but luckily for us, there’s a library called MFRC522 library which simplifies reading from and writing to RFID tags. Thanks to Miguel Balboa. Download the library first, by visiting the GitHub repo or, just click this button to download the zip:

To install it, open the Arduino IDE, go to Sketch > Include Library > Add .ZIP Library, and then select the rfid-master.zip file that you just downloaded. If you need more details on installing a library, visit this Installing an Arduino Library tutorial.

Once you have the library installed, open Examples submenu and select MFRC522 > DumpInfo example sketch.

This sketch will not write any data to the tag. It just tells you if it managed to read the tag, and displays some information about it. This can be very useful before trying out any new tag!

Go to the beginning of the sketch and make sure that the RST_PIN is correctly initialized, in our case we’re using digital pin #5 so change it to 5!

OK, now upload the sketch and open the Serial Monitor. As soon as you bring the tag closer to the module, you’ll probably get something like the following. Do not move the tag until all the information is displayed.

It displays all the useful information about the tag including tag’s Unique ID (UID), the memory size and the whole 1K memory.

Считывание данных с RFID-тега

Подключив все как нужно, кликните в IDE Arduino по Файл > Примеры > MFRC522 > DumpInfo (File > Examples > MFRC522 > DumpInfo) и загрузите этот скетч на Arduino. Он уже будет в IDE Arduino, когда вы установите в него библиотеку RFID.

Затем откройте в IDE Arduino монитор порта. В нем должны появиться данные примерно как на картинке ниже:

Приложите к RFID-ридеру карту или брелок с RFID-тегом. Держите их в таком положении, пока в мониторе порта не будет показана вся необходимая информация.

Это информация, считанная с RFID-тега, включая UID, который высвечен желтым цветом. Информация хранится в памяти, которая поделена на сегменты и блоки, которые можно наблюдать на картинке выше. Общий объем памяти составляет 1024 байта, которые поделены на 16 секторов, и каждый сектор защищен двумя разными ключами, A и B.

Запишите где-нибудь UID свой карты – позже он вам понадобится.

Загрузите на Arduino код, показанный ниже:

 1 /*
 2  * 
 3  * Более подробно о проекте на: http://randomnerdtutorials.com/
 4  * Модифицирован Руи Сантосом (Rui Santos)
 5  * 
 6  * Написан FILIPEFLOP
 7  * 
 8  */
 9  
10 #include <SPI.h>
11 #include <MFRC522.h>
12  
13 #define SS_PIN 10
14 #define RST_PIN 9
15 MFRC522 mfrc522(SS_PIN, RST_PIN);   // создаем экземпляр MFRC522 instance.
16  
17 void setup() 
18 {
19   Serial.begin(9600);   // запускаем последовательную коммуникацию
20   SPI.begin();          // инициализируем шину SPI
21   mfrc522.PCD_Init();   // инициализируем MFRC522
22   Serial.println("Approximate your card to the reader...");
23   //  "Приложите карту к ридеру... "
24   Serial.println();
25 
26 }
27 void loop() 
28 {
29   // ищем новые карты:
30   if ( ! mfrc522.PICC_IsNewCardPresent()) 
31   {
32     return;
33   }
34   // выбираем одну из карт:
35   if ( ! mfrc522.PICC_ReadCardSerial()) 
36   {
37     return;
38   }
39   // показываем UID на мониторе порта: 
40   Serial.print("UID tag :");  //  "UID тега: "
41   String content= "";
42   byte letter;
43   for (byte i = ; i < mfrc522.uid.size; i++) 
44   {
45      Serial.print(mfrc522.uid.uidBytei < 0x10 ? " 0"  " ");
46      Serial.print(mfrc522.uid.uidBytei], HEX);
47      content.concat(String(mfrc522.uid.uidBytei < 0x10 ? " 0"  " "));
48      content.concat(String(mfrc522.uid.uidBytei], HEX));
49   }
50   Serial.println();
51   Serial.print("Message : ");  //  "Сообщение: "
52   content.toUpperCase();
53   if (content.substring(1) == "BD 31 15 2B")
54   //  впишите здесь UID тега, которому вы хотите дать доступ 
55   {
56     Serial.println("Authorized access");  //  "Доступ открыт"
57     Serial.println();
58     delay(3000);
59   }
60  
61  else   {
62     Serial.println(" Access denied");  //  "Запрос на доступ отклонен"
63     delay(3000);
64   }
65 }

В этом скетче вам нужно поменять строчку…

if (content.substring(1) == "BD 31 15 2B")

…вписав вместо BD 31 15 2B значение для UID, которое ранее было показано в мониторе порта.

What is RFID technology and how does it work?

RFID or Radio Frequency Identification system consists of two main components, a transponder/tag attached to an object to be identified, and a Transceiver also known as interrogator/Reader.

A Reader consists of a Radio Frequency module and an antenna which generates high frequency electromagnetic field. On the other hand, the tag is usually a passive device, meaning it doesn’t contain a battery. Instead it contains a microchip that stores and processes information, and an antenna to receive and transmit a signal.

To read the information encoded on a tag, it is placed in close proximity to the Reader (does not need to be within direct line-of-sight of the reader). A Reader generates an electromagnetic field which causes electrons to move through the tag’s antenna and subsequently power the chip.

The powered chip inside the tag then responds by sending its stored information back to the reader in the form of another radio signal. This is called backscatter. The backscatter, or change in the electromagnetic/RF wave, is detected and interpreted by the reader which then sends the data out to a computer or microcontroller.

Технические характеристики

  • Напряжение питания: 3.3V
  • Потребляемый ток :13-26mA
  • Рабочая частота: 13.56MHz
  • Дальность считывания: до 6 см
  • Интерфейс: SPI
  • Скорость передачи: максимальная 10МБит/с
  • Размер: 40мм х 60мм

Микросхема MFRC522 поддерживает интерфейсы SPI, UART и I2C. Выбор интерфейса осуществляется установкой логических уровней на определенных выводах микросхемы. В Arduino принято использовать SPI.

Назначение выводов интерфейса SPI:

  • SDA – выбор ведомого
  • SCK – сигнал синхронизации
  • MOSI – передача от master к slave
  • MISO – передача от slave к master
  • IRQ – вывод прерывания
  • GND – земля;
  • RST – вывод для сброса
  • Vcc –питание 3.3 В

Выводы модуля подключаются к цифровым пинам Arduino

На платах Arduino есть разъём ICSP, который можно использовать для работы с интерфейсом SPI.

Как подключить RFID считыватель RC522 к Arduino

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

Модуль RFID-RC522 выполнен на микросхеме MFRC522 фирмы NXP. Эта микросхема обеспечивает двухстороннюю беспроводную (до 6 см) коммуникацию на частоте 13,56 МГц.

Беспроводной модуль RFID-RC522

Микросхема MFRC522 поддерживает следующие варианты подключения:

SPI (Serial Peripheral Interface, последовательный интерфейс для связи периферийных устройств) до 10 Мбит/сек;
двухпроводной интерфейс I2C до 3400 кбод в режиме High-speed,до 400 кбод в режиме Fast;
последовательный UART (аналог RS232) до 1228,8 кбод.

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

RFID – это сокращение от “Radio Frequency IDentification” и переводится как «радиочастотная идентификация». NFC – это “Near field communication”, «коммуникация ближнего поля» или «ближняя бесконтактная связь».

2Схема подключения RFID-RC522 к Arduino

Подключим модуль RFID-RC522 к Arduino по интерфейсу SPI по приведённой схеме.

Схема подключения RFID-RC522 к Arduino по интерфейсу SPI

Питание модуля обеспечивается напряжением от 2,5 до 3,3 В. Остальные выводы подключаем к Arduino так:

RST D9
SDA (SS) D10
MOSI D11
MISO D12
SCK D13

Не забывайте также, что Arduino имеет специальный разъём ICSP для работы по интерфейсу SPI. Его распиновка также приведена на иллюстрации. Можно подключить выводы RST, SCK, MISO, MOSI и GND модуля RC522 к разъёму ICSP на Ардуино.

3Библиотека для работы Arduino с RFID

Микросхема MFRC522 имеет достаточно обширную функциональность. Познакомиться со всеми возможностями можно изучив её паспорт (datasheet). Мы же для знакомства с возможностями данного устройства воспользуемся одной из готовых библиотек, написанных для работы Arduino с RC522. Скачайте её и распакуйте в директорию Arduino IDE\libraries\

Установка библиотеки “rfid-master” для работы Arduino с RFID-метками

После этого запустите среду разработки Arduino IDE.

4Скетч для считывания информации, записанной на RFID-метке

Теперь давайте откроем скетч из примеров: Файл Образцы MFRC522 DumpInfo и загрузим его в память Arduino.

Открываем скетч DumpInfo

Данный скетч определяет тип приложенного к считывателю устройства и считывает данные, записанные на RFID-метке или карте, а затем выводит их в последовательный порт.

#include #include const int RST_PIN = 9; // пин RST const int SS_PIN = 10; // пин SDA (SS) MFRC522 mfrc522(SS_PIN, RST_PIN); // создаём объект MFRC522 void setup() { Serial.begin(9600); // инициализация послед. порта SPI.begin(); // инициализация шины SPI mfrc522.PCD_Init(); // инициализация считывателя RC522 } void loop() { // Ожидание прикладывания новой RFID-метки: if ( ! mfrc522.PICC_IsNewCardPresent()) { return; // выход, если не приложена новая карта } // Считываем серийный номер: if ( ! mfrc522.PICC_ReadCardSerial()) { return; // выход, если невозможно считать сер. номер } // Вывод дампа в послед. порт: mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); }

Текст скетча достаточно хорошо прокомментирован.

Для более полного знакомства с библиотекой изучите файлы MFRC522.h и MFRC522.cpp из директории rfid-master.

5Дамп данных с RFID-метки

Запустим монитор последовательного порта сочетанием клавиш Ctrl+Shift+M, через меню Инструменты или кнопкой с изображением лупы. Теперь приложим к считывателю билет метро или любую другую RFID-метку. Монитор последовательного порта покажет данные, записанные на RFID-метку или билет.

Считываем данные с билета на наземный транспорт и метро с помощью RFID

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

Примечание

Да, с помощью модуля RFID-RC522 можно записать данные на билет метро.

Но не обольщайтесь, каждая карта имеет неперезаписываемый счётчик циклов записи, так что «добавить» поездок себе на метро не получится – это сразу будет обнаружено и карта будет забракована турникетом А вот использовать билеты метро для записи на них небольших объёмов данных – от 1 до 4 кб – можно. И способы применения этому ограничены только вашей фантазией.

Compatible boards

!!!Only for advanced users!!!

This library is compatible with the Teensy and ESP8266 if you use the board plugin of the Arduino IDE. Not all examples are available for every board. You also have to change pins. See .

Some user made some patches/suggestions/ports for other boards:

  • Linux: https://github.com/miguelbalboa/rfid/pull/216
  • chipKIT: https://github.com/miguelbalboa/rfid/pull/230
  • ESP8266 (native): https://github.com/miguelbalboa/rfid/pull/235
  • LPCOPen (in C): https://github.com/miguelbalboa/rfid/pull/258

Note that the main target/support of library is still Arduino.

Установка блокировки/разблокировки компьютера с помощью RFID

После сборки схемы проекта подключите плату Arduino к компьютеру. Определите COM порт компьютера, к которому подключилась плата Arduino – это можно сделать либо с помощью диспетчера устройств Windows, либо с помощью Arduino IDE как показано на следующем рисунке. В нашем случае плата Arduino оказалась подключенной к COM порту под номером 1.

После этого в плату Arduino необходимо загрузить код программы для работы с модулем RC522 – он приведен в конце статьи. После загрузки кода программы в плату откройте окно монитора последовательной связи (serial monitor). Затем прислоните RFID метку к модулю RC522, после чего вы увидите в окне монитора последовательной связи 5 значений. Эти значения необходимо скопировать себе в «укромное место» и закрыть окно монитора последовательной связи. Полученные нами значения показаны на следующем рисунке.

После распаковки ZIP архива зайдите в нем в каталог с именем 32 bit или 64-bit в зависимости от того 32 или 64-разрядная у вас операционная система. В этом каталоге откройте текстовый файл RFIDcredentials.txt. Вставьте в него свои значения из окна монитора последовательной связи (которые вы получили ранее) и обновите (укажите свои) имя пользователя (user name) и пароль (password). Если вы хотите добавить две карты для входа в операционную систему, то заполните и вторую строчку в файле RFIDcredentials.txt как показано на следующем рисунке.

После этого сохраните и закройте этот файл. Затем откройте из этой же папки файл RFIDCredSettings, измените в нем номер COM порта, к которому подключена плата Arduino, на свой, сохраните и закройте этот файл. Остальные значения в файле не меняйте.

Теперь скопируйте все 4 элемента нашего каталога, которые вы извлекли из скачанного ZIP архива и изменили в них часть значений на свои, в каталог C:\Windows\System32. Если система потребует подтверждения этой операции – подтвердите ее.

Теперь запустите файл реестра (register file) чтобы внести изменения в реестр. При этом, скорее всего, вы на своем экране увидите примерно следующее диалоговое окно:

Нажмите «yes», затем «ok». После этого осуществите выход из системы и вы увидите что в систему был добавлен еще один пользователь – с именем RFID.

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

Подключение RC522 к Ардуино

Для подключения понадобятся плата Ардуино, считыватель RC522, компьютер, провода и беспроводная RFID метка.

Подключается модуль RC522 к ардуино по следующей схеме:

Напряжение питания обеспечивается от 2,5 до 3,3 В. Выход RST подключается к D9 пину на ардуино, SDA – к D10, MOSI – D11, MISO – D12, SCK – D13. В данном случае рассмотрены платы Arduino Nano v3 и Arduino Uno. После того как все будет подключено, на RC522 загорится индикатор.

Плата Ардуино оснащена дополнительным разъемом ICSP, который используется для работы по интерфейсу  SPI. Распиновка для него изображена на рисунке, выводы с модуля RC522 можно подключить к этому разъему.

Для работы с модулем нужно установить библиотеку RFID Library for MFRC522. После установки нужно загрузить тестовый скетч для считывания номера карты cardRead, включить мониторинг последовательного порта. Затем метку нужно поднести к ридеру, произойдет инициализация метки и на мониторе появится следующее:

В данном примере произведено считывание трех различных меток.

Можно выбрать другой пример – DumpInfo, который также считает данные с карты. В результате на экране появятся тип карты и информация, которая состоит из 16 сектором памяти по 4 блока.

Wiring – Connecting RC522 RFID module to Arduino UNO

Now that we know everything about the module, we can begin hooking it up to our Arduino!

To start with, connect VCC pin on the module to 3.3V on the Arduino and GND pin to ground. The pin RST can be connected to any digital pin on the Arduino. In our case, it’s connected to digital pin#5. The IRQ pin is left unconnected as the Arduino library we are going to use doesn’t support it.

Now we are remaining with the pins that are used for SPI communication. As RC522 module require a lot of data transfer, they will give the best performance when connected up to the hardware SPI pins on a microcontroller. The hardware SPI pins are much faster than ‘bit-banging’ the interface code using another set of pins.

Note that each Arduino Board has different SPI pins which should be connected accordingly. For Arduino boards such as the UNO/Nano V3.0 those pins are digital 13 (SCK), 12 (MISO), 11 (MOSI) and 10 (SS).

If you have a Mega, the pins are different! You’ll want to use digital 50 (MISO), 51 (MOSI), 52 (SCK), and 53 (SS). Refer below table for quick understanding.

MOSI MISO SCK CS
Arduino Uno 11 12 13 10
Arduino Nano 11 12 13 10
Arduino Mega 51 50 52 53

In case you’re using different Arduino board than mentioned above, it is advisable to check the Arduino official documentation before proceeding.

Wiring RC522 RFID Reader Writer Module with Arduino UNO

Once you have everything hooked up you are ready to go!

RC522 RFID Module Pinout

The RC522 module has total 8 pins that interface it to the outside world. The connections are as follows:

VCC supplies power for the module. This can be anywhere from 2.5 to 3.3 volts. You can connect it to 3.3V output from your Arduino. Remember connecting it to 5V pin will likely destroy your module!

RST is an input for Reset and power-down. When this pin goes low, hard power-down is enabled. This turns off all internal current sinks including the oscillator and the input pins are disconnected from the outside world. On the rising edge, the module is reset.

GND is the Ground Pin and needs to be connected to GND pin on the Arduino.

IRQ is an interrupt pin that can alert the microcontroller when RFID tag comes into its vicinity.

MISO / SCL / Tx pin acts as Master-In-Slave-Out when SPI interface is enabled, acts as serial clock when I2C interface is enabled and acts as serial data output when UART interface is enabled.

MOSI (Master Out Slave In) is SPI input to the RC522 module.

SCK (Serial Clock) accepts clock pulses provided by the SPI bus Master i.e. Arduino.

SS / SDA / Rx pin acts as Signal input when SPI interface is enabled, acts as serial data when I2C interface is enabled and acts as serial data input when UART interface is enabled. This pin is usually marked by encasing the pin in a square so it can be used as a reference for identifying the other pins.

What works and not?

  • Works
    1. Communication (Crypto1) with MIFARE Classic (1k, 4k, Mini).
    2. Communication (Crypto1) with MIFARE Classic compatible PICCs.
    3. Firmware self check of MFRC522.
    4. Set the UID, write to sector 0, and unbrick Chinese UID changeable MIFARE cards.
    5. Manage the SPI chip select pin (aka SS, SDA)
  • Works partially
    1. Communication with MIFARE Ultralight.
    2. Other PICCs (Ntag216).
    3. More than 2 modules, require a multiplexer .
  • Doesn’t work
    1. MIFARE DESFire, MIFARE DESFire EV1/EV2, not supported by software.
    2. Communication with 3DES or AES, not supported by software.
    3. Use of IRQ pin. But there is a proof-of-concept example.
    4. With Intel Galileo (Gen2) see #310, not supported by software.
    5. Power reduction modes #269, not supported by software.
    6. I2C instead of SPI #240, not supported by software.
    7. UART instead of SPI #281, not supported by software.
  • Need more?
    1. If software: code it and make a pull request.
    2. If hardware: buy a more expensive like PN532 (supports NFC and many more, but costs about $15 and not usable with this library).

RFID Nedir?

Açılımı Radio Frequency Identification yani radyo frekansı ile tanımlamadır. RFID teknolojisi nesnelerin radyo dalgaları kullanılarak tanınması için kullanılan teknolojidir. Günlük hayatımızda toplu taşıma biletlerinde, işyeri ve okul girişlerindeki turnikelerde karşımıza sıklıkla çıkmaktadır. Arduino ile RFID projelerini incelediğimizde kapı kilidi, bir ortamda bulunan kişi sayısı bilgisinin alınması, bilgisayar oturum kilidi, alarm sistemi gibi projelerle sıklıkla karşılaşabilirsiniz. Kablosuz haberleşme teknolojileri ile ilgili daha fazla bilgi edinmek isterseniz, Kablosuz Haberleşme Teknolojileri yazımızı okuyabilirsiniz.

RFID Kart Okuyucular – RFID Kart Okuma Yazma İşlemi

Kullandığımız kartların kendilerine ait UID isimli bir numarası vardır. Bu numara, her kart için farklıdır. Okuyucumuza kartımızı veya anahtarlığımızı yaklaştırdığımızda bu numara okunarak işlem yapılır.

RC522 RFID modülü haricinde başka birçok RFID kart okuyucu modül piyasada bulunmaktadır. HZ-1050 RFID Kart okuyucu modülü 125 kHz frekansında çalışmaktadır. Arduino ve birçok mikro kontrolcü ile çalışabilir, Raspberry Pi ile rahatlıkla proje geliştirmek mümkündür. RDM6300 modülü ofis/ev güvenliği, kişisel kimlik ve erişim kontrolü, anti-sahtecilik ve üretim kontrol sistemleri gibi pek çok alanda kullanılmaktadır. Grove modülü ise 7 cm mesafeye kadar algılama yapabilen RFID modülüdür.

Sitemizdeki tüm RF kart okuyuculara ve kablosuz haberleşme sistemlerine buradan ulaşabilirsiniz.

Шаг 4: Соединяем все детали

Связь с платой Arduino Uno очень проста. Сначала подключим питание как считывателя, так и дисплея.

Будьте осторожны, считыватель RFID должен быть подключен к выходу 3,3 В от Arduino Uno или он будет испорчен.

Так как дисплей также может работать на 3,3 В, мы подключаем VCC от обоих модулей к положительной шине макета. Затем эта шина подключается к выходу 3,3 В от Arduino Uno. После чего соединяем обе земли (GND) с шиной заземления макета. Затем мы соединяем GND-шину макета с Arduino GND.

OLED-дисплей → Arduino

VCC → 3.3V

GND → GND

SCL → Аналоговый Pin 5

SDA → Аналоговый Pin 4

RFID-ридер → Arduino

RST → Цифровой Pin 9

IRQ → Не соединен

MISO → Цифровой Pin 12

MOSI → Цифровой Pin 11

SCK → Цифровой Pin 13

SDA → Цифровой Pin 10

Модуль RFID-считывателя использует интерфейс SPI для связи с Arduino. Поэтому мы собираемся использовать аппаратные штыри SPI от Arduino UNO.

Вывод RST поступает на цифровой контакт 9. Контакт IRQ остается несвязным. Контакт MISO подключается к цифровому выходу 12. Штырь MOSI идет на цифровой контакт 11. Контакт SCK переходит на цифровой контакт 13, и, наконец, вывод SDA идет на цифровой вывод 10. Вот и все.

Считыватель RFID подключен. Теперь нам нужно подключить OLED-дисплей к Arduino, используя интерфейс I2C. Таким образом, вывод SCL на дисплее переходит к аналоговому выводу Pin 5 и SDA на дисплее к аналоговому Pin 4. Если теперь мы включим проект и разместим RFID-карту рядом с ридером, мы увидим, что проект работает нормально.

Считыватель RFID меток RC522

Сейчас на рынке доступно достаточно много моделей считывателей RFID меток, однако для нашего проекта мы выбрали модуль RC522, работающий по интерфейсу SPI. Это достаточно дешевое устройство, доступное для покупки практически во всех магазинах радиоэлектроники. Модуль RC522 имеет интерфейсы SPI, UART и I2C, однако по умолчанию он использует интерфейс SPI. Внешний вид данного модуля показан на следующем рисунке.

В этом проекте модуль RC522 подключен к плате Arduino, а плата Arduino подключена к компьютеру. Когда RFID метку подносят к модулю RC522, плата Arduino с его помощью считывает идентификатор RFID метки (ID number) и передает его в компьютер.

Шаг 3. Основные характеристики:

  • Входное напряжение: 3.3 В
  • Частота: 13,56 МГц

Прежде чем начать писать код, вам необходимо скачать библиотеку для этого датчика из этого хранилища.

Извлеките содержимое из zip-папки «rfid-master» и добавьте эту папку с библиотекой в существующие библиотеки Arduino IDE.

После этого перезапустите Arduino IDE.

Теперь наш Arduino готов воспринимать команды и выполнять их првильно.

Код Arduino будет представлен в конце этого урока. Скомпилируйте код и исправьте ошибки «опечатки» (если есть).

Теперь пришло время подключить наш Arduino к считывателю RFID. Ознакомьтесь с правильным подключением контактов ниже, а также воспользовавшись принципиальной схемой подлючения.

License

This is free and unencumbered software released into the public domain.

Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.

In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.

THE SOFTWARE IS PROVIDED «AS IS», WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.