Вторник, 02 апреля 2019 15:21

Доступ с использованием RFID и Arduino

Оцените материал
(2 голосов)

В этом руководстве мы разберем принцип работы считывателей RFID в паре с Arduino.

 

Шаг 1. Компоненты

Нам понадобятся 3 вещи – плата Ардуино, RFID считыватель и RFID карта.

  1. Arduino UNO
  2. RFID считыватель и карта доступа

 

Шаг 2. Предыстория

Что такое считыватель RFID?

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

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

Вы можете использовать систему RFID, для открытия двери. Например, только лицо, имеющее правильную информацию на своей карте, может войти. Система RFID использует:

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

RFID Cardpic

>> двусторонний радиопередатчик-приемник, считыватель, который отправляет сигнал на метку и считывает её ответ.

sku 403052 1

 

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

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

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

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

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

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

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

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

 

Шаг 4. Контакты для подключения Arduino Uno

SDA------------------------Digital 10

SCK------------------------Digital 13

MOSI----------------------Digital 11

MISO----------------------Digital 12

IRQ------------------------unconnected

GND-----------------------GND

RST------------------------Digital 9

3.3V------------------------3.3V (Не соединяйте с 5V)

Mifare bb

 

Шаг 5. Чтение данных из метки RFID

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

serial monitor1

Затем откройте последовательный монитор. Вы должны увидеть что-то вроде скриншота ниже:

serial monitor2

Приложите RFID-карту или брилок к считывателю. До момента пока вся информация не отобразится.

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

У вас есть объем в 1024 байта для хранения данных, разделенных на 16 секторов, и каждый сектор защищен двумя разными ключами, A и B.

Запишите свою UID-карту, потому что она понадобится вам позже.

 

Шаг 6. Демонстрация.

Приложите карту, которую вы выбрали для предоставления доступа, и вы увидите:

serial monitor3

Если вы приблизите другой тег с другим UID, появится сообщение об отказе:

serial monitor4

 

Шаг 7. Итоги.

В приведенном выше фрагменте кода вам необходимо изменить if (content.substring(1) == “REPLACE WITH YOUR UID”) и ввести UID-карту, которую вы записали ранее.

/*
 * 
 * All the resources for this project: https://www.hackster.io/Aritro
 * Modified by Aritro Mukherjee
 * 
 * 
 */
 
#include 
#include 
 
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.
 
void setup() 
{
  Serial.begin(9600);   // Initiate a serial communication
  SPI.begin();      // Initiate  SPI bus
  mfrc522.PCD_Init();   // Initiate MFRC522
  Serial.println("Approximate your card to the reader...");
  Serial.println();

}
void loop() 
{
  // Look for new cards
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }
  //Show UID on serial monitor
  Serial.print("UID tag :");
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  Serial.println();
  Serial.print("Message : ");
  content.toUpperCase();
  if (content.substring(1) == "BD 31 15 2B") //change here the UID of the card/cards that you want to give access
  {
    Serial.println("Authorized access");
    Serial.println();
    delay(3000);
  }
 
 else   {
    Serial.println(" Access denied");
    delay(3000);
  }
} 

Author

Bender

Я поделюсь с тобой всеми знаниями, которые доступны мне.

Комментарии (0)

There are no comments posted here yet

Оставьте свой комментарий

  1. Posting comment as a guest. Sign up or login to your account.
Вложения (0 / 3)
Share Your Location

О нас

Основой деятельностью портала является показ и объяснение что представляет собой выражени "Робот", "Робототехника", "Законы робототехники", "Мехатроника", "Искусственный интеллект(ИИ)". 

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