подключение RFID RC522 к Arduino Nano
Продолжаем изучение RFID RC522. Поговорим о подключении модуля к всем версиям Ардуино. Отличий в подключении UNO и Nano нет, но Nano удобнее подключать на плате прототипирования Breadboard SYB-400, поэтому начнём с неё.
RFID RC522 для считывания и записи на карты
RFID RC522 Arduino схема, подключение
Datasheet или описание от производителя
МОДУЛЬ РАБОТАЕТ ОТ НАПРЯЖЕНИЯ 3,3 ВОЛЬТ
Если вы подключили библиотеку RFID то по умолчанию для всех примеров там заданы вот такие параметры подключения.
Этот модуль работает на частоте 13,56 МГц и подключается к Ардуино по SPI интерфейсу.
В комплекте :
- Ридер(считыватель)
- Карта
- Брелок
Основные характеристики:
- микросхема MFRC522 производитель NXP;
- напряжение питания: 3,3 В;
- потребляемый ток: 13–26 мА;
- рабочая частота: 13,56 MГц;
- интерфейс: SPI, максимальная скорость передачи 10 МБит/с;
- размер: 40×60 мм;
- поддерживаемые типы карт: MIFARE S50, MIFARE S70, MIFARE UltraLight, MIFARE Pro, MIFARE DESfire
Назначение выводов интерфейса SPI:
SDA – выбор ведомого;
SCK –сигнал синхронизации;
MOSI – передача от master к slave;
MISO – передача от slave к master;
RST – вывод для сброса;
IRQ – вывод прерывания;
GND – земля;
Vcc –питание 3. 3 В.
Сигнал сброса RST – это сигнал, поступающий от цифрового выхода контроллера. При поступлении сигнала LOW происходит перезагрузка считывателя. Также ридер установкой на RST низкого уровня сообщает, что находится в режиме сна, для вывода модуля из режима сна необходимо подать на данный вывод сигнал HIGH.
Подключение модуля
RFID RC522 к плате Arduino NANOReset 9 RST
SS(SDA) 10 SDA
MOSI 11 MOSI
MISO 12 MISO
SCK 13 SCK
Подключение модуля
RFID RC522 к плате Arduino UNO
Reset 9 RST
SS(SDA) 10 SDA
MOSI 11 MOSI
MISO 12 MISO
SCK 13 SCK
Подключение модуля
RFID RC522 к плате Arduino MEGA
Reset 5 RST
SS (SDA) 53 SDA
MOSI 51 MOSI
MISO 50 MISO
SCK 52 SCK
Подключение модуля
RFID RC522 к плате Arduino Pro Mini
Reset RST
SS (SDA) SDA
MOSI MOSI
MISO MISO
SCK SCK
Как подключить модуль RC522 RFID и адаптер SD-карты к одной плате Arduino?
Я хочу сохранить журнал тега RFID на микро-карте SD, но на карте RFID и SD есть MOSI и MISO. Поэтому я хочу знать, как подключить RFID и SD карты к одному Arduino UNO.
arduino android-sdcard rfidПоделиться Источник ajit.

