RFID модуль RC522 чтение запись
Сегодняшний рассказ будет про RFID RC522. Как всегда по традиции, собрать работающий макет на rfid считывателе rc522 можно будет за 20-30 минут, без пайки и каких-нибудь знаний в программировании.
Использовать модуль можно например для работы с эл. замком или для проверки «свой/чужой», записи на карту своих данных, но об этом разговор будет в другой статье. Эта же про сам модуль RFID RC-522.
RFID RC522 для считывания и записи на карты
RFID RC522 Arduino схема, подключение
Datasheet или описание от производителя
В 1945 году Лев Сергеевич Термен изобрёл шпионское устройство (т. н. «жучок»), которое причисляют к первым предшественникам RFID-технологии.
RFID (Radio Frequency Identification) радиочастотная идентификация – технология которая основана на электромагнитном радиочастотном излучении для обмена данными.
Скачать rfid rc522 datasheet
Преимущества технологии RFID:
- бесконтактная
- возможность скрытой установки меток
- высокая скорость считывания данных
- трудно подделать(протокол Mifare®. — торговая марка, имеет криптозащиту)
Модуль rfid rc522 купить
rfid rc522 библиотека
Используя специальную библиотеку скачать и посмотрев примеры можно без труда собрать устройство позволяющее считать UID карты и использовать в своих разработках, например для открытия электронного замка, или идентификации держателя карты.
запись rfid rc522
Запись на карту производится чуть посложнее чем считывание. Как это сделать будет разобрано в следующей статье. На карту из комплекта можно записать до 1Кбайт в энергонезависимую память EEPROM
rfid rc522 удобно использовать с Нано
Как я и писал выше удобнее всего использовать Нано из-за её малых размеров и меньшей стоимости.
RFID метка
RFID метка – это маленькое устройство с антенной. Антенна в разы больше чипа с данными. Чтобы прочитать эти данные нужен RFID считыватель. Метку помещают в корпус, в нашем случае она находится в карте и в брелоке.
Различные виды меток.
- RFID браслет
- Карта пластиковая
- Брелок в пластмассовом корпусе
- Различные кольца, брелоки для ключей, ожерелья.
- Можно изготовить в виде значков.
Активные и Пассивные метки.
Пассивные RFID метки не имеют источника питания и поэтому нет необходимости в замене батареек.
Можно скрыть считыватель за какой-нибудь панелью и использовать незаметно.
В памяти каждой метки находится идентификационный номер UID и 1024 байта данных или 1 килобайт энергонезависимой памяти EEPROM. для записи различных данных. Поднеся метку к считывателю можно считать информацию. Для передачи данных метка используют энергию считывателя. Расстояние считывания до десятков метров. Зависит от применяемого считывателя, а так же от метки. Активные можно считывать и на больших расстояниях.
Наш модуль rfid rc522 позволяет считывать метки до 5-7 см.
rfid модуль rc522 13.56 mhz с SPI-интерфейсом.
В комплекте к модулю идут 2 RFID-метки – в виде карты и брелока.
Метки могут работать на разных частотах.
LF (125 — 134 кГц),
HF (13.56 МГц),
Метки работающие на частотах 13,56 МГц сравнительно дешёвые, хорошо стандартизированы. Применяются в платежных системах, логистике, идентификации личности. Для частоты 13,56 МГц разработан стандарт ISO 14443 (виды A/B). На основе этого стандарта работают системы оплаты проезда общественного транспорта.
По способам работы они тоже отличаются.
- Могут работать только на чтение – на них можно записать информацию только 1 раз
- Однократно записываемые. Поставляются без информации. Возможна запись всего 1 раз.
- Многократно записываемые. Можно записывать информацию тысячи раз.
Модуль rfid rc522 купить
Безопасность.
По поводу RFID меток есть много дискуссий.
В магазинах сейчас продаётся много одежды со встроенными чипами на основе RFID меток. Такая метка содержит информацию о изделии. Покупая такую вещь со встроенной меткой вы даже не догадываетесь, что её можно считывать удалённо даже без вашего ведома. При хорошем считывателе до десятков метров. Например войдя в тот же магазин где вы приобрели товар, продавец может знать что вы у него покупали. Также в магазинах используются наклейки и этикетки.
Другая проблема – это кража данных «скимминг». Используя сканер для чтения или дублирования информации.
Для предотвращения этого используйте специальные чехлы…
Используйте считыватель RFID с Raspberry Pi.
Обновлено 11 июля 2019 — 0 Комментарии — GPIO, Raspberry Pi, Без планеты, учебные пособия
ⓘ Cet article peut avoir été partiellement ou totalement traduit à l’aide d’outils automatiques. Nous nous excusons des erreurs que cela pourrait engendrer.
Это руководство является второй частью файла, посвященного обнаружению электроники с помощью Raspberry Pi. Если вы не читали его, я советую вам обратиться к первому руководству по управлению светодиодом с помощью Raspberry Pi.
Будь то системы идентификации, управления запасами, оплаты или домашней автоматизации, чипы RFID используются все чаще и чаще.
В этом руководстве мы увидим, как читать карты RFID с помощью Raspberry Pi и считывателя RFID RC522.
В конце руководства вы сможете прочитать значок RFID, проверить, соответствует ли он ожидаемому, и зажечь зеленый или красный светодиод, в зависимости от результата. Все, что вам нужно сделать, это адаптировать этот базовый пример для проекта по вашему выбору!
Необходимое оборудование
Для выполнения этого урока вам потребуются следующие материалы:
- Raspberry Pi
- Его диета
- Карта MicroSD
- Считыватель RFID RC522
- Комплект кабелей, светодиодов, резисторов и тестовых пластин
- Паяльник и припой
Соберите 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, к которому вам нужно будет его подключить.
Подключите порты RC522 к соответствующим портам на 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 RC522 для Raspberry Pi
В этом руководстве по Raspberry Pi RFID RC522 я расскажу вам, как настроить и подключить чип RFID RC522 к вашему Raspberry Pi.
Этот проект представляет собой крутую схему, с которой можно поэкспериментировать, и он открывает перед вами широкий спектр различных проектов, от использования его в качестве системы посещаемости до использования для открытия замка.
RFID RC522 — это очень недорогое устройство считывания и записи RFID (радиочастотной идентификации), основанное на микроконтроллере MFRC522.
Этот микроконтроллер передает свои данные через протокол SPI и работает, создавая электромагнитное поле 13,56 МГц, которое он использует для связи с метками RFID.
Убедитесь, что метки, которые вы приобретаете для RFID RC522, работают на частоте 13,56 МГц, иначе мы не сможем их прочитать.
Мы покажем вам, как подключить RC522, а также покажем, как писать сценарии Python для взаимодействия с чипом, чтобы вы могли читать и записывать свои RFID-метки.
Вы можете расширить это руководство, чтобы использовать что-то вроде ЖК-дисплея 16 × 2 для Raspberry Pi, что удобно, если вы хотите показать некоторую информацию или отобразить визуальную подсказку для конечного пользователя.
Список оборудования
Ниже приведены все детали, которые я использовал для этого руководства по Raspberry Pi RFID RC522.
Рекомендуется
Дополнительно
- Чехол для Raspberry Pi
- Кабель Ethernet или Wi-Fi
Видео
Ниже у нас есть видео, демонстрирующее процесс настройки RC522 на Raspberry Pi, включая настройку всей схемы Raspberry Pi. .
Если вы предпочитаете более подробное объяснение того, как все сделать, вы можете ознакомиться с нашим письменным руководством по настройке RFID RC522 с Raspberry Pi ниже.
Adblock удаляет видео? Поддержите нас, подписавшись на наш сервис без рекламы.
Сборка RFID RC522
Одна вещь, которую вы заметите при покупке считывателя RFID RC522, заключается в том, что 90% из них не поставляются с уже впаянными штырьками. Отсутствующие штифты означают, что вам, к счастью, придется делать это самостоятельно. пайка штыревых контактов — довольно простая задача даже для новичков.
1. Во-первых, если контакты, которые вы получили вместе с RC522, имеют неправильный размер, защелкните их, чтобы у вас был только один ряд из восьми контактов.
2. Вставьте штифты разъема в отверстия на RC522. Один из удобных приемов заключается в том, чтобы поместить длинную сторону контактов разъема в макетную плату, а затем поместить схему поверх контактов разъема. Макет будет плотно удерживать контакты, что упрощает их припайку к схеме RFID RC522.
3. Теперь, используя горячий паяльник и немного припоя, медленно припаяйте каждый из контактов. Помните, что лучше всего слегка нагреть соединение перед нанесением на него припоя, это обеспечит лучшее прилипание припоя к соединению и снизит вероятность образования холодного соединения. Мы также рекомендуем быть осторожными с количеством наносимого припоя.
4. Теперь, когда контакты разъема припаяны к схеме RFID, она готова к использованию, и вы можете продолжить обучение.
Подключение RFID RC522
На вашем RFID RC522 вы заметите, что есть 8 возможных подключений, это SDA (сигнал последовательных данных), SCK (последовательные часы), MOSI (главный выход ведомого устройства). In), MISO (Master In Slave Out), IRQ (запрос прерывания), GND (земля), RST (цепь сброса) и 3,3 В (3,3 В питания). Нам нужно будет подключить все это, кроме IRQ , к контактам GPIO Raspberry Pi.
Вы можете либо подключить их напрямую к контактам GPIO, либо, как мы делали в этом руководстве, подключить RFID RC522 к нашей макетной плате, а затем подключить оттуда к контактам GPIO Raspberry Pi.
Подключение вашего RFID RC522 к Raspberry Pi довольно просто, вам нужно подключить всего 7 контактов GPIO непосредственно к считывателю RFID. Следуйте приведенной ниже таблице и ознакомьтесь с нашим руководством по GPIO, чтобы увидеть положения контактов GPIO, к которым вам нужно подключить RC522.
- SDA подключается к Pin 24 .
- SCK соединяется с контактом 23 .
- MOSI подключается к Pin 19 .
- MISO подключается к Pin 21 .
- GND подключается к Pin 6 .
- RST подключается к Pin 22 .
- 3,3 В подключается к Pin 1 .
Настройка Raspbian для RFID RC522
Прежде чем мы начнем процесс использования RFID RC522 на нашем Raspberry Pi, нам сначала нужно внести изменения в его конфигурацию. По умолчанию в Raspberry Pi отключен SPI (последовательный периферийный интерфейс), что является небольшой проблемой, поскольку именно через него проходит наша схема считывания RFID.
Не беспокойтесь, поскольку повторно включить этот интерфейс довольно просто, просто следуйте нашим шагам ниже, чтобы настроить Raspberry Pi и Raspbian для использования интерфейса SPI.
1. Давайте начнем с открытия инструмента raspi-config , и мы можем сделать это, открыв терминал и выполнив следующую команду.
2. Этот инструмент загрузит экран с различными вариантами. Если вы хотите более подробно изучить эти параметры, вы можете ознакомиться с нашим руководством по raspi-config.
Здесь с помощью клавиш со стрелками выберите « 5 Interfacing Options ». После того, как вы выбрали эту опцию, нажмите Введите .
3. Теперь на следующем экране вы хотите использовать клавиши со стрелками , чтобы выбрать « P4 SPI », снова нажмите Enter, чтобы выбрать параметр, как только он будет выделен.
4. Теперь вас спросят, хотите ли вы включить интерфейс SPI, выберите Да с помощью клавиш со стрелками и нажмите Введите для продолжения. Вам нужно будет немного подождать, пока инструмент конфигурации raspi- сделает свое дело, включив SPI.
5. После успешного включения интерфейса SPI с помощью инструмента raspi-config на экране должен появиться следующий текст: « Интерфейс SPI включен ».
Прежде чем интерфейс SPI будет полностью включен, нам сначала нужно перезапустить Raspberry Pi. Для этого сначала вернитесь к терминалу, нажав Введите и затем ESC .
Введите следующую команду Linux в терминал Raspberry Pi, чтобы перезапустить Raspberry Pi.
6. После завершения перезагрузки Raspberry Pi мы можем проверить, действительно ли он был включен. Самый простой способ сделать это — запустить следующую команду, чтобы увидеть, есть ли в списке spi_bcm2835 .
Если вы видите spi_bcm2835 , вы можете продолжить это руководство и перейти к следующему разделу. Если по какой-то причине он не появился при вводе предыдущей команды, попробуйте выполнить следующие три шага.
7. Если по какой-то причине модуль SPI не активирован, мы можем отредактировать файл конфигурации загрузки вручную, выполнив следующую команду на нашем Raspberry Pi.
8. В файле конфигурации используйте CTRL + W , чтобы найти « dtparam=spi=on ».
Если вы его нашли, проверьте, нет ли перед ним # . Если есть, удалите его, так как это закомментирует строку активации. Если вы вообще не можете найти строку, добавьте « dtparam=spi=on » в конец файла.
После внесения изменений можно нажать CTRL + X , затем нажать Y и затем . Введите , чтобы сохранить изменения.
Теперь вы можете снова перейти к шагу 5 , перезагрузив Raspberry Pi, а затем проверив, включен ли модуль.
Подготовка Python для RFID RC522
Теперь, когда мы подключили нашу схему RFID RC522 к Raspberry Pi, мы можем включить ее и начать процесс программирования простых скриптов на Python для взаимодействия с чипом.
Сценарии, которые мы покажем вам, как писать, покажут вам, как считывать данные с чипов RFID и как записывать в них. Они дадут вам основное представление о том, как обрабатываются данные, и послужат основой для дальнейших руководств по RFID RC522.
1. Прежде чем мы начнем программировать, нам сначала нужно обновить Raspberry Pi, чтобы убедиться, что на нем установлена последняя версия всего программного обеспечения. Запустите следующие две команды на Raspberry Pi, чтобы обновить его.
2. Теперь последнее, что нам нужно, прежде чем мы сможем продолжить, это установить пакеты python3-dev , python-pip и git . Просто запустите следующую команду на Raspberry Pi, чтобы установить все необходимые пакеты для этого руководства по настройке считывателя RFID.
3. Для начала мы должны сначала установить spidev библиотеки Python на наш Raspberry Pi с помощью инструмента python « pip », который мы загрузили на предыдущем шаге.
Библиотека spidev помогает обрабатывать взаимодействие с SPI и является ключевым компонентом этого руководства, поскольку она нужна нам для взаимодействия Raspberry Pi с RFID RC522.
Выполните следующую команду на Raspberry Pi, чтобы установить spidev на Raspberry Pi через pip.
Обратите внимание, что мы используем sudo здесь, чтобы убедиться, что пакет установлен, чтобы его могли использовать все пользователи, а не только текущий пользователь.
4. Теперь, когда мы установили spidev для нашего Raspberry Pi, теперь мы можем приступить к установке библиотеки MFRC522, также используя pip.
Вы можете ознакомиться с кодом RFID MFRC522 Python на PiMyLifeUp Github, если вам интересно узнать, как работает библиотека или улучшить ее поведение.
В нашу библиотеку MFRC522 входят два файла, которые мы используем:
MFRC522.py , представляющий собой реализацию интерфейса RFID RC522. SPI-интерфейс Пи.
SimpleMFRC522.py , который берет файл MFRC522.py и значительно упрощает его, заставляя вас иметь дело только с парой функций вместо нескольких.
Чтобы установить библиотеку MFRC522 на Raspberry Pi с помощью pip, выполните следующую команду.
5. Теперь, когда библиотека сохранена на Raspberry Pi, мы можем начать программирование для нашего RFID RC522. Для начала мы покажем вам, как записывать данные на ваши RFID-карты с помощью RC522. Просто перейдите к следующему разделу, чтобы начать программировать наш первый скрипт Python.
Запись с помощью RFID RC522
Для нашего первого сценария Python мы покажем вам, как записывать данные из RC522 в ваши RFID-метки. Благодаря скрипту SimpleMFRC522 это будет относительно просто, но мы все же рассмотрим, как работает каждая часть кода.
1. Теперь давайте начнем с создания папки, в которой мы будем хранить нашу пару скриптов.
Мы будем называть эту папку «pi-rfid», создайте ее, выполнив следующую команду.
2. Начните с изменения каталога в нашу новую клонированную папку и начните писать наш Write.py скрипт Python.
3. В этом файле напишите следующие строки кода. Этот код в основном запрашивает текст для ввода, а затем записывает этот текст в метку RFID.
Первая строка этого сегмента кода помогает сообщить терминалу, как интерпретировать файл, и сообщает ему, что при его выполнении следует использовать Python, а не что-то еще, например Bash.
Наш первый импорт, RPi.GPIO , имеет все функции, необходимые для взаимодействия с контактами GPIO, и нам нужно это, чтобы убедиться, что они очищаются, когда сценарий завершает работу.
Второй импорт, импорт в нашу библиотеку SimpleMFRC522 , это то, что мы будем использовать собственно для общения с RFID RC522, это значительно упрощает работу с чипом по сравнению с базовой библиотекой MFRC522.
Эта строка создает копию SimpleMFRC522 как объект, запускает его функцию настройки, а затем сохраняет все это в нашей переменной чтения.
Наш следующий блок кода мы храним в операторе try, чтобы мы могли перехватывать любые исключения и корректно очищать их. Убедитесь, что вы сохранили «вкладки» после try: , поскольку Python чувствителен к пробелам, и это то, как он отличается между блоками кода.
Вторая строка здесь считывает ввод из командной строки, и мы используем ввод в Python 3 для чтения всего ввода и сохранения его в нашей текстовой переменной.
В третьей строке мы используем print() , чтобы уведомить пользователя о том, что теперь он может поместить свою метку RFID на считывающее устройство для записи.
После этого, в нашей четвертой строке кода, мы используем наш объект считывателя для записи значений, которые мы сохранили в текстовой переменной, в метку RFID, это сообщит схеме RFID RC522 записать текстовые значения в определенный сектор.
Наконец, в 5-й строке кода мы снова используем print() , чтобы уведомить пользователя об успешной записи в RFID-метку.
Наши последние две строки кода обрабатывают выход из скрипта. Наконец, всегда происходит после оператора try, что означает, что независимо от того, что мы запускаем Функция GPIO.cleanup() . Эти строки имеют решающее значение, так как отсутствие очистки может помешать правильной работе других скриптов.
4. После того, как вы закончите писать сценарий, он должен выглядеть примерно так, как показано ниже.
Если вы довольны тем, что код выглядит правильно, вы можете сохранить файл, нажав CTRL + X , затем нажав Y и, наконец, нажав ENTER .
5. Теперь, когда мы написали наш сценарий, нам нужно протестировать его. Перед тестированием скрипта убедитесь, что у вас есть под рукой RFID-метка. Когда будете готовы, введите следующую команду в терминал вашего Raspberry Pi.
6. Вам будет предложено ввести новые данные, в нашем случае мы собираемся просто ввести pimylifeup , так как это коротко и просто. Нажмите Введите , когда будете довольны написанным.
7. После этого просто поместите RFID-метку поверх схемы RFID RC522. Как только он это обнаружит, он сразу же запишет новые данные в тег. Вы должны увидеть « Written » в вашей командной строке, если это было успешно.
Вы можете посмотреть наш пример вывода ниже, чтобы увидеть, как выглядит успешный запуск.
8. Теперь вы успешно написали сценарий Write.py , и теперь мы можем перейти к тому, чтобы показать вам, как считывать данные с RFID RC522 в следующем разделе этого руководства.
Чтение с помощью RFID RC522
Теперь, когда мы написали сценарий для записи в метки RFID с помощью RC522, мы можем написать сценарий, который будет считывать эти данные с метки.
1. Давайте начнем с изменения каталога, чтобы убедиться, что мы находимся в нужном месте, а затем мы можем запустить nano, чтобы начать писать наш скрипт Read.py .
2. В этом файле напишите следующие строки кода. Этот сценарий в основном будет сидеть и ждать, пока вы не поместите свою метку RFID в считыватель RFID RC522, а затем выведет данные, которые он считывает с метки.
Первая строка кода сообщает операционной системе, как обрабатывать файл, когда пользователь его запускает. В противном случае он попытается просто запустить его как обычный файл сценария, а не файл Python.
Первый импорт: RPi.GPIO . Эта библиотека содержит все функции для работы с контактами GPIO Raspberry Pi, и мы в основном импортируем их, чтобы гарантировать, что мы очищаем их после завершения выполнения скрипта.
Второй импорт: SimpleMFRC522 . Этот скрипт содержит несколько вспомогательных функций, которые значительно упрощают запись и считывание с RFID RC522, без него скрипты стали бы довольно длинными.
Эта строка очень важна, поскольку она вызывает функцию создания SimpleMFRC522, а затем сохраняет ее в нашей переменной чтения как объект, чтобы мы могли взаимодействовать с ней позже.
Следующий блок кода содержится в операторе try , и мы используем его, чтобы перехватывать любые исключения, которые могут возникнуть, и корректно с ними справляться. Вам необходимо убедиться, что вы используете « tabs », как показано после try: , поскольку Python чувствителен к пробелам.
Вторая строка в этом блоке кода вызывает наш объект считывателя, в данном случае она сообщает схеме начать считывание любой метки RFID, расположенной поверх считывателя RC522.
В третьей и четвертой строках мы используем print() для распечатки информации, полученной при считывании RFID-чипа, включая идентификатор, связанный с меткой RFID, и текст, хранящийся на метке.
Две последние строки кода обрабатывают завершение сценария. Оператор finally всегда срабатывает после оператора try, даже если мы получаем исключение.
Этот оператор try гарантирует, что независимо от того, что мы запускаем, GPIO.cleanup() 9Функция 0044. Это очень важно, так как отсутствие очистки GPIO может помешать правильной работе других скриптов.
3. Теперь, когда вы закончили писать сценарий Read.py для RFID RC522, он должен выглядеть примерно так, как показано ниже.
Если вы уверены, что ввели код правильно, вы можете сохранить файл, нажав Ctrl + X , затем нажав Y и, наконец, нажав ENTER .
4. Теперь, когда мы наконец закончили наш скрипт Read.py, нам нужно протестировать его. Прежде чем мы протестируем сценарий, возьмите одну из RFID-меток, которую вы хотите прочитать. Когда вы будете готовы, введите следующую команду в терминал вашего Raspberry Pi.
5. Теперь, когда сценарий запущен, все, что вам нужно сделать, это разместить метку RFID поверх схемы RFID RC522. Как только сценарий Python обнаружит, что RFID-метка размещена сверху, он немедленно прочитает данные и распечатает их вам.
Пример успешного вывода показан ниже.
7. Если вы успешно получили данные от своего скрипта Read.py с текстом, который вы отправили на карту с помощью скрипта Write.py, значит, вы успешно настроили Raspberry Pi для подключения к вашей схеме RFID RC522.
Вы можете узнать, как настроить устройство считывания/записи RFID RC522 для проверки посещаемости, следуя нашему руководству по системе посещаемости RFID на базе Raspberry Pi.
Более подробно об этих сценариях и чипе RFID мы поговорим в последующих руководствах. Он будет включать в себя изучение того, как настроить систему безопасности дверей среди других интересных проектов DIY Pi.
Если вам понравилось это руководство по Raspberry RFID RC522 или у вас есть какие-либо отзывы, не стесняйтесь оставлять комментарии ниже.
Интерфейс RC522 RFID-считыватель с Arduino
admin 0 комментариев0003
В предыдущем уроке блога мы узнали «Что такое модуль RFID RC522 | Как это работает», теперь мы собираемся узнать, как подключить модуль считывателя RFID MFRC522/RC522 к Arduino. Здесь мы обсудим, как подключить считыватель RFID RC522 к Arduino, как подключить считыватель RFID RC522 к Arduino, принципиальную схему, код Arduino для чтения карты RFID MIFARE Classic-1K и метку брелока.
ВведениеМодуль считывателя RFID RC522 создает электромагнитное поле с частотой 13,56 МГц для связи с метками RFID. Этот модуль считывателя может считывать информацию, хранящуюся на RFID-карте или метке брелока. Мы можем создавать множество проектов в области электроники, используя модуль считывателя RFID и карту или брелок. Возможно, вы видели другие подобные приложения RFID-модулей, такие как системы дверных замков на основе RFID, системы контроля доступа, бесконтактные платежи, автоматические кассовые системы в супермаркетах и т. д. Прежде чем создавать свои собственные проекты RFID, вы должны научиться интерфейсу RC522 RFID. Читалка с Ардуино.
Компоненты требовалисьКомпоненты Название | Количество | |
ARDUINO UNAIINO (YOUS ORTIONARY | ||
ARDIINO UNAIINO | ||
ARDIINO. | MFRC522 RC522 Модуль считывателя RFID | 1 |
RFID-карта MIFARE Classic-1K и брелок для ключей | 1+1 | |
0502 |
Как подключить считыватель RFID RC522 к Arduino
Модуль считывателя RFID RC522 поддерживает протоколы SPI, I2C и UART для связи с микроконтроллером/микропроцессором. Модули считывателя RFID RC522 требуют передачи большого количества данных. Следовательно, мы используем протоколы SPI для связи, поскольку протокол SPI является самым быстрым среди всех трех протоколов последовательной связи. Другая причина использования протоколов SPI заключается в том, что мы использовали библиотеку RFID, которая поддерживает только протоколы SPI. Для сопряжения RFID-считывателя RC522 с Arduino по протоколу SPI схема подключения указана ниже.
RFID Reader Module Pins | Arduino Uno Pin | Arduino Nano Pin | Arduino Mega Pin |
VCC | 3.3v Pin | 3.3v Pin | 3.3 v Вывод |
RST | Вывод RST можно подключить к любому цифровому выводу на Arduino. | ||
Земля | Земля Контакт | Земля Контакт | Земля Контакт |
IRQ | Вывод IRQ не подключен, потому что библиотека, которую мы собираемся использовать, не поддерживает его. | ||
MISO | D11 | D11 | D51 |
MOSI | D12 | D12 | D50 |
SCK | D13 | D13 | D52 |
SDA | D10 | D10 | D53 |
Перед тем, как начать писать код для связи модуля считывателя RFID RC522 с Arduino, необходимо установить библиотеку MFRC522 в Arduino IDE. Потому что без библиотеки общение с RFID-модулем RC522 — это куча работы. Нажмите кнопку загрузки ниже, чтобы загрузить библиотеку RFID-Master.zip.
Загрузите библиотеку RFID-Master.zip MFRC522Выполните следующие шаги, чтобы загрузить библиотеку.
Загрузите библиотеку RFID-Master.zipПосле загрузки файла RFID-Master. zip откройте среду разработки Arduino и выберите «Скетч» > «Включить библиотеку» > «Добавить библиотеку .ZIP» > затем выберите только что загруженный файл RFID-master.zip. .
Библиотека Добавить в Arduino IDE Код Arduino для считывания RFID-карты MIFARE Classic-1K и метки брелока информация, хранящаяся в нем, в основном Уникальный идентификатор (UID). Мы можем легко прочитать эту информацию, используя эскиз примера DumpInfo, который хранится в библиотеке RFID.После установки библиотеки RFID в Arduino IDE нажмите «Файл» > «Примеры» > откройте подменю «Примеры» > выберите MFRC522 > откройте скетч примера DumpInfo.
Пример DumpInfo Эскиз для чтения карты и tagInterface RC522 RFID-считыватель с кодом ArduinoПосле загрузки скетча/кода на Arduino откройте Serial Monitor. Теперь поднесите карточку или брелок ближе к модулю считывателя и не снимайте его, пока вся информация не отобразится на Serial Monitor.
Если вы извлечете карту раньше, вы получите сообщение об ошибке «Тайм-аут связи» на последовательном мониторе.