Управление сервоприводом с помощью RFID-карты на Arduino
1. Введение
Современные системы безопасности часто используют RFID-технологии для контроля доступа. В этом проекте мы рассмотрим создание системы на базе Arduino, которая управляет сервоприводом при помощи RFID-карты. Эта система позволяет управлять доступом, например, к двери или замку, с помощью уникального идентификатора карты.
2. Необходимые компоненты
Для реализации проекта потребуются следующие компоненты:
Arduino Uno
RFID-модуль (RC522)
Сервопривод
Зуммер
Соединительные провода
3. Подключение компонентов
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.
Сервопривод:
Сигнальный провод сервопривода подключаем к цифровому пину 6 на Arduino.
Питание (VCC) подключаем к 5V на Arduino.
GND сервопривода подключаем к GND на Arduino.
Зуммер:
Плюсовой вывод зуммера подключаем к пину 5 на Arduino.
Минусовой вывод зуммера подключаем к GND на Arduino.
4. Установка библиотек
Для работы с RFID-модулем и сервоприводом нам понадобятся следующие библиотеки:
MFRC522: библиотека для работы с RFID-модулем MFRC522.
Servo: библиотека для управления сервоприводами.
Установить их можно через Arduino IDE:
Откройте Arduino IDE.
Перейдите в Скетч -> Подключить библиотеку -> Управление библиотеками.
Найдите и установите библиотеки MFRC522 и Servo.
5. Код программы
Ниже приведен код, который нужно загрузить в 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); // устанавливаем серву в закрытое сосотояние
}
6. Объяснение кода
Инициализация переменных и настроек:
#define SS_PIN 10
и#define RST_PIN 9
задают пины для подключения RFID-модуля.MFRC522 mfrc522(SS_PIN, RST_PIN);
создает объект для работы с RFID-модулем.unsigned long uidDec, uidDecTemp;
переменные для хранения UID метки.
Функция setup():
Serial.begin(9600);
инициализирует сериализацию для вывода данных в монитор порта.SPI.begin();
инициализирует шину SPI.mfrc522.PCD_Init();
инициализирует RFID-модуль.servo.attach(6);
подключает сервопривод к пину 6.servo.write(0);
устанавливает сервопривод в закрытое состояние.
Функция loop():
Проверяет наличие новой RFID-карты с помощью
mfrc522.PICC_IsNewCardPresent()
.Считывает UID карты с помощью
mfrc522.PICC_ReadCardSerial()
.Конвертирует UID карты в десятичный формат и выводит его в консоль.
Если UID совпадает с заданным (
1765925400
), сервопривод открывается на 90 градусов и через 3 секунды возвращается в закрытое состояние, сопровождаемое звуковыми сигналами зуммера.
7. Заключение
Этот проект демонстрирует, как использовать RFID-технологии для управления сервоприводом с помощью Arduino. Такая система может быть использована для различных целей, включая контроль доступа, автоматизацию замков и другие задачи, требующие аутентификации и выполнения механических действий. Создание подобных проектов помогает лучше понять работу с микроконтроллерами и развивает навыки программирования и электроники.