RFID-модуль RC522 — одно из самых универсальных и популярных устройств для проектов в области электроники и систем контроля доступа. Вместе с платой Arduino он позволяет считывать и записывать информацию на RFID-картах и брелоках с помощью беспроводной связи. Этот тип технологии очень полезен в проектах автоматизации, безопасности и мониторинга, таких как автоматическое открытие дверей или использование персонализированных систем идентификации.
В этой статье мы подробно рассмотрим, как работает модуль RC522, как его подключить к микроконтроллеру, например Arduino, а также несколько практических примеров, которые позволят вам получить от него максимум пользы. Если вы только начинаете заниматься RFID-проектами, эта статья окажет вам большую помощь в понимании принципов и способов простой и эффективной реализации.
Что такое RFID?
RFID (радиочастотная идентификация) – это технология, позволяющая чтение этикеток или тегов без проводов, без необходимости физического контакта. Эти этикетки доступны в нескольких форматах, таких как открытки, брелки и даже наклейки. В зависимости от типа RFID они используются в самых разных приложениях: от контроля доступа в здания до управления запасами.
RFID-считыватель действует как отправитель-получатель радиочастотных сигналов. Когда RFID-метка находится рядом со считывателем, она реагирует отправкой информации, хранящейся в его памяти. При работе с таким модулем, как RC522, вы можете использовать эту информацию для выполнения различных действий в вашем проекте, таких как разрешение доступа к двери или регистрация входа людей.
Модуль RC522
Модуль RC522 Это один из самых популярных считывателей RFID благодаря своей простоте и универсальности. Это работает в Частота 13.56 МГц и позволяет читать и записывать информацию в тегах, совместимых с данным стандартом.
RC522 связывается с микроконтроллером по протоколу SPI, что означает, что он совместим не только с Arduino, но и с другими системами, такими как PIC и Raspberry Pi. Кроме того, он имеет диапазон чтения около 5–7 см, чего более чем достаточно для большинства проектов контроля доступа.
Подключение RFID-модуля RC522 к Arduino
Одним из больших преимуществ RC522 является простота подключения к Arduino. Первое, что нам нужно сделать, это убедиться, что все контакты модуля правильно подключены к соответствующим контактам Arduino. Вот таблица с подключениями:
Модуль RC522 | Arduino Uno/Старший брат | Arduino Mega |
---|---|---|
ПДД (СС) | 10 | 53 |
SCK | 13 | 52 |
MOSI | 11 | 51 |
МИСО | 12 | 50 |
IRQ | Нет конектадо | Нет конектадо |
GND | GND | GND |
RST | 9 | 9 |
3.3V | 3.3V | 3.3V |
Помните, что модуль RC522 работает с напряжением 3.3В, поэтому мы рекомендуем использовать преобразователь уровня напряжения, если вы планируете расширенное использование системы, хотя в ходе быстрых тестов он может работать правильно, подключенный непосредственно к Arduino.
Программирование RC522 с помощью Arduino
Для корректной работы RC522 с Arduino нам необходимо скачать и установить соответствующий RFID книжный магазин. Одним из наиболее часто используемых является проект Мигеля Бальбоа, который вы можете найти в менеджере библиотек Arduino IDE.
После установки библиотеки вот простой пример кода для чтения UID (уникального идентификатора) RFID-карты:
#включать #включать #define RST_PIN 522 #define SS_PIN 9 MFRC10 mfrc522(SS_PIN, RST_PIN); void setup() { Serial.begin(522); SPI.begin(); mfrc9600.PCD_Init(); Serial.println("Прочитать UID"); } void Loop() { if ( mfrc522.PICC_IsNewCardPresent()) { if ( mfrc522.PICC_ReadCardSerial()) { Serial.print("UID карты:"); for (byte i = 522; i < mfrc0.uid.size; i++) { Serial.print(mfrc522.uid.uidByte[i] < 522x0 ? " 10" : " "); Serial.print(mfrc0.uid.uidByte[i], HEX); } Серийный.println(); mfrc522.PICC_HaltA(); }} }
Этот код считывает UID любой карты, которую вы подносите к считывателю, и печатает его на последовательном мониторе.
Использование RC522 в системе контроля доступа
Одно из наиболее полезных применений RFID-модуля RC522 – контроль доступа. Вы можете использовать RFID-карты или брелоки, чтобы предоставить человеку разрешение на вход или активировать/деактивировать такие системы, как сигнализация или электрические замки.
Ниже мы покажем вам пример кода, изменяющий предыдущую программу, чтобы разрешить доступ только к предварительно авторизованным картам:
байт User1[4] = {0x4B, 0x6D, 0xC8, 0x3A}; байт User2[4] = {0xF2, 0x8A, 0x9D, 0x17}; void Loop() { if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) { if (compareArray(mfrc522.uid.uidByte, User1, 4) || CompareArray(mfrc522.uid.uidByte, User2, 4)) { Serial.println("Доступ разрешен"); } else { Serial.println("Доступ запрещен"); } mfrc522.PICC_HaltA(); }}
В этом коде, если обнаруживается карта с UID, совпадающим с одним из сохраненных, доступ авторизуется путем печати сообщения. В противном случае доступ запрещен. Вы можете заменить эти сообщения, распечатав код, который, помимо других функций, активирует цифровой выход для открытия двери.