Каталог
Управление сервоприводом с помощью RFID-карты на Arduino

Управление сервоприводом с помощью RFID-карты на Arduino

Современные системы безопасности часто используют RFID-технологии для контроля доступа. В этом проекте мы рассмотрим создание системы на базе Arduino, которая управляет сервоприводом при помощи RFID-карты. Эта система позволяет управлять доступом, например, к двери или замку, с помощью уникального идентификатора карты.

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

Для реализации проекта потребуются следующие компоненты:

  • Arduino Uno
  • RFID-модуль (RC522)
  • Сервопривод
  • Зуммер
  • Соединительные провода

Подключение компонентов

  1. RFID-модуль:

    • SDA подключаем к пину 10 на Arduino.
    • SCK подключаем к пину 13 на Arduino.
    • MOSI подключаем к пину 11 на Arduino.
    • MISO подключаем к пину 12 на Arduino.
    • IRQ не используется.
    • GND подключаем к GND на Arduino.
    • RST подключаем к пину 9 на Arduino.
    • 3.3V подключаем к 3.3V на Arduino.
  2. Сервопривод:

    • Сигнальный провод сервопривода подключаем к цифровому пину 6 на Arduino.
    • Питание (VCC) подключаем к 5V на Arduino.
    • GND сервопривода подключаем к GND на Arduino.
  3. Зуммер:

    • Плюсовой вывод зуммера подключаем к пину 5 на Arduino.
    • Минусовой вывод зуммера подключаем к GND на Arduino.

Установка библиотек

Для работы с RFID-модулем и сервоприводом нам понадобятся следующие библиотеки:

  • MFRC522: библиотека для работы с RFID-модулем MFRC522.
  • Servo: библиотека для управления сервоприводами.

Установить их можно через Arduino IDE:

  1. Откройте Arduino IDE.
  2. Перейдите в Скетч -> Подключить библиотеку -> Управление библиотеками.
  3. Найдите и установите библиотеки MFRC522 и Servo.

Код программы

Ниже приведен код, который нужно загрузить в Arduino для работы системы:

#include <Servo.h>
#include <SPI.h>
#include <MFRC522.h> // библиотека "RFID".
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
unsigned long uidDec, uidDecTemp;  // для храниения номера метки в десятичном формате
Servo servo;
void setup() {
  Serial.begin(9600);
  Serial.println("Waiting for card...");
  SPI.begin();  //  инициализация SPI / Init SPI bus.
  mfrc522.PCD_Init();     // инициализация MFRC522 / Init MFRC522 card.
  servo.attach(6);
  servo.write(0);  // устанавливаем серву в закрытое сосотояние
}
void loop() {
  // Поиск новой метки
  if ( !mfrc522.PICC_IsNewCardPresent()) {
    return;
  }
  // Выбор метки
  if ( !mfrc522.PICC_ReadCardSerial()) {
    return;
  }
  uidDec = 0;
  // Выдача серийного номера метки.
  for (byte i = 0; i < mfrc522.uid.size; i++)
  {
    uidDecTemp = mfrc522.uid.uidByte[i];
    uidDec = uidDec * 256 + uidDecTemp;
  }
  Serial.println("Card UID: ");
  Serial.println(uidDec); // Выводим UID метки в консоль.
  if (uidDec == 1765925400) // Сравниваем Uid метки, если он равен заданому то серва открывает.
  {
    tone(5, 200, 500); // Делаем звуковой сигнал, Открытие
    servo.write(90); // Поворациваем серву на угол 90 градусов(Отпираем какой либо механизм: задвижку, поворациваем ключ и т.д.)
    delay(3000); // пауза 3 сек и механизм запирается.
    tone(5, 500, 500); // Делаем звуковой сигнал,  Закрытие
  }
  servo.write(0);  // устанавливаем серву в закрытое сосотояние
}

Объяснение кода

  1. Инициализация переменных и настроек:

    • #define SS_PIN 10 и #define RST_PIN 9 задают пины для подключения RFID-модуля.
    • MFRC522 mfrc522(SS_PIN, RST_PIN); создает объект для работы с RFID-модулем.
    • unsigned long uidDec, uidDecTemp; переменные для хранения UID метки.
  2. Функция setup():

    • Serial.begin(9600); инициализирует сериализацию для вывода данных в монитор порта.
    • SPI.begin(); инициализирует шину SPI.
    • mfrc522.PCD_Init(); инициализирует RFID-модуль.
    • servo.attach(6); подключает сервопривод к пину 6.
    • servo.write(0); устанавливает сервопривод в закрытое состояние.
  3. Функция loop():

    • Проверяет наличие новой RFID-карты с помощью mfrc522.PICC_IsNewCardPresent().
    • Считывает UID карты с помощью mfrc522.PICC_ReadCardSerial().
    • Конвертирует UID карты в десятичный формат и выводит его в консоль.
    • Если UID совпадает с заданным (1765925400), сервопривод открывается на 90 градусов и через 3 секунды возвращается в закрытое состояние, сопровождаемое звуковыми сигналами зуммера.

Заключение

Этот проект демонстрирует, как использовать RFID-технологии для управления сервоприводом с помощью Arduino. Такая система может быть использована для различных целей, включая контроль доступа, автоматизацию замков и другие задачи, требующие аутентификации и выполнения механических действий. Создание подобных проектов помогает лучше понять работу с микроконтроллерами и развивает навыки программирования и электроники.

Комментарии
Отзывов еще никто не оставлял
Товары упомянутые в статье
В наличии
Предзаказ
арт. 22
RFID – технология идентификации на основе считывания и записи данных...
1 200 тг 780 тг
Предзаказ
Предзаказ успешно отправлен!
Имя *
Телефон *
Добавить в корзину
Название товара
100 тг
1 шт.
Перейти в корзину
Обратный звонок
Запрос успешно отправлен!
Имя *
Телефон *
Заказ в один клик
С помощью уведомлений о заказе можно не только получать актуальную информацию по заказу, но и иметь быстрый канал связи с магазином