3 ответа
- Как получить UID из RFID в Arduino?
У меня есть модуль RFID-RC522 (MF-RC522), и я использую программу Arduino sketch. Чтобы использовать этот RFID, я скачал библиотеку Arduino MFRC522. И я запускаю пример кода библиотеки. Вот код. /* * MFRC522 — Library to use ARDUINO RFID MODULE KIT 13.56 MHZ WITH TAGS SPI W AND R BY COOQROBOT. *…
- RFID-RC522 не читает разные карты, принимает те карты, которые идут вместе с ним
Я получил RFID-RC522 вместе с двумя картами RFID. Я использую Arduino и пытаюсь читать карты. Я успешно прочитал те карты, которые были вместе с RFID-RC522. Но когда я пытаюсь прочитать другую карточку, значит, офисную карточку моего друга, тогда ничего не происходит. Спасибо за вашу помощь…
Поделиться ajit.jadhav 23 декабря 2016 в 07:33
0
Контакты с именами MOSI и MISO указывают на шину SPI. Там также должен быть pin-код с надписью SS, CS или аналогичный (slave select). вы можете подключить несколько ведомых устройств к одному ведущему и выбрать устройство, с которым вы хотите поговорить, используя этот логический уровень контактов.
Там должны быть тонны учебников и примеров в интернете.
Поделиться Piglet 22 декабря 2016 в 07:29
0
Вы можете подключить несколько ведомых устройств к одному и тому же экземпляру SPI, то есть к одним и тем же линиям MOSI, MISO и clock. Затем вы можете выбрать конкретное ведомое устройство на основе статуса вывода Slave Select(SS), подключенного к соответствующему ведомому устройству. Смотрите этот учебник , чтобы понять концепцию slave select. Вам нужно подключить один контакт(скажем, X) к SS линии SD и другой контакт(контакт Y) к SS линии RFID.
Не забывайте, что вы можете общаться только с одним устройством в данный момент времени. Вы должны переключиться между SD и RFID, изменив состояние контактов X и Y. скопируйте данные из RFID в память после включения SS для RFID, а затем скопируйте эти данные в SD, включив его SS.
См . страницу arduino uno , чтобы получить более подробную информацию о булавках.
Поделиться Nithin P 22 декабря 2016 в 11:53
- RFID RC522 Raspberry PI 2 Windows IOT
Я ищу способ использовать RFID RC522 на Raspberry Pi 2.0 на Windows IOT. Это, конечно, не официально совместимо… Официальный вариант (демонстрационная плата OM5577) стоит очень дорого во Франции (я не нашел ни одного реселлера, который продал бы его без большой стоимости доставки (общая…
- RFID-RC522 не считывает карту
У меня есть модуль RFID-RC522 (MF-RC522), и я использую программу Arduino sketch. Я скачал пример кода: /* * ——————————————————————————————————————— * Example sketch/program showing how to read data from a PICC to serial.
…
Похожие вопросы:
Arduino — играть MP3 с SD карты
У меня есть экран SD-карты от seeed studio, прикрепленный к моей плате Arduino Uno. У меня также есть карточка SD с файлом siren .MP3. Я хочу, чтобы моя доска Arduino воспроизводила файл MP3, но я…
Arduino: RFID RC522 останавливает чтение карты несколько раз
Я только что получил карту RC522 RFID для arduino и работаю с прилагаемым эскизом. MiFare RFID-RC522 То, на чем я застрял, — это понимание того, как приостановить эскиз во время чтения карты, чтобы…
Подключение RC522 RFID к Arduino Yun
Я пытаюсь подключить Мой RC522 RFID reader ( http://playground.arduino.cc/Learning/MFRC522 ) к моему Arduino Yun. К сожалению, это не работает, потому что соединение SPI, похоже, отличается от…
Как получить UID из RFID в Arduino?
У меня есть модуль RFID-RC522 (MF-RC522), и я использую программу Arduino sketch. Чтобы использовать этот RFID, я скачал библиотеку Arduino MFRC522. И я запускаю пример кода библиотеки. Вот код. /*…
RFID-RC522 не читает разные карты, принимает те карты, которые идут вместе с ним
Я получил RFID-RC522 вместе с двумя картами RFID. Я использую Arduino и пытаюсь читать карты. Я успешно прочитал те карты, которые были вместе с RFID-RC522. Но когда я пытаюсь прочитать другую…
RFID RC522 Raspberry PI 2 Windows IOT
Я ищу способ использовать RFID RC522 на Raspberry Pi 2.0 на Windows IOT. Это, конечно, не официально совместимо… Официальный вариант (демонстрационная плата OM5577) стоит очень дорого во Франции…
RFID-RC522 не считывает карту
У меня есть модуль RFID-RC522 (MF-RC522), и я использую программу Arduino sketch. Я скачал пример кода: /* *…
Два RFID RC522 Raspberry PI 2 Windows IOT
Что я должен изменить в классе из темы RFID RC522 Raspberry PI 2 Windows IOT, если я хочу подключить второй rfid-считыватель через SPI? Я подключил второй ss line к контакту SPI_CE1_N и reset line к. ..
Не удается подключить Arduino к RFID
Я использую A-Star 32U4 Micro Arduino и пытаюсь подключить мини-модуль кардридера RDM6300 — 125KHz. В данный момент я использую этот эскиз: #include <SoftwareSerial.h> // RFID | Nano // Pin 1…
Два RFID RC522 общаются друг с другом с помощью Arduino UNOs
Я пытаюсь заставить два независимых Arduino UNO общаться друг с другом с помощью двух RFID RC522. Один должен действовать как хозяин, а второй-как раб: Как я могу сделать один RC522 ведущим, а…
Используйте считыватель RFID с Raspberry Pi.
ⓘ Эта статья могла быть частично или полностью переведена с помощью автоматических средств. Приносим извинения за возможные ошибки.
Это руководство является второй частью файла, посвященного обнаружению электроники с помощью Raspberry Pi. Если вы не читали его, я советую вам обратиться к первому руководству по управлению светодиодом с помощью Raspberry Pi.
Будь то системы идентификации, управления запасами, оплаты или домашней автоматизации, чипы RFID используются все чаще и чаще.
В этом руководстве мы увидим, как читать карты RFID с помощью Raspberry Pi и считывателя RFID RC522.
В конце руководства вы сможете прочитать значок RFID, проверить, соответствует ли он ожидаемому, и зажечь зеленый или красный светодиод, в зависимости от результата. Все, что вам нужно сделать, это адаптировать этот базовый пример для проекта по вашему выбору!
Необходимое оборудование
Для выполнения этого урока вам потребуются следующие материалы:
Соберите RFID-считыватель RC522
Когда вы получаете RFID-модуль RC522, вы можете видеть, что он поставляется с набором 2 x 8 контактов. Поэтому первым делом нужно припаять 8 из этих контактов к считывателю RFID. Не паникуйте, паять очень просто!
Поэтому вы должны вставить PIN-коды в гнезда на RFID-карте и припаять их своим утюгом.
Вероятно, вы найдете прямые и изогнутые разъемы.
Если вы никогда не занимались сваркой, я рекомендую это отличное руководство по сварке от François на сайте framboise314.fr.
Подключите RFID-считыватель и светодиоды к Raspberry Pi
Прежде чем перейти к написанию кода, который позволит нам считывать значки RFID и управлять светодиодами, мы должны сначала подключить все компоненты к Raspberry Pi.
Напоминаем, что подключение и отключение компонентов всегда должно выполняться при выключенном Raspberry Pi.
Подключите RFID-считыватель RC522 к Raspberry Pi
Первый компонент, который мы собираемся подключить, — это считыватель RFID.
Для управления считывателем RFID мы будем использовать внешнюю библиотеку. К сожалению, это написано с портами GPIO, непосредственно введенными в код. Это означает, что мы не можем настроить их по-другому и поэтому мы вынуждены использовать точно такие же порты, как те, которые предоставлены в библиотеке.
Вот таблица, в которой перечислены порты считывателя и порт GPIO Raspberry Pi, к которому вам нужно будет его подключить.
Напоминаем, что вы найдете карту портов GPIO Raspberry Pi в первом руководстве этой серии.
Подключите светодиоды
После считывателя RFID подключим светодиоды к Raspberry Pi.
Мы собираемся сделать очень простую сборку. Каждый светодиод будет иметь свой анод (удлиненную ножку), подключенный к порту GPIO, а два светодиода будут иметь свой анод, подключенный к одному и тому же резистору, который сам подключен к порту типа заземления GPIO Raspberry Pi.
Таким образом, мы используем один резистор для двух светодиодов и ограничиваем количество кабелей.
В конце концов, как только RFID-карта и светодиоды подключены к Pi, у вас должна получиться сборка, похожая на эту.
Обратите внимание, что вы также можете подключить RC522 напрямую к Raspberry Pi без использования хлебной сети.Напишите программу для считывания значка RFID.
У нас есть функциональная схема, нам просто нужно активировать порты SPI Raspberry Pi, необходимые для использования считывателя RFID, и написать программу, которая будет считывать значок RFID.
Как и в предыдущем руководстве, программа будет написана на Python. Это руководство не является курсом Python, и мы лишь кратко объясним программу. Если вы хотите узнать больше о Python, мы опубликовали вводный курс программирования с помощью Python.
Активируйте протокол SPI Raspberry Pi
Перед написанием программы давайте включим протокол SPI на нашем Raspberry Pi, чтобы мы могли использовать модуль RFID.
Чтобы активировать его, просто запустите команду sudo raspi-config
, на Raspberry, затем выберите Interfacing Options
, SPI
, Yes
и наконец Finish
.
Установите библиотеку pi-rc522
Последнее предварительное условие: мы собираемся установить библиотеку Python3 «pi-rc522», которая позволяет вам управлять плеером RC522.
Мы будем использовать Pip3, менеджер библиотек для Python.
Вам просто нужно запустить команду:
sudo pip3 install pi-rc522
Напишите программу для чтения идентификатора RFID-значка
Каждый значок RFID имеет уникальный идентификатор. Считывая этот идентификатор и сравнивая его со списком авторизованных идентификаторов, мы можем узнать, авторизован ли значок.
Поэтому мы собираемся написать программу, позволяющую считывать уникальный идентификатор значка RFID.
Как и в предыдущем уроке, напишем программу в папке /home/pi/electronic
(если вы еще этого не сделали, создайте папку).
В этой папке создайте файл read_rfid_uid.py
и поместите в него следующий код:
#!/usr/bin/env python3.5
#-- coding: utf-8 --
import RPi.GPIO as GPIO #Importe la bibliothèque pour contrôler les GPIOs
from pirc522 import RFID
import time
GPIO.setmode(GPIO.BOARD) #Définit le mode de numérotation (Board)
GPIO.setwarnings(False) #On désactive les messages d'alerte
rc522 = RFID() #On instancie la lib
print('En attente d'un badge (pour quitter, Ctrl + c): ') #On affiche un message demandant à l'utilisateur de passer son badge
#On va faire une boucle infinie pour lire en boucle
while True :
rc522.
wait_for_tag() #On attnd qu'une puce RFID passe à portée
(error, tag_type) = rc522.request() #Quand une puce a été lue, on récupère ses infos
if not error : #Si on a pas d'erreur
(error, uid) = rc522.anticoll() #On nettoie les possibles collisions, ça arrive si plusieurs cartes passent en même temps
if not error : #Si on a réussi à nettoyer
print('Vous avez passé le badge avec l'id : {}'.format(uid)) #On affiche l'identifiant unique du badge RFID
time.sleep(1) #On attend 1 seconde pour ne pas lire le tag des centaines de fois en quelques milli-secondes
После того, как файл был сохранен, он разрешается для выполнения с помощью команды:
sudo chmod +x /home/pi/electronic/read_rfid_uid.py
Теперь мы можем запустить программу, вызвав ее с помощью команды:
/home/pi/electronic/read_rfid_uid.py
Каждый раз, когда вы проводите RFID-значок перед считывателем, будет отображаться его уникальный идентификатор!
Напишите программу, которая показывает, действителен ли значок.

Теперь, когда мы можем прочитать уникальный идентификатор значка, все, что нам нужно сделать, это адаптировать предыдущий код для сравнения считанного идентификатора с идентификатором, записанным в программе.
Поэтому мы собираемся немного изменить предыдущую программу, чтобы она сравнивала считанный uid с записанным в программе и зажигала красный или зеленый светодиод в зависимости от результата.
Скопируйте предыдущий файл в новый файл verify_rfid.py
и измените его для кода ниже:
Отредактируйте строку RFID_UID
поставить идентификатор вашей RFID-метки!
#!/usr/bin/env python3.5
#-- coding: utf-8 --
import RPi.GPIO as GPIO #Importe la bibliothèque pour contrôler les GPIOs
from pirc522 import RFID
import time
GPIO.setmode(GPIO.BOARD) #Définit le mode de numérotation (Board)
GPIO.setwarnings(False) #On désactive les messages d'alerte
LED_RED = 3 #Définit le numéro du port GPIO qui alimente la led rouge
LED_GREEN = 5 #Définit le numéro du port GPIO qui alimente la led verte
RFID_UID = [21, 35, 5, 43, 57] #Définit l'UID du badge RFID
#Définit la fonction permettant d'allumer une led
def turn_led_on (led) :
GPIO.
setup(led, GPIO.OUT) #Active le contrôle du GPIO
GPIO.output(led, GPIO.HIGH) #Allume la led
#Définit la fonction permettant d'éteindre une led
def turn_led_off (led) :
GPIO.setup(led, GPIO.OUT) #Active le contrôle du GPIO
GPIO.output(led, GPIO.LOW) #Eteind la led
#Définit la fonction permettant d'allumer la rouge et éteindre la verte
def turn_red_on () :
turn_led_off(LED_GREEN) #Eteind la led verte
turn_led_on(LED_RED) #Allume la led rouge
#Définit la fonction permettant d'allumer la verte et éteindre la rouge
def turn_green_on () :
turn_led_off(LED_RED) #Eteind la led rouge
turn_led_on(LED_GREEN) #Allume la led verte
rc522 = RFID() #On instancie la lib
print('En attente d'un badge (pour quitter, Ctrl + c): ') #On affiche un message demandant à l'utilisateur de passer son badge
#On va faire une boucle infinie pour lire en boucle
while True :
rc522.wait_for_tag() #On attnd qu'une puce RFID passe à portée
(error, tag_type) = rc522.request() #Quand une puce a été lue, on récupère ses infos
if not error : #Si on a pas d'erreur
(error, uid) = rc522.
anticoll() #On nettoie les possibles collisions, ça arrive si plusieurs cartes passent en même temps
if not error : #Si on a réussi à nettoyer
if RFID_UID == uid :
print('Badge {} autorisé !'.format(uid))
turn_green_on()
else :
print('Badge {} interdit !'.format(uid))
turn_red_on()
time.sleep(1) #On attend 1 seconde pour ne pas lire le tag des centaines de fois en quelques milli-secondes
Все, что вам нужно сделать, это запустить программу и протестировать!
Затем вы можете адаптировать код для своих собственных проектов, таких как создание умного замка или даже музыкального автомата с использованием RFID-меток!
Для информации вы можете получить весь код этого руководства на Github Raspbian France.
В следующем уроке мы увидим, как управлять серводвигателем с помощью Raspberry Pi!
Введение в RFID. RFID-модуль RC522 на базе MFRC522… | Руту С.

RFID-модуль RC522 на базе микросхемы MFRC522 от NXP — один из самых недорогих RFID-модулей. Обычно он поставляется с меткой RFID-карты и меткой для брелка с памятью 1 КБ. И, что лучше всего, он может писать теги.
Модуль RFID-считывателя RC522 предназначен для создания электромагнитного поля 13,56 МГц, которое он использует для связи с RFID-метками (стандартные метки ISO 14443A).Считыватель может связываться с микроконтроллером через 4-контактный последовательный периферийный интерфейс (SPI) с максимальной скоростью передачи данных 10 Мбит / с. Он также поддерживает связь по протоколам I2C и UART.
Модуль имеет вывод прерывания. Это удобно, потому что вместо того, чтобы постоянно спрашивать модуль RFID, «есть ли карта в поле зрения?» «, Модуль предупредит нас, когда метка окажется поблизости.
Рабочее напряжение модуля составляет от 2,5 до 3,3 В, но логические выводы допускают напряжение 5 В, поэтому его можно легко подключить к Arduino или любому логическому микроконтроллеру 5 В без использования преобразователя логического уровня.
Модуль RC522 имеет в общей сложности 8 контактов, соединяющих его с внешним миром. Подключения следующие:
VCC обеспечивает питание для модуля. Это может быть от 2,5 до 3,3 вольт. Его можно подключить к выходу 3,3 В от Arduino.
RST — это вход для сброса и отключения питания. Когда этот вывод становится низким, включается принудительное отключение питания. Это отключает все внутренние приемники тока, включая генератор, а входные контакты отключаются от внешнего мира.По нарастающему фронту модуль сбрасывается.
GND является контактом заземления и должен быть подключен к контакту GND на Arduino.
IRQ — это вывод прерывания, который может предупреждать микроконтроллер, когда RFID-метка приближается к нему.
Вывод MISO / SCL / Tx действует как Master-In-Slave-Out, когда включен интерфейс SPI, действует как последовательные часы, когда включен интерфейс I2C, и действует как последовательный вывод данных, когда включен интерфейс UART.
MOSI (Master Out Slave In) — это вход SPI для модуля RC522.
SCK (последовательные часы) принимает тактовые импульсы, предоставляемые мастером шины SPI, то есть Arduino.
Вывод SS / SDA / Rx действует как сигнальный вход, когда включен интерфейс SPI, действует как последовательные данные, когда включен интерфейс I2C, и действует как последовательный ввод данных, когда включен интерфейс UART. Этот штифт обычно маркируется заключением штифта в квадрат, чтобы его можно было использовать в качестве ориентира для идентификации других штифтов.
Чтобы начать подключение Arudino, подключите вывод VCC на модуле к 3.3 В на Arduino и вывод GND на землю. Вывод RST может быть подключен к любому цифровому выводу на Arduino. В данном случае он подключен к цифровому выводу №5.
Каждая плата Arduino имеет разные выводы SPI, которые должны быть подключены соответствующим образом. Каждая плата Arduino имеет разные контакты SPI, которые должны быть подключены соответствующим образом.
Подключение модуля чтения и записи RFID RC522 к Arduino UNO
Существует библиотека под названием MFRC522 library, которая упрощает чтение и запись в RFID-метки.После установки библиотеки откройте подменю Примеры и выберите MFRC522> Пример эскиза DumpInfo.
Этот скетч не будет записывать данные в тег. Он просто сообщает нам, удалось ли ему прочитать тег, и отображает некоторую информацию о нем. Следует убедиться, что RST_PIN правильно инициализирован.
Теперь скетч загружен и открывается Serial Monitor. При приближении метки к модулю это видно на мониторе.
Отображает всю полезную информацию о теге, включая уникальный идентификатор тега (UID), размер памяти и всю память размером 1 КБ.
Память 1 КБ тега организована в 16 секторов (от 0 до 15). Каждый сектор дополнительно делится на 4 блока (блоки от 0 до 3). Каждый блок может хранить 16 байтов данных (от 0 до 15).
16 секторов x 4 блока x 16 байтов данных = 1024 байта = 1 КБ памяти
Вся память размером 1 КБ с секторами, блоками и данными выделена ниже.
Трехмерное представление макета карты памяти MIFARE Classic 1K
Блок 3 каждого сектора называется концевым звеном сектора и содержит информацию, называемую битами доступа, для предоставления доступа на чтение и запись к оставшимся блокам в секторе.Это означает, что только нижние 3 блока (блоки 0, 1 и 2) каждого сектора фактически доступны для хранения данных. Также блок 0 сектора 0 известен как блок производителя / данные производителя, содержащий данные производителя IC и уникальный идентификатор (UID). Блок производителя выделен красным ниже.
В этом эскизе будет показана базовая демонстрация записи пользовательских данных в RFID-метку.
Скетч начинается с включения библиотеки MFRC522 и SPI, определения контактов Arduino, к которым подключен RC522, и создания экземпляров объектов считывателя MFRC522.Затем необходимо определить блок, в котором мы будем хранить данные. Здесь выбран блок 2 сектора 0, поскольку запись в блок «концевик сектора» может сделать блок непригодным для использования. Затем определяется массив из 16 байтов с именем blockcontent [16], который содержит сообщение для записи в блок. Затем необходимо определить массив из 18 байтов с именем readbackblock [18]. Это можно использовать для обратного чтения записанного содержимого. Для метода MIFARE_Read в библиотеке MFRC522 требуется буфер размером не менее 18 байтов для хранения 16 байтов блока.
Функция In loop: сначала выполняется сканирование, чтобы увидеть, есть ли карта в поле зрения, если да, эта карта выбирается для записи и чтения.
Проверить успешность операции можно с помощью специальной функции, называемой readBlock (), которая снова принимает два параметра: один — номер блока, а другой — массив для хранения содержимого блока. Наконец, содержимое массива readbackblock с использованием цикла for распечатывается и отображается на последовательном мониторе.
Вывод на серийный монитор будет выглядеть следующим образом.
Основы RC522 и PN532 RFID: 10 шагов
Процедура запуска включает следующие обязательные шаги:
· Отправьте строку инициализации: это характерно для интерфейса UART. В руководстве указано, что интерфейс UART активируется при пятом нарастающем фронте, обнаруженном на интерфейсе. Рекомендуется отправлять 0x55, 0x55, 0x00, 0x00, 0x00, 0x00. По большей части просто должно быть достаточное количество символов с нарастающими фронтами, и они не должны выглядеть как преамбула команды (00 00 FF).
· Пробуждение модуля: в руководстве пользователя указано, что модуль инициализируется в своего рода спящем состоянии, которое называется «LowVbat». Чтобы выйти из этого состояния, нам нужно отправить команду «SAMConfiguration».
PN532 ожидает, что команды будут отправлены в определенном формате сообщения, который включает в себя преамбулу, сообщение и постамбулу. Ответные сообщения имеют тот же формат. Командные и ответные сообщения включают в себя TFI (идентификатор кадра) и версию команды. Команда использует TFI 0xD4, а ответ использует 0xD5.Версии команд различаются, но ответ всегда будет увеличивать версию команды и возвращать ее в байте, следующем за TFI. Такая согласованность позволяет легко сканировать ответные сообщения на предмет соответствующей информации.
Каждое командное сообщение (следующее за преамбулой) состоит из длины сообщения, дополнения до 2 длины сообщения, TFI, команды, данных, контрольной суммы и постамбулы. Программное обеспечение создает отдельные команды, а затем вызывает процедуру, которая вычисляет контрольную сумму и добавляет постамблю.
Формат сообщения для ответа аналогичен формату команды. Типичный ответ будет включать ACK (00 00 FF 00 FF 00), за которым следует конкретный ответ на команду. Каждый ответ на команду начинается с преамбулы 00 00 FF. В ответе также должен быть байт TFI D5, за которым следует номер команды, увеличенный на 1. Для нашей команды «SAMConfiguration» (14) это будет 15. Команда «SAMConfiguration» получает следующий ответ: 00 00 FF 00 FF 00 00 00 FF 02 FE D5 15 16 00.
Есть и другие специфичные для модуля команды, которые можно отправлять, но они не нужны для этого приложения. Однако я включил подпрограмму, которую можно вызвать для получения номера версии прошивки. Типичный ответ (после ACK и преамбулы) будет: 06 FA D5 03 32 01 06 07 E8 00. «01 06 07» указывает номер версии прошивки 1.6.7.
Модуль считывателя карт RFID Mifare 13,56 МГц RC522 [MFRC-522]
Описание
Mifare RC522 — это высокоинтегрированный считыватель карт RFID, работающий бесконтактно 13.Связь 56 МГц, разработанная NXP как микросхема чтения и записи с низким энергопотреблением, низкой стоимостью и компактными размерами, является лучшим выбором при разработке интеллектуальных счетчиков и портативных портативных устройств.
MF RC522 использует усовершенствованную систему модуляции, полностью интегрированную на частоте 13,56 МГц со всеми видами позитивных протоколов бесконтактной связи. Поддержка ответного сигнала, совместимого с 14443A. DSP обрабатывает кадры ISO14443A и исправляет ошибки. Кроме того, он также поддерживает быстрое шифрование CRYPTO1 для проверки продуктов серии Mifare.MFRC522 поддерживает более высокую скорость бесконтактной связи серии Mifare, скорость дуплексной связи до 424 кбит / с. Как новый член семейства RFID 13,56 МГц, MF RC522 имеет много общего с MF RC5200 и MF RC530, а также имеет больше новых функций.
Этот модуль можно установить непосредственно в портативные устройства для массового производства. Модуль использует источник питания 3,3 В и может напрямую связываться с любой платой процессора, подключаясь по протоколу SPI, что обеспечивает надежную работу, высокое расстояние чтения.
Спецификация- Название модуля: MF522-ED
- Рабочий ток : 13 — 26 мА / 3,3 В пост. Тока
- Ток в режиме ожидания : 10 — 13 мА / 3,3 В пост. Тока
- Ток в спящем режиме : <80 мкА
- Пиковый ток : <30 мА
- Рабочая частота : 13,56 МГц
- Расстояние считывания карты : 0 ~ 60 мм (карта Mifare1)
- Протокол : SPI
- Скорость передачи данных : 10 Мбит / с Макс.
- Поддерживаемые типы карт: Mifare1 S50, Mifare1 S70, Mifare UltraLight, Mifare Pro, Mifare Desfire
- Размер : 40 мм × 60 мм
- Рабочая температура : -20—80 градусов
- Температура хранения : -40—85 градусов
- Влажность : соответствующая влажность 5% —95%
- Модуль RC522 x 1
- Карта метки x 1
- Модуль синей бирки x1
- Заголовок штифта x 2
RC522 RFID — ESPHome
Компонент rc522
позволяет использовать контроллеры RFID RC522
(техническое описание, Али Экспресс)
с ESPHome.ESPHome может считывать UID тега из него, каждый тег RFID имеет уникальный
Значение UID. Каждый известный тег может быть связан с двоичным датчиком, или вы можете напрямую использовать информацию тега.
См. Раздел «Настройка тегов» для получения информации о том, как настроить отдельные двоичные датчики для этого компонента.
RC522 поддерживает протоколы связи SPI, I²C и UART, ESPHome может использовать SPI или I²C.
Компонент / концентратор
Если у вас есть модуль, подобный изображенному выше, его можно использовать только в режиме SPI (если не взломать) и в вашей конфигурации должна быть шина SPI с набором miso_pin и mosi_pin .
Если у вас есть RC522, который обменивается данными через I²C, как в стеке M5, тогда вам необходимо настроить шину I²C.
По SPI
Компонент rc522_spi
позволяет использовать контроллеры RFID RC522 с ESPHome. Этот компонент является глобальным центром, который
устанавливает соединение с RC522 через SPI (также возможно через I²C). С помощью
Бинарные датчики RC522 вы можете затем создать отдельные бинарные датчики, которые отслеживают,
RFID-метка в настоящее время обнаруживается RC522.
spi: rc522_spi: cs_pin: GPIO15 binary_sensor: - платформа: rc522 uid: 74-10-37-94 имя: «RFID-метка RC522»
Переменные конфигурации:
cs_pin ( Требуется , схема контактов): вывод на ESP, который находится в строке выбора микросхемы. подключен к.
spi_id ( Необязательно , ID): вручную укажите идентификатор компонента SPI, если хотите использовать несколько шин SPI.
on_tag ( Дополнительно , Автоматизация): автоматизация, выполняемая при чтении тега.Видеть on_tag Действие.
reset_pin ( Дополнительно , схема контактов): контакт, подключенный к линии RST. Некоторые тесты показывает, что RC522 без этого работает нормально.
update_interval ( Необязательно , время): продолжительность каждого сканирования на RC522. Это влияет на продолжительность, в течение которой отдельные бинарные датчики остаются активными при обнаружении. Если устройство не будет найдено в течение этого временного окна, оно будет помечено как отсутствующее.По умолчанию
1 с
.id ( Необязательно , ID): вручную укажите идентификатор для этого компонента.
Более I²C
Компонент rc522_i2c
позволяет использовать контроллеры RFID RC522 с ESPHome. Этот компонент является глобальным центром, который
устанавливает соединение с RC522 через I²C (также возможно через SPI). С помощью
Бинарные датчики RC522 вы можете затем создать отдельные бинарные датчики, которые отслеживают,
RFID-метка в настоящее время обнаруживается RC522.
i2c: rc522_i2c: binary_sensor: - платформа: rc522 uid: 74-10-37-94 имя: «RFID-метка RC522»
Переменные конфигурации:
адрес ( Дополнительно , int): вручную укажите адрес I²C датчика. По умолчанию
0x28
.i2c_id ( Дополнительно , ID): вручную укажите идентификатор компонента I²C, если хотите использовать несколько шин I²C.
on_tag ( Дополнительно , Автоматизация): автоматизация, выполняемая при чтении тега.Видеть on_tag Действие.
reset_pin ( Дополнительно , схема контактов): контакт, подключенный к линии RST. Некоторые тесты показывает, что RC522 без этого работает нормально.
update_interval ( Необязательно , время): продолжительность каждого сканирования на RC522. Это влияет на продолжительность, в течение которой отдельные бинарные датчики остаются активными при обнаружении. Если устройство не будет найдено в течение этого временного окна, оно будет помечено как отсутствующее.По умолчанию
1 с
.id ( Необязательно , ID): вручную укажите идентификатор для этого компонента.
on_tag
Действие Эта автоматизация срабатывает, когда модуль RC522 отвечает тегом. Обратите внимание, что это
может вызываться довольно часто (с интервалом update_interval
), поскольку запускается повторно
если тег перечитывается много раз.
Параметр x
, который предоставляет этот триггер, имеет тип std :: string
и является UID тега в формате 74-10-37-94
.В приведенной ниже конфигурации, например, будет опубликован идентификатор тега в теме MQTT rc522 / tag
.
rc522_spi: # или rc522_i2c # ... on_tag: тогда: - mqtt.publish: тема: rc522 / tag полезная нагрузка:! lambda 'return x;'
Событие сканирования тега также может быть отправлено в компонент тега Home Assistant. с помощью homeassistant.tag_scanned Action.
rc522_spi: # или rc522_i2c # ... on_tag: тогда: - homeassistant.tag_scanned:! lambda 'return x;'
rc522
двоичный датчик Платформа бинарных датчиков rc522
позволяет отслеживать, есть ли RFID-метка с заданной
уникальный идентификатор ( uid
) в настоящее время определяется RC522 или нет.
# Пример записи конфигурации spi: clk_pin: D0 miso_pin: D1 mosi_pin: D2 rc522_spi: # или rc522_i2c cs_pin: D3 update_interval: 1 с binary_sensor: - платформа: rc522 uid: 74-10-37-94 имя: «RFID-метка RC522»
Переменные конфигурации:
uid ( Обязательно , строка): уникальный идентификатор RFID-метки. Это список, разделенный дефисами шестнадцатеричных значений. Например
74-10-37-94
.имя ( Обязательно , строка): имя двоичного датчика.
id ( Необязательно , ID): вручную укажите идентификатор, используемый для генерации кода.
Все остальные опции от двоичного датчика.
Настройка тегов
Чтобы настроить бинарные датчики для определенных RFID-меток, вы сначала должны знать их уникальные идентификаторы. Чтобы получить это id, сначала настройте простую конфигурацию RC522 без каких-либо двоичных датчиков, как указано выше.
Когда ваш код запущен и вы приближаетесь к RC522 с RFID-меткой, вы должны увидеть такое сообщение:
Обнаружен новый тег '74-10-37-94 '
Затем скопируйте этот идентификатор и создайте запись binary_sensor
, как в примере конфигурации.Повторите этот процесс для
каждый тег.
См. Также
Сопряжение модуля считывателя RFID MFRC522 RC522 с Arduino
В этом руководстве мы узнаем, как сопрягать считыватель RFID RC522 с Arduino и использовать карту RFID MIFARE Classic 1K и брелок. Модуль RC522 основан на ИС считывающего / записывающего устройства RFID MFRC522 компании NXP, работающей на частоте 13,56 МГц. Мы узнаем, как интерфейс считывателя RFID-карт Arduino RC522 работает с парой тестовых кодов.
Введение
Если вы соблюдаете законы о транспортных средствах в некоторых странах, системы электронного сбора платы за проезд (ETC) становятся обязательными.В ETC сборы за проезд за автомобиль автоматически вычитаются, как только автомобиль подъезжает к будке. Нет необходимости платить наличными или стоять в очереди.
Это одно из блестящих приложений RFID или системы радиочастотной идентификации. Возможно, вы видели другие подобные приложения RFID, такие как бесконтактные платежи и система автоматической проверки на супермаркетах, контроль доступа в банках и офисах, отслеживание товаров на складах и т. Д.
Все эти и многие другие приложения используют RFID Технология.
Взгляд назад на RFID
RFID — это сокращение от радиочастотной идентификации. Как следует из названия, RFID использует электромагнитные волны на радиочастоте для передачи данных. Простая система RFID состоит всего из двух компонентов: транспондера RFID и приемопередатчика RFID.
Транспондер RFID обычно представляет собой карту, бирку, брелок или наклейку, в то время как приемопередатчик RFID — это устройство чтения / записи, способное считывать и записывать данные с / на транспондер RFID.
Кроме того, считыватель RFID имеет антенну для излучения высокочастотных электромагнитных волн.RFID-метка также содержит антенну и IC для хранения данных. Когда RFID-метка приближается к высокочастотным электромагнитным волнам от антенны считывающего устройства, ее антенна возбуждает питание IC в метке.
Затем ИС подтверждает информацию, хранящуюся в ней, с помощью обратного радиосигнала.
Краткая информация о модуле RFID RC522
После введения давайте погрузимся в важный компонент этого проекта — модуль RFID RC522. Это недорогой модуль считывания RFID на основе MFRC522 RFID IC от NXP.
Микросхема MFRC522 поддерживает широкий спектр RFID-меток, таких как MIFARE 1K, MIFARE 4K, MIFARE Mini и другие карты и метки на основе протокола ISO / IEC 14443.
Работает на частоте 13,46 МГц, рабочий диапазон до 50 мм. Микросхема MFRC522 поддерживает три типа последовательной связи с хостом (микроконтроллер, такой как Arduino). Это:
Содержимое комплекта
Комплект считывателя RFID RC522 состоит из модуля считывания RFID RC522, карты RFID, брелока RFID и пары штекерных разъемов для пайки.Как RFID-метки, то есть RFID-карта и RFID-брелок в комплекте, совместимы с метками MIFARE 1K (оба имеют 1 КБ памяти).
Модуль считывания RFID RC522 состоит из MFRC522 IC, кварцевого генератора 27,12 МГц, антенны, встроенной в печатную плату, и поддерживающих пассивных компонентов для излучения электромагнитного поля 13,56 МГц.
Важно помнить, что MFRC522 IC работает при напряжении питания от 2,5 В до 3,3 В, но контакты связи устойчивы к 5 В.Итак, напряжение источника питания должно быть 3,3 В, но вы можете напрямую подключить выводы данных к Arduino.
Распиновка RC522
На следующем изображении показана распиновка модуля считывателя RFID RC522. Несмотря на то, что мы собираемся использовать интерфейс SPI для подключения к Arduino, я также показал контакты UART и I 2 C.
Номер контакта | Имя контакта | Описание |
1 | VCC | 3.Вывод питания 3 В |
2 | RST | Вывод сброса. Когда LOW, сбрасывает MFRC522 IC. |
3 | GND | Земля |
4 | IRQ | Контакт прерывания. Прервать хост-устройство (микроконтроллер). |
5 | MISO / SCL / TX | Этот вывод действует как MISO в SPI, SCL в I 2 C и TX в UART |
6 | MOSI | MOSI | Pin .
7 | SCK | Вывод синхронизации SPI. |
8 | SS / SDA / RX | Этот вывод действует как SS в SPI, SDA в I 2 C и RX в UART |
Терминология
Документация по RFID-модулю MFRC522. Это:
PCD — сокращение от Proximity Coupling Device. Это не что иное, как модуль считывания RFID на базе микросхемы MFRC522.
PICC — сокращение от Proximity Integrated Circuit Card — это RFID-карта или метка, построенная с использованием протокола ISO / IEC 14443, такого как MIFARE или NTAG.
Интерфейс считывателя карт RFID Arduino RC522
Теперь, когда мы немного познакомились с ИС считывателя RFID MFRC522 и модулем считывателя RFID RC522, давайте приступим к интерфейсу считывателя карт RFID Arduino RC522. Как упоминалось ранее, MFRC522 поддерживает интерфейсы SPI, UART и I 2 C.
Но SPI — самый быстрый из трех со скоростью передачи данных до 10 Мбит / с.Итак, в этом проекте мы увидим, как связать RFID-модуль RC522 с Arduino с помощью SPI.
Переходя к SPI Arduino, вместо использования программного SPI с битовой синхронизацией мы будем использовать аппаратный SPI. Это означает, что контакты SPI в Arduino фиксированы (по крайней мере, для MOSI, MISO и SCK).
В следующей таблице показаны все соединения между Arduino и модулем RFID-считывателя RC522.
RC522 RFID-считыватель | Arduino UNO / Nano | Arduino Mega |
RST | 9 | 53 |
MOSI | 11 | 51 |
MISO MISO | 12 | 50 |
SCK | 529 9045 9 900 9 900 9 900 9 900 9 900 9 9 455 Вы можете настроить выводы RST и SCK в Arduino на любой цифровой вывод ввода-вывода.