🛒
0 товаров
0 руб.

Интернет-магазин «Неглупый Дом»


🎟️ Проект: контроль доступа на RDM6300 со звуком и реле

RFID-ридер RDM6300, зуммер и реле

RDM6300 считывает 125кГц-метки через UART — при поднесении карты Arduino подаёт короткий сигнал и открывает замок через модуль реле.

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

RDM6300 работает не по SPI или I2C, а по простому последовательному протоколу UART — при поднесении метки стандарта EM4100 (125 кГц) он сам, без участия Arduino, декодирует радиосигнал и выдаёт через UART готовый пакет байт с идентификатором метки. Именно поэтому базовый код в этом проекте настолько короткий: вся сложность чтения радиометки уже решена внутри самого модуля, а Arduino достаточно заметить, что по UART что-то пришло.

В базовой версии контроля доступа код не проверяет, какая именно метка поднесена, а реагирует на сам факт прихода данных — это превращает устройство в "открывает любому, у кого есть такая метка", а не в полноценный контроль доступа по списку разрешённых людей. Для настоящего турникета с проверкой конкретных карт нужно накопить байты UID в массив и сравнить его целиком с заранее сохранённым списком разрешённых идентификаторов.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, что указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. RDM6300: TX → D10 (через SoftwareSerial), VCC → 5V, GND → GND; RX модуля можно не подключать, Arduino только слушает, не передаёт команды.
  2. Модуль реле KY-019: сигнал → D7, силовая часть замка — отдельно от логики Arduino.
  3. Пассивный зуммер: сигнал → D8, GND → GND.
  4. Проверьте дальность считывания вашей конкретной антенны RDM6300 — у разных модулей она сильно отличается, от пары сантиметров до 5-10 см.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, я языковая
// модель, а не специализированный кодер, могу что-то упустить.

#include <SoftwareSerial.h>

SoftwareSerial rdm(10, 11); // RX, TX (TX модуля не используется)
const int relayPin = 7;
const int buzzerPin = 8;

void setup() {
  Serial.begin(9600);
  rdm.begin(9600);
  pinMode(relayPin, OUTPUT);
  pinMode(buzzerPin, OUTPUT);
}

void loop() {
  if (rdm.available() > 0) {
    Serial.println("Метка обнаружена, открываю");
    while (rdm.available()) rdm.read(); // считываем и сбрасываем буфер метки
    tone(buzzerPin, 2000, 200);
    digitalWrite(relayPin, HIGH);
    delay(3000);
    digitalWrite(relayPin, LOW);
    delay(500);
  }
}

Для проверки конкретного UID метки данные из `rdm.read()` нужно накопить в массив и сравнить с разрешённым списком — в базовом варианте замок реагирует на любую поднесённую метку этого стандарта.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 🪟 многозонная герконовая сигнализация на KY-…🛰️ двухтехнологичная сигнализация PIR + СВЧ →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 360 ₽ 324 ₽ (экономия 36 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина


Поиск



Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA