Подключение RFID модуля RDM630 к Arduino Mega 2560
GeekElectronics » Arduino от А до Я » Подключение RFID модуля RDM630 к Arduino Mega 2560
Сегодня я пошагово опишу процесс подключения RFID модуля RDM630 к Arduino Mega 2560.
Данный модуль может быть использован для создания системы радиочастотной идентификации с использованием RFID чипов.
- Системы контроля и управления доступом
- Наблюдение за перемещением по объектам
- Инвентаризация на складах
- Электронные паспорта
- Транспортные платежи
- и т.д.
Для начала познакомлю вас с самим модулем RDM630.
Технические характеристики RFID модуля RDM630
- Назначение – чтение карт EM4100 и TK4100
- Напряжение питание модуля – 5 Вольт.
- Потребляемый ток- менее 50 мА
- Скорость передачи данных – 9600
- Рабочая частота – 125 кГц
- Интерфейс – RS232
- Дальность считывания – 50 мм (зависит от типа RFID чипа)
Datasheet RDM630
RDM630.pdf (83,0 KiB, 2 324 hits)
Комплект поставки RFID модуля RDM630
В комплект поставки входят:
Назначение выводов RFID модуля RDM630
На модуле расположены три разъема:
Назначение выводов P1:
- 1 – TX
- 2 – RX
- 3 – не используется
- 4 – GND
- 5 — +5 V
Назначение выводов P2:
- 1 – антенна — вывод 1
- 2 – антенна – вывод 2
Назначение выводов P3:
Подключение RFID модуля RDM630 к Arduino Mega 2560
Схема подключения достаточно проста и не имеет никаких заморочек. Единственное, что я изменил в стандартном варианте подключения – это перенес, с помощью библиотеки SoftwareSerial, пин передачи данных с RX вывода Arduino на 50-й дискретный пин. Это позволило не отключать RDM630 от Arduino при загрузке скетча.
- 1 пин (TX) RDM630 – к дискретному выводу 50 на Arduino
- 4 пин (GND) RDM630 – к GND на Arduino
- 5 пин (+5 V) RDM630 – к +5 V на Arduino
Получилось как-то так:
Проверочный скетч для работы с RFID модулем RDM630
В данном коде реализовано считывание данных с RFID чипов и вывод их в COM порт. Сразу уточню, что выводимая информация — это не код карты, а полностью все данные.
Весь код я прокомментировал, поэтому вопросов у вас возникнуть не должно.
int input;
String s;
SoftwareSerial RFIDSerial(50, 51); // RX, TX
void setup()
<
// Очищаем буфер
Serial.flush();
// Устанавливаем скорость работы с портом
Serial.begin(9600);
// Устанавливаем скорость работы с модулем RDM630
RFIDSerial.begin(9600);
s=»»;
>
void loop()
<
// если есть данные, то
if (RFIDSerial.available() > 0) <
// читаем блок данных с модуля RDM630 и заносим их в переменную input
input = RFIDSerial.read();
// присваиваем все считанные в переменную input значения переменной s, так как за 1 цикл loop мы получаем 1 значение, а их 12
s+=input; // то же самое, что и s=s+input;
// если длинна кода равна 26 символам (в памяти чипа можно разместить 26 байт информации), то
if (s.length()==26) <
// выводим данные
Serial.println(s);
// очищаем переменную
s=»»;
>
>
>
При поднесении RFID чипов к антенне модуля RDM630, в Мониторе порта мы увидим значения кодов RFID чипов:
На всех имеющихся у меня в наличии чипах первый символ в выводимых данных всегда был 2, а последний 3. По информации из документации, так будет абсолютно на всех картах.
Формат данных RFID
У китайцев я покупал RFID чипы, которые были выполнены в виде карт и брелков.
При покупке RFID чипов обратите внимание на их частоту. Она должна быть 125 кГц, а не 13,56 МГц или 860-930 МГц.
Сам RFID модуль RDM630 я покупал у китайцев на dx.com за $13.5.
Функциональные отличия RFID модулей серии RDM6XX
- RDM611 — Только для чтения карт TI 134.2KHz
- RDM630 — Только для чтения карт EM4100/TK4100
- RDM650 — Чтение и запись карт TK5557/5567
- RDM660 — Чтение и запись Hitags-256/2048 Hitags-карт
- RDM671 — Только для чтения карт EM4005/EM4105
- RDM680 – Чтение и запись карт EM4569/EM4469
На этом всё! Если возникнут вопросы – задавайте их в комментариях.
RFID Sensor Tutorial for Arduino, ESP8266 and ESP32
In this tutorial you learn everything you have to know about RFID for your next project with an Arduino, ESP8266 or ESP32 microcontroller.
After we learn the basics of a RFID system, we see how power and data is transferred between the RFID reader and the tag.
After the theory an example of an automated coffee counter shows you the RC522 module in action.
Table of Contents
What is RFID?
RFID stands for Radio-frequency identification and is an electronic communication technique mostly used to identify objects. Moreover RFID summaries all identification system which use radio frequency.
Typical use cases are:
- Identify books in a library
- Open a barrier only for specific cars
- Access employees to restricted areas using a RFID system to open doors.
The advantage compared to barcode is that there is no direct line of side required between RFID tag and reader.
Components in a RFID System with Microcontroller
In a general RFID setup there is an RFID reader and a tag (transponder) that should be identified. The following picture shows the different components in detail.
The reader consists of three parts. The radio frequency signal generator generates the electromagnetic field through a coil which is send out to power tags. There is also a receiver and signal detector to read the response of the tag The microcontroller is the head of the reader and controls the other components and further processes the information.
The tag has a transponder which receives the radio waves from the reader and also sends data back to the reader. The receiver circuit stores the energy in the tag to power the microcontroller. The microcontroller itself is connected with a memory where the information is stored which can be transmitted to the reader.
There are two fundamental different types of RFID systems:
- Passive system where tags do not have an internal source of power and therefore are powered from the RFID reader device by radio waves.
- Active system where tags are powered by a battery and can be read by a longer distance up to hundreds of meters.
The following table shows the differences of passive and active tags on different categories:
Comparison of Passive and Active RFID Systems
Criteria | Passive RFID | Active RFID |
---|---|---|
Tag Battery | No | Yes |
Tag Power Source | Energy transferred from the reader | Internal to tag |
Availability of Tag Power | Only within the field of an activated reader | Continuous |
Required Signal Strength from Reader to Tag | High (must power the tag) | Low (only to carry information) |
Available Signal Strength from Tag to Reader | Low | High |
Communication Range | Short or very short range (3m or less) | Long range (100m or more) |
Tag lifetime | Very long | Limited to battery life (depends on energy saving strategy) |
Typical tag size | Small | Large |
Multi-Tag Collection | Collects hundreds of tags within 3 meters from a single reader |
Collects 20 tags moving at 8 km/h or slower
Collects 20 tags moving at more than 160 km/h
Source: OECD (2008-06-18), “RFID Guidance and Reports”, OECD Digital Economy Papers, No. 150, OECD Publishing, Paris. http://dx.doi.org/10.1787/230334062186
Power Transmission for a RFID System
From the table you see that in a passive RFID system the tag has no internal power supply and therefore has to be powered from the reader. The reader is sending out an electromagnetic field through an antenna coil. This electromagnetic field is received from the coil of the tag’s transponder and creates an induction voltage which serves as power supply for the microchip on the tag and is stored inside the receiver circuit.
In case of an active RFID system there is no need for a power transmission because the tag itself has an internal power supply.
Data Transmission for a RFID System
After the tag is powered by the induction voltage of the RFID reader, the tag sends data to the reader via load manipulation. Load is switched on and off on the tag. Because the reader and tag are inductive coupled, a change in the load at the tag results in a change of the power consumption of the readers antenna. This change in consumption is represented as voltage drop and interpreted as 1 and 0.
An other data transmission approach is data transmission via backscattered coupling. The tag creates a second electromagnetic field with the power though the first field. This second field is received by reader and through changes in the second electromagnetic field, data is transmitted.
Normally the first data that is transmitted from the tag to the reader are the UID and the PICC type which identifies the tag.
- UID: The UID is the Unique Identifier of the tag for example: “BD 31 15 2B”. The UID is saved in the first memory block of the tag and read-only. Therefore the identifier can not be changed.
- PICC: Short for Proximity Integrated Circuit Card. This is the type of tag, like that car is a Ford. For example a frequently used RFID tag for Arduino or ESP8266 microcontrollers is the MIFARE 1KB which I also use in this tutorial.
RFID Frequency Bands
In general there are different frequency bands where the RFID application can operate. The following table shows the different frequency bands.
Bands | Regulations | Range | Data Speed | Remarks |
---|---|---|---|---|
120–150 kHz (LF) | Unregulated | 10 cm | Low | Animal identification, factory data collection |
13.56 MHz (HF) | ISM band worldwide | 10 cm–1 m | Low to moderate | Smart cards, ISO-non-compliant memory cards, ISO-compatible microprocessor cards |
433 MHz (UHF) | Short range devices | 1–100 m | Moderate | Defense applications, with active tags |
865–868 MHz (Europe) |
902–928 MHz (North America) UHF
RFID RC522 Module Setup with Microcontroller
In this tutorial I use the RC522 module as reader and also different tags which are compatible to that reader. Normally you can buy the reader with some tags as a package to make sure that the reader is able to identify the tag. It is important that the frequency is matching and that the reader supports the format of the tag.
The RC522 module is based on the Philips MF522-AN-on board and supports a RFID frequency of 13.56 MHz as well as the following tag formats: S50, S70 Ultralight, Pro, DESFire. The RC522 is connected to the Arduino or ESP8266 microcontroller via SPI which allows a transmission rate between reader and microcontroller up to 10 Mbit/s.
Как подключить RFID считыватель RC522 к Arduino
В этой статье мы рассмотрим подключение к Arduino считывателя карт и брелоков RFID RC522, работающего на частоте 13,56 МГц.
- Arduino (или совместимая плата);
- считыватель RFID RC522;
- беспроводная RFID метка (идёт в комплекте по ссылке выше) или бесконтактный билет на метро/наземный транспорт;
- макетная плата;
- соединительные провода (вот такие);
- компьютер с Arduino IDE.
Инструкция по подключению считывателя беспроводных радиометок RFID-RC522 к Arduino
1 Описание считывателяRFID RC522
Модуль RFID-RC522 выполнен на микросхеме MFRC522 фирмы NXP. Эта микросхема обеспечивает двухстороннюю беспроводную (до 6 см) коммуникацию на частоте 13,56 МГц.
Беспроводной модуль RFID-RC522
Микросхема MFRC522 поддерживает следующие варианты подключения:
Интерфейс | Скорость передачи |
---|---|
SPI (Serial Peripheral Interface, последовательный интерфейс для связи периферийных устройств) | до 10 Мбит/сек; |
двухпроводной интерфейс I 2 C | до 3400 кбод в режиме High-speed, до 400 кбод в режиме Fast; |
последовательный UART (аналог RS232) | до 1228,8 кбод. |
С помощью данного модуля можно записывать и считывать данные с различных RFID-меток: брелоков от домофонов, пластиковых карточек-пропусков и билетов на метро и наземный транспорт, а также набирающих популярность NFC -меток.
2 Схема подключения RFID-RC522 к Arduino
Подключим модуль RFID-RC522 к Arduino по интерфейсу SPI по приведённой схеме.
Схема подключения RFID-RC522 к Arduino по интерфейсу SPI
Питание модуля обеспечивается напряжением от 2,5 до 3,3 В. Остальные выводы подключаем к Arduino так:
Пин RC522 | Пин 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 имеет достаточно обширную функциональность. Познакомиться со всеми возможностями можно изучив её техническое описание (приложено внизу статьи). Мы же для знакомства с возможностями данного устройства воспользуемся одной из готовых библиотек, написанных для работы Arduino с RC522. Скачайте её и распакуйте в директорию Arduino IDE\libraries\
Установка библиотеки «rfid-master» для работы Arduino с RFID-метками
После этого запустите среду разработки Arduino IDE.
4 Скетч для считывания информации, записанной на RFID-метке
Теперь давайте откроем скетч из примеров: Файл Образцы MFRC522 DumpInfo и загрузим его в память Arduino.
Открываем скетч DumpInfo
Данный скетч определяет тип приложенного к считывателю устройства и считывает данные, записанные на RFID-метке или карте, а затем выводит их в последовательный порт.
Текст скетча достаточно хорошо прокомментирован.
Для более полного знакомства с библиотекой изучите файлы MFRC522.h и MFRC522.cpp из директории rfid-master.
5 Дамп данных с RFID-метки
Запустим монитор последовательного порта сочетанием клавиш Ctrl+Shift+M , через меню Инструменты или кнопкой с изображением лупы. Теперь приложим к считывателю билет метро или любую другую RFID-метку. Монитор последовательного порта покажет данные, записанные на RFID-метку или билет.
Считываем данные с билета на наземный транспорт и метро с помощью RFID
Например, в моём случае здесь зашифрованы уникальный номер билета, дата покупки, срок действия, количество оставшихся поездок, а также служебная информация. Мы разберём в одной из будущих статей, что же записано на карты метро и наземного транспорта.
Примечание
Да, с помощью модуля RFID-RC522 можно записать данные на билет метро. Но не обольщайтесь, каждая карта имеет неперезаписываемый счётчик циклов записи, так что «добавить» поездок себе на метро не получится – это сразу будет обнаружено и карта будет забракована турникетом :) А вот использовать билеты метро для записи на них небольших объёмов данных – от 1 до 4 кб – можно. И способы применения этому ограничены только вашей фантазией.