Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Создание портативного RFID-замка на Arduino — пошаговое руководство

Необходимые компоненты

Программное обеспечение

О проекте

В этом руководстве мы подробно разберем, как собрать портативный RFID-замок для двери на базе Arduino UNO и модуля RC522. Устройство считывает уникальный идентификатор (UID) RFID-метки (карты или брелока) и, если он совпадает с заданным в коде, активирует реле для открытия замка. Проект подходит для начинающих: схема простая, код понятный, а компоненты доступны и недороги.

Принцип работы RFID

RFID (Radio Frequency Identification) — это технология бесконтактной идентификации по радиочастоте. Система состоит из считывателя (ридера) и пассивной метки (тега). Модуль RC522 на чипе MFRC522 (NXP) работает на частоте 13,56 МГц, питается от 3,3 В и поддерживает чтение и запись данных в память метки (1 КБ). Метка не имеет собственного питания: она получает энергию от электромагнитного поля считывателя.

Схема подключения RC522 к Arduino UNO

Вывод RC522Вывод Arduino UNO
SDA (SS)Digital 10
SCKDigital 13
MOSIDigital 11
MISODigital 12
IRQНе подключен
GNDGND
RSTDigital 9
3.3V3.3V (ни в коем случае не 5V!)

Получение UID метки

  1. Установите библиотеку MFRC522 через менеджер библиотек Arduino IDE.
  2. Откройте пример: Файл → Примеры → MFRC522 → DumpInfo.
  3. Загрузите скетч, откройте монитор порта (9600 бод).
  4. Приложите карту или брелок к считывателе. В мониторе появится информация, включая UID (выделен жёлтым на скриншоте). Запишите его — он понадобится для настройки доступа.

Основной скетч

Ниже приведён полный код с комментариями. В строке if (content.substring(1) == "89 18 79 63") замените UID на свой (без ведущего пробела, в верхнем регистре, байты через пробел).

#include <SPI.h>
#include <MFRC522.h>

#define RELAY_PIN 8
#define SS_PIN 10
#define RST_PIN 9

MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup() {
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, HIGH); // реле выключено (активный низкий уровень)
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init();
  Serial.println(F("Приложите карту к считывателю..."));
  Serial.println();
}

void loop() {
  if (!mfrc522.PICC_IsNewCardPresent()) return;
  if (!mfrc522.PICC_ReadCardSerial()) return;

  Serial.print(F("UID метки:"));
  String content = "";
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(mfrc522.uid.uidByte[i], HEX);
    content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
    content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  Serial.println();
  Serial.print(F("Сообщение: "));
  content.toUpperCase();

  // ЗДЕСЬ ПОДСТАВЬТЕ СВОЙ UID (без первого пробела)
  if (content.substring(1) == "89 18 79 63") {
    Serial.println(F("Доступ разрешён"));
    Serial.println(F("Реле ВКЛ"));
    digitalWrite(RELAY_PIN, LOW); // активируем реле
    delay(1000);                  // держим 1 секунду
    digitalWrite(RELAY_PIN, HIGH); // выключаем реле
  } else {
    Serial.println(F(" Доступ запрещён"));
    Serial.println(F(" Реле ВЫКЛ"));
    digitalWrite(RELAY_PIN, HIGH);
  }
  delay(500); // небольшая пауза перед следующим чтением
}

Как это работает

Советы и улучшения

Схемы и документация

В разделе «Schematics» исходного проекта приведены фото сборки и принципиальная схема. Обратите внимание: питание RC522 строго 3,3 В!

Производственный процесс

  1. Ретро-часы на индикаторах Numitron с Arduino: просто, надёжно, экономно
  2. Надёжный RFID-замок на Arduino с RC522 (MIFARE 13.56 МГц) и сервоприводом
  3. Создание надежного RFID-замка на Arduino — пошаговое руководство
  4. Надежная система учета рабочего времени на Arduino с RFID и Python
  5. Умная копилка: управление монетоприёмником на Arduino Nano
  6. Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
  7. Сборка вольтметра на Arduino с дисплеем Nokia 5110 — Пошаговое руководство
  8. Сборка точного измерительного колеса на Arduino Nano и вращательном энкодере
  9. Точный монитор качества воздуха на датчике Sharp GP2Y1010AU0F
  10. Измерение солнечной радиации на Arduino UNO с Ethernet Shield