Радиочастотная идентификация (Radio Frequency Identification, RFID) получает все большее распространение в современном мире. Эта технология использует электромагнитные волны радиочастотного диапазона для передачи данных. Простейшая система радиочастотной идентификации (RFID) состоит из 2-х компонентов: сама метка и считывающее ее устройство. Считывающее устройство для RFID меток состоит из радиочастотного модуля и антенны, с помощью которых генерируется электромагнитное поле высокой частоты. RFID метка является пассивным устройством, содержащим микрочип, который производит хранение и обработку информации.
В данной статье мы рассмотрим подключение модуля чтения RFID меток RDM6300 к плате Arduino Nano. Модуль чтения RFID (RFID Reader Module) меток RDM6300 работает на частоте 125 кГц – он может считывать информацию и записывать информацию (если они поддерживают функцию записи) на метки, работающие на частоте 125 кГц.
Ранее на нашем сайте мы уже рассматривали подключение к плате Arduino модулей чтения RFID меток MFRC522 и EM-18. Также на нашем сайте вы можете посмотреть все проекты, в которых использовалась радиочастотная идентификация.
Необходимые компоненты
- Плата Arduino Nano (купить на AliExpress).
- RDM6300 RFID Reader Module (модуль чтения RFID меток) (купить на AliExpress).
- 125 kHz Tags (метки, работающие с частотой 125 кГц).
- Макетная плата.
- Соединительные провода.
Модуль чтения RFID меток RDM6300 (EM4100)
Модуль RDM6300 (EM4100) предназначен для чтения и записи информации на метки, работающие на частоте 125 кГц. Он может использоваться в системах наблюдения и безопасности, персональной аутентификации, контроля доступа, цифровых игрушках и во многих других приложениях. Модуль RDM6300 представляет собой бесконтактную RFID плату, содержащую радиоприемник и встроенный микроконтроллер. Используя высокоэффективный алгоритм декодирования модуль может считывать RFID метки типа EM4100 и совместимые с ними метки. Модуль RDM6300 использует последовательную связь со скоростью 9600 бод (в логике TTL) для передачи данных от RFID меток, поэтому для считывания данных с данного модуля можно использовать любой микроконтроллер, имеющий UART (universal asynchronous receiver / transmitter — универсальный асинхронный приемопередатчик).
Назначение контактов (распиновка) модуля RDM6300 представлена в следующей таблице.
Название контакта | Назначение контакта |
5V | питающее напряжение |
GND | общий провод (земля) |
RX | контакт приема данных |
TX | контакт передачи данных |
ANT1 | контакт для подключения антенны |
ANT2 | контакт для подключения антенны |
Технические характеристики модуля чтения RFID меток RDM6300:
- рабочая частота: 125 кГц;
- скорость передачи данных: 9600 бод;
- интерфейс: RS232 с логикой TTL;
- рабочее напряжение: 5 В постоянного тока;
- рабочий ток: <50mA;
- расстояние приема (считывания) данных: 20~50mm;
- размеры (мм): 38.5 x 20;
- вес: 7 г.
Модуль чтения RFID меток RDM6300 по принципу действия очень похож на модуль EM-18 – оба они работают на частоте 125 кГц и поддерживают интерфейс RS232/TTL. А, к примеру, рабочая частота для другого популярного RFID модуля RC522 составляет 13,56 кГц.
Схема проекта
Схема подключения модуля чтения RFID меток RDM6300 к плате Arduino представлена на следующем рисунке.
Контакты 5V и GND модуля RDM6300 подключаются к контактам 5V и GND платы Arduino Nano, а контакт TX модуля RDM6300 подключен к контакту D6 платы Arduino Nano. Контакт RX модуля RDM6300 в нашем проекте не используется поскольку мы не будем передавать ему данные. Антенну можно подключить к контактам ANT1 и ANT2 модуля RDM6300 в любой полярности.
Внешний вид собранной на макетной плате конструкции проекта показан на следующем рисунке.
Объяснение программы для Arduino
Полный код программы приведен в конце статьи, здесь же мы кратко рассмотрим его основные фрагменты.
Начнем код программы мы с подключения заголовочного файла библиотеки rdm6300. Саму библиотеку можно скачать по следующей ссылке.
1 |
#include <rdm6300.h> |
Затем зададим (определим) контакт, который будет использоваться для чтения данных с модуля RDM6300.
1 |
#define RDM6300_RX_PIN 6 |
Далее внутри функции setup() инициализируем последовательную связь со скоростью 9600 бод (для целей отладки) и модуль чтения RFID меток.
1 2 3 4 5 6 |
void setup() { Serial.begin(9600); rdm6300.begin(RDM6300_RX_PIN); Serial.println("\nPlace RFID tag near the rdm6300..."); } |
Затем в функции loop() мы будем проверять находится ли рядом с модулем радиочастотная метка или нет. Если находится, то мы будем считывать ее номер и печатать его в окне монитора последовательной связи (Serial Monitor).
1 2 3 4 5 6 |
void loop() { if (rdm6300.update()) Serial.println(rdm6300.get_tag_id(), HEX); delay(10); } |
Код программы готов, можно приступать к проверке работоспособности проекта.
Тестирование работы модуля чтения RFID меток RDM6300
Когда аппаратная часть проекта будет у вас готова и программа загружена в плату Arduino, откройте окно монитора последовательной связи в Arduino IDE на скорости 9600. Поднесите RFID метку к антенне модуля и вы увидите что ее номер будет напечатан в окне монитора последовательной связи.
Более подробно работу проекта вы можете посмотреть на видео, приведенном в конце статьи.
Исходный код программы (скетча)
Скетч очень простой — надеемся что он не вызовет у вас затруднений.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <rdm6300.h> #define RDM6300_RX_PIN 2 #define READ_LED_PIN 13 Rdm6300 rdm6300; void setup() { Serial.begin(9600); pinMode(READ_LED_PIN, OUTPUT); digitalWrite(READ_LED_PIN, LOW); rdm6300.begin(RDM6300_RX_PIN); Serial.println("\nPlace RFID tag near the rdm6300..."); } void loop() { /* если номер метки не равен нулю, то функция update() возвратит true – значит к модулю поднесена корректная метка */ if (rdm6300.update()) Serial.println(rdm6300.get_tag_id(), HEX); digitalWrite(READ_LED_PIN, rdm6300.is_tag_near()); delay(10); } |
5 ответов к “Подключение модуля чтения RFID меток RDM6300 к Arduino”
Можно с помощью него копировать метки?
Да, поскольку он позволяет и считывать, и записывать метки
есть ли скетч для копирования меток?
Какого размера может быть контур, интересен максимальный размер и от чего это зависит (эл. мощность итд)
К сожалению я не знаю, не изучал подробно этот вопрос