مقدمه
پروژه در بازکن پیشرفته یک سیستم هوشمند است که بهجای استفاده از کلیدهای فیزیکی، با ابزارهای مدرن مثل تلفن همراه، کارتهای RFID، یا حتی تشخیص چهره، امکان باز کردن در را فراهم میکند. این سیستم معمولاً شامل یک بخش سختافزاری (مثل سنسورها، میکروکنترلرها، و قفل برقی) و یک بخش نرمافزاری (اپلیکیشن موبایل یا وب، یا کنترل از طریق پیامرسانها مثل تلگرام) است. هدف اصلی آن افزایش امنیت، راحتی، و قابلیت کنترل از راه دور برای کاربران است.
پروژه در بازکن کارتی RFID
ما در این مطلب برای شما پروژه دربازکن کارتی با RFID را آماده کردیم، برای مشاهده کامل این پروژه ویدیو زیر را مشاهده فرمایید.
کد آردوینو پروژه
#include SPI.h>
#include MFRC522.h>
#include avr/wdt.h>
#define SS_PIN 5
#define RST_PIN 9
#define RELAY 3 //connect the relay to number 3 pin
#define BUZZER 2 // connect the buzzer to 2 pin
#define ACCESS_DELAY 2000
#define DENIED_DELAY 1000
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
void setup()
{
Serial.begin(9600); // Initiate a serial communication
SPI.begin(); // Initiate SPI bus
mfrc522.PCD_Init(); // Initiate MFRC522
pinMode(RELAY, OUTPUT);
pinMode(BUZZER, OUTPUT);
noTone(BUZZER);
digitalWrite(RELAY,LOW);
Serial.println("Put your card to the reader for scanning ...");
Serial.println();
}
void loop()
{
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
//Show UID on serial monitor
Serial.print("UID tag :");
String content= "";
byte letter;
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("Message : ");
content.toUpperCase();
if (content.substring(1) == " 43 9E D9 13") // enter your own card number after copying it from serial monitor
{
wdt_enable(WDTO_2S);
Serial.println("Authorized access");
Serial.println();
delay(500);
digitalWrite(RELAY, LOW);
delay(ACCESS_DELAY);
digitalWrite(RELAY, HIGH);
wdt_reset();
wdt_disable();
}
else if (content.substring(1) == "63 1D CB 26") //more tag...
{
wdt_enable(WDTO_2S);
Serial.println("Authorized access");
Serial.println();
delay(500);
digitalWrite(RELAY, LOW);
delay(ACCESS_DELAY);
digitalWrite(RELAY, HIGH);
wdt_reset();
wdt_disable();
}
else if (content.substring(1) == "63 1D CB 26") //more tag...
{
wdt_enable(WDTO_2S);
Serial.println("Authorized access");
Serial.println();
delay(500);
digitalWrite(RELAY, LOW);
delay(ACCESS_DELAY);
digitalWrite(RELAY, HIGH);
wdt_reset();
wdt_disable();
}
else {
wdt_enable(WDTO_2S);
Serial.println(" Access denied");
tone(BUZZER, 300);
delay(DENIED_DELAY);
noTone(BUZZER);
wdt_reset();
wdt_disable();
}
}