رباتیک و هوافضا

پروژه ی ساخت قفل امنیتی RFID با استفاده از آردوینو

به نام خدا

پروژه ی ساخت قفل امنیتی RFID با استفاده از آردوینو

قفل امنیتی RFID با استفاده از آردوینو

در این پروژه خواهیم دید که چگونه مداری با استفاده از  RFID و آردوینو برای کنترل یک رله استفاده می شود. از این پروژه می توان برای باز و بسته کردن در های مکان های امنیتی استفاده کرد.

اساس کار این پروژه اینگونه است که برای شناسایی و اجازه عبور تگ ها را با استفاده از UID بررسی می کنیم. UID کارت هایی که اجازه ی عبور دارند در دیتا بیس ذخیره می شوند و هنگام عبور شناسایی شده و در باز می شود. تگ ها نتنها UID را جابجا می کنند بلکه اطلاعاتی دیگری را به همراه آن ذخیره میکنند که ممکن است حجم آن ها از یک تا چهار  کیلو بایت و یا حتی یشتر شود.در این جا در مورد نحوه ی ذخیره ی اطلاعات صحبت نخواهیم کرد و بلکه در مورد فرایند باز و بسته کردن یک رله توسط آردوینو از طریق RFID بحث می کنیم.

 

بیشتر بخوانید...  معرفی برد آموزشی رزبری پای (Raspberry Pi)

شماتیک مدار :

 

قفل امنیتی RFID با استفاده از آردوینو

در تصویر بالا شماتیک و اتصالات مدار را مشاهده می کنید که درایو رله یک ترانزیستور BC 548  است. دیود ۱N4007 بین اتصال رله و ترانزیستور است تا هنگام سویچ از ولتاژ ناگهانی جلوگیری کند. اگر خواستید که از یک رله ی قدرتمند تری استفاده کنید (۹ تا ۱۲ ولت ) می توانید +Ve منبع تغذیه را به رله و -Ve را به زمین آردوینو متصل کنید.

برنامه ی تعیین UID:

دانلود فایل
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN);
MFRC522::MIFARE_Key key;
void setup()
{
Serial.begin(9600);
SPI.begin();
rfid.PCD_Init();
}
void loop() {
if ( ! rfid.PICC_IsNewCardPresent())
return;
if ( ! rfid.PICC_ReadCardSerial())
return;
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
if(piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K)
{
Serial.println(F("Your tag is not of type MIFARE Classic, your card/tag can't be read :("));
return;
}
String StrID = "" ;
for (byte i = 0; i <4; i ++) {
StrID +=
(rfid.uid.uidByte[i]<0x10? "0" : "")+
String(rfid.uid.uidByte[i],HEX)+
(i!=3?":" : "" );
}
StrID.toUpperCase();
Serial.print("Your card's UID: ");
Serial.println(StrID);
rfid.PICC_HaltA ();
rfid.PCD_StopCrypto1 ();
}

 

خروجی مانیتور به شکل زیر است :

UID کارت شما : AA:BB:CC:DD

بر روی مانیتور شما کدی هگزادسیمال خواهید دید که تک UID شما می باشد. آن را جایی یادداشت کنید زیرا در برنامه ی بعدی به آن نیاز خواهید داشت. بعد از انجام مراحل بالا اکنون به سراغ قسمت اصلی یعنی باز و بسته کردن در از طریق RFID می رویدم برای این کار برنامه ی زیر را آپلود کنید.

بیشتر بخوانید...  راه اندازی موتور براشلس با اسپیدکنترل

برنامه ی تشخیص کارت به همراه باز و بسته کردن در:

دانلود فایل
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
int flag=0;
int op=8;
char UID[] = "XX:XX:XX:XX";            //Place your UID of your tag here.
MFRC522 rfid(SS_PIN, RST_PIN);
MFRC522::MIFARE_Key key;
void setup()
{
Serial.begin(9600);
SPI.begin();
rfid.PCD_Init();
pinMode(op,OUTPUT);
}
void loop()
{
if ( ! rfid.PICC_IsNewCardPresent())
return;
if ( ! rfid.PICC_ReadCardSerial())
return;
MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
if(piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
Serial.println(F("Your tag is not of type MIFARE Classic, your tag can't be read :("));
return;
}
String StrID = "" ;
for (byte i = 0; i <4; i ++)
{
StrID +=
(rfid.uid.uidByte[i]<0x10? "0" : "")+
String(rfid.uid.uidByte[i],HEX)+
(i!=3?":" : "" );
}
StrID.toUpperCase();
if(StrID!=UID)
{
Serial.println("This is an invalid tag :(");
Serial.println("***************************************");
delay(2000);
}
if (StrID==UID && flag==0)
{
flag=1;
digitalWrite(op,HIGH);
Serial.println("This is a vaild tag :)");
Serial.println("Status: ON");
Serial.println("***************************************");
delay(2000);
}
else if(StrID==UID && flag==1)
{
flag=0;
digitalWrite(op,LOW);
Serial.println("This is a vaild tag :)");
Serial.println("Status: OFF");
Serial.println("***************************************");
delay(2000);
}
rfid.PICC_HaltA ();
rfid.PCD_StopCrypto1 ();
}

 

کارت خود را با XX:XX:XX:XX عوض کنید.

قفل امنیتی RFID با استفاده از آردوینو

 

هنگامی که یک تگ مجاز اسکن می شود:

 

 

قفل امنیتی RFID با استفاده از آردوینو

 

هنگامی که یک تگ غیر مجاز اسکن می شود:

 

قفل امنیتی RFID با استفاده از آردوینو

 

دیدگاه‌ها (2)

*
*

    فرزاد مهمان دی 30, 1399 پاسخ

    سلام
    اتصالات ماژول رله به چه صورته؟

      Admin مدیر کل شهریور 21, 1400 پاسخ

      سلام
      توی شماتیک مشخصه دیگه
      دیتاشیت یا همون برگه اطلاعات رله ای که میخواید استفاده کنید رو نگاه کنید با این شماتیک تطبیق بدید.... اون دو پایه سلف داخل رله یکیش میخوره به 5 ولت و یکیش میره به ترانزیستور