مقدمه
ساخت قفل درب هوشمند با استفاده از RFID یک پروژهی جذاب است که امنیت و کنترل دسترسی به محیطها را افزایش میدهد. این سیستم به کاربر اجازه میدهد درب را تنها با کارتهای RFID خاص باز کند. این پروژه برای خانه، محل کار، و حتی فضای شخصی ایدهآل است و اجرای آن ساده و کمهزینه است.
قطعات مورد نیاز برای انجام پروژه
- برد آردوینو (ترجیحاً مدل Uno یا Nano)
- ماژول RFID (مثلاً ماژول RC522)
- رله (برای کنترل قفل الکترونیکی)
- قفل الکترونیکی (قفل برقی یا مگنتی یا کابینتی)
- کارتهای RFID یا تگهای RFID
- سیم جامپر (نر به نر در هر اندازه ای)
- منبع تغذیه (برای قفل الکترونیکی و برای برد آردوینو)
- برد بورد (ترجیحا برند با کیفیت GL)
ماژول تایمر رله 12 ولت IC NE555 قابل تنظیم بین 0 تا 10 ثانیه
موجود
مراحل ساخت پروژه
1. نصب ماژول RFID
- ماژول RFID را به برد آردوینو متصل کنید. معمولاً پایههای
SDA
،SCK
،MOSI
،MISO
وIRQ
به پینهای دیجیتال آردوینو وصل میشوند. تغذیه و اتصال زمین نیز به5V
وGND
متصل میشوند.
2. اتصال رله و قفل الکترونیکی
- خروجی رله را به قفل الکترونیکی متصل کنید تا درب بهوسیلهی رله باز و بسته شود. پایههای کنترل رله به یکی از پینهای دیجیتال آردوینو متصل میشوند.
3. برنامهریزی آردوینو
- کدنویسی را با استفاده از کتابخانههای RFID و Servo انجام دهید. کد باید به صورتی باشد که با نزدیک شدن کارت مجاز به ماژول RFID، سیگنالی به رله ارسال شود و قفل برای چند ثانیه باز شود.
- در کد، اطلاعات مربوط به کارتهای مجاز را ذخیره کنید تا آردوینو بتواند کارتهای معتبر و غیرمعتبر را شناسایی کند.
4. تست سیستم
- برنامه را به برد آردوینو ارسال کنید و کارت RFID را نزدیک ماژول قرار دهید. اگر کارت معتبر باشد، رله فعال شده و قفل باز میشود. در غیر این صورت، سیگنالی صادر نمیشود و درب بسته میماند.
نکات مهم
- امنیت پروژه: کارتهای RFID میتوانند کپی شوند، بنابراین از کارتهای با امنیت بالا یا رمزگذاری شده استفاده کنید.
- منبع تغذیه پایدار: حتماً از منبع تغذیه مناسب برای قفل الکترونیکی استفاده کنید، زیرا قفلها معمولاً جریان زیادی نیاز دارند.
- جایگزینی با NFC: در صورت تمایل، میتوانید ماژول NFC را جایگزین RFID کنید تا امنیت بیشتری برای سیستم فراهم شود.
کاربردها و مزایا
- کنترل ورود و خروج: این سیستم میتواند برای کنترل دسترسی به اتاقهای خاص، دفاتر و حتی خانهها به کار رود.
- آسانی استفاده: استفاده از کارت RFID برای باز کردن قفل، نیاز به کلیدهای فیزیکی را کاهش میدهد و کنترل ورود و خروج را آسانتر میکند.
- صرفهجویی در هزینه: این پروژه نسبت به سیستمهای تجاری کنترل دسترسی بسیار ارزانتر است و میتواند توسط کاربران خانگی ساخته شود.
با انجام این پروژه، نه تنها امنیت محیط را افزایش میدهید، بلکه با دنیای الکترونیک و برنامهنویسی آردوینو نیز بیشتر آشنا خواهید شد. برای تهیه قطعات و ماژولهای مورد نیاز میتوانید به فروشگاه گیگا الکترونیک مراجعه کنید.
در اینجا کد برنامه برای ساخت قفل درب هوشمند با استفاده از RFID به کمک آردوینو و ماژول RC522 آمده است. این کد برای خواندن کارت RFID و کنترل قفل الکترونیکی استفاده میشود.
کد برنامه آردوینو برای قفل درب هوشمند با RFID
- کتابخانهها و اتصال به ماژول RFID:
ابتدا باید کتابخانههای مورد نیاز برای ارتباط با ماژول RFID را در کد خود وارد کنید. این کتابخانهها را میتوانید از محیط Arduino IDE دانلود کنید (بروید به Sketch > Include Library > Manage Libraries... و جستجو کنید).
#include SPI.h
#include MFRC522.h
#define SS_PIN 10 // Pin for RFID reader
#define RST_PIN 9 // Reset pin for RFID reader
MFRC522 mfrc522(SS_PIN, RST_PIN); // Initialize MFRC522 instance
// Pin for controlling the relay
#define RELAY_PIN 8
// Define valid RFID card IDs
String validUID = "A1B2C3D4"; // Example valid UID (should match your RFID card)
void setup() {
// Start communication with serial monitor
Serial.begin(9600);
// Initialize the RFID reader
SPI.begin(); // Start SPI communication
mfrc522.PCD_Init(); // Initialize MFRC522
pinMode(RELAY_PIN, OUTPUT); // Set the relay pin as output
digitalWrite(RELAY_PIN, LOW); // Ensure the relay is initially off
Serial.println("Scan your RFID card...");
}
void loop() {
// Check if a card is detected
if (mfrc522.PICC_IsNewCardPresent()) {
// Read the card UID
if (mfrc522.PICC_ReadCardSerial()) {
String cardUID = ""; // String to store the card UID
// Retrieve UID and convert it to a string
for (byte i = 0; i < mfrc522.uid.size; i++) {
cardUID += String(mfrc522.uid.uidByte[i], HEX); // Convert to HEX
}
cardUID.toUpperCase(); // Convert to uppercase for comparison
Serial.println("Card UID: " + cardUID); // Print card UID to serial monitor
// Check if the card UID matches the valid UID
if (cardUID == validUID) {
Serial.println("Access Granted!");
digitalWrite(RELAY_PIN, HIGH); // Unlock the door (turn on the relay)
delay(5000); // Keep the door unlocked for 5 seconds
digitalWrite(RELAY_PIN, LOW); // Lock the door (turn off the relay)
} else {
Serial.println("Access Denied!");
}
mfrc522.PICC_HaltA(); // Halt the current card
mfrc522.PCD_StopCrypto1(); // Stop encryption
}
}
}
توضیحات کد:
کتابخانهها:
SPI.h
وMFRC522.h
برای ارتباط با ماژول RC522 RFID استفاده میشوند. این کتابخانهها به آردوینو اجازه میدهند تا با ماژول RFID ارتباط برقرار کند.
تعریف پینها:
SS_PIN
وRST_PIN
پینهای متصل به ماژول RFID هستند.RELAY_PIN
پینی است که به رله متصل است و برای باز و بسته کردن قفل استفاده میشود.
آغاز ارتباط:
SPI.begin()
وmfrc522.PCD_Init()
ارتباط با ماژول RFID را آغاز میکنند.pinMode(RELAY_PIN, OUTPUT)
پین رله را به عنوان خروجی تنظیم میکند.
خواندن UID کارت:
- با استفاده از
mfrc522.PICC_IsNewCardPresent()
وmfrc522.PICC_ReadCardSerial()
اطلاعات کارت خوانده میشود. - UID کارت RFID به صورت رشتهی
String
ذخیره شده و برای مقایسه با UID معتبر استفاده میشود.
- با استفاده از
مقایسه UID:
- اگر UID کارت با UID معتبر مطابقت داشته باشد، درب باز میشود و رله به مدت 5 ثانیه فعال میماند (در این مدت درب باز میشود).
- در صورتی که UID معتبر نباشد، پیامی مبنی بر "Access Denied" نمایش داده میشود.
نکات تکمیلی:
تنظیم کارتهای معتبر: برای استفاده از این سیستم، باید UID کارت مورد نظر خود را وارد کنید. به جای
validUID = "A1B2C3D4"
، باید UID کارت خود را وارد کنید که از طریقSerial Monitor
قابل مشاهده است.تنظیمات رله: برای اتصال به رله، اطمینان حاصل کنید که رله به درستی به قفل الکترونیکی متصل شده باشد. همچنین، از یک منبع تغذیه مناسب برای تامین انرژی قفل الکترونیکی استفاده کنید.
تست و رفع اشکال: پس از بارگذاری کد، میتوانید از Serial Monitor برای مشاهده اطلاعات کارتها و مشکلات احتمالی استفاده کنید.
این پروژه یک سیستم امنیتی ساده و کارآمد است که به راحتی میتوانید آن را برای کنترل دسترسی به دربها یا مکانهای مختلف استفاده کنید.