Интернет-магазин «Неглупый Дом»
RC522 считывает UID карты по SPI, Arduino сверяет его со списком разрешённых и включает реле замка.
RC522 — модуль на базе RFID-чипа MFRC522, работает на частоте 13.56 МГц (стандарт MIFARE, как у большинства карт доступа). Модуль создаёт вокруг антенны-катушки слабое электромагнитное поле; когда в поле попадает пассивная карта без своей батарейки, поле наводит в её катушке ток, чип "просыпается" и передаёт свой уникальный идентификатор UID (4 или 7 байт, зашитых на заводе).
Arduino получает UID по шине SPI и сравнивает его с заранее прописанным в коде. При совпадении подаёт сигнал на модуль реле, которое замыкает контакты замка на пару секунд, имитируя нажатие кнопки открытия.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.
#include <SPI.h> // стандартная библиотека для шины SPI
#include <MFRC522.h> // библиотека конкретно под чип RC522
#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN); // объект считывателя
const int relayPin = 7;
byte allowedUID[4] = {0xDE, 0xAD, 0xBE, 0xEF}; // впишите UID своей карты
void setup() {
SPI.begin();
rfid.PCD_Init();
pinMode(relayPin, OUTPUT);
}
void loop() {
// если новой карты нет в зоне действия — выходим
if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) return;
bool match = true;
for (byte i = 0; i < 4; i++) {
if (rfid.uid.uidByte[i] != allowedUID[i]) match = false; // сверяем каждый байт
}
if (match) {
digitalWrite(relayPin, HIGH); // открываем
delay(2000);
digitalWrite(relayPin, LOW); // закрываем обратно
}
rfid.PICC_HaltA();
}
Библиотека MFRC522 (от miguelbalboa) ставится через Менеджер библиотек. Чтобы узнать UID своей карты — выведите `rfid.uid.uidByte` в Serial-монитор один раз без проверки, затем впишите байты в `allowedUID`.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу: 219 ₽ 197 ₽ (экономия 22 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.