به نام خدا
پروژه ی ساخت قفل امنیتی RFID با استفاده از آردوینو
در این پروژه خواهیم دید که چگونه مداری با استفاده از RFID و آردوینو برای کنترل یک رله استفاده می شود. از این پروژه می توان برای باز و بسته کردن در های مکان های امنیتی استفاده کرد.
اساس کار این پروژه اینگونه است که برای شناسایی و اجازه عبور تگ ها را با استفاده از UID بررسی می کنیم. UID کارت هایی که اجازه ی عبور دارند در دیتا بیس ذخیره می شوند و هنگام عبور شناسایی شده و در باز می شود. تگ ها نتنها UID را جابجا می کنند بلکه اطلاعاتی دیگری را به همراه آن ذخیره میکنند که ممکن است حجم آن ها از یک تا چهار کیلو بایت و یا حتی یشتر شود.در این جا در مورد نحوه ی ذخیره ی اطلاعات صحبت نخواهیم کرد و بلکه در مورد فرایند باز و بسته کردن یک رله توسط آردوینو از طریق 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 عوض کنید.
هنگامی که یک تگ مجاز اسکن می شود:
هنگامی که یک تگ غیر مجاز اسکن می شود:
سلام
اتصالات ماژول رله به چه صورته؟
سلام
توی شماتیک مشخصه دیگه
دیتاشیت یا همون برگه اطلاعات رله ای که میخواید استفاده کنید رو نگاه کنید با این شماتیک تطبیق بدید.... اون دو پایه سلف داخل رله یکیش میخوره به 5 ولت و یکیش میره به ترانزیستور