🔐 فتح الكمبيوتر باستخدام RFID و ESP32
💡 الفكرة
في هذا المشروع استخدمت ESP32 مع RFID لتحويل الكرت إلى وسيلة تسجيل دخول للكمبيوتر.
بمجرد تمرير الكرت، يقوم الجهاز بإرسال الباسورد تلقائيًا وكأنه كيبورد.
⚙️ كيف يعمل؟
- قراءة الكرت عبر RFID
- التحقق من رقم الكرت (UID)
- إذا كان مسموح → إرسال أوامر كيبورد عبر Bluetooth
- ضغط Enter → كتابة الباسورد → Enter
🧩 المكونات
- ESP32
- MFRC522 RFID Module
- كرت RFID
- كمبيوتر يدعم Bluetooth
🔌 التوصيل
تم توصيل RFID مع ESP32 باستخدام بروتوكول SPI:
- SDA → GPIO 5
- SCK → GPIO 18
- MOSI → GPIO 23
- MISO → GPIO 19
- RST → GPIO 22
- VCC → 3.3V
💻 البرمجة
تم استخدام مكتبتين:
- MFRC522 لقراءة الكرت
- BLE Keyboard لتحويل ESP32 إلى كيبورد بلوتوث
#include <SPI.h>
#include <MFRC522.h>
#include <BleKeyboard.h>
#define SS_PIN 5
#define RST_PIN 22
MFRC522 rfid(SS_PIN, RST_PIN);
BleKeyboard bleKeyboard("RFID-PC-KEY");
String password = "123456"; // اكتب باسورد الكمبيوتر هنا
byte card1[4] = {رقم البطاقه};
byte card2[4] = {رقم البطاقه};
bool checkUID(byte card[]) {
for (byte i = 0; i < 4; i++) {
if (rfid.uid.uidByte[i] != card[i]) {
return false;
}
}
return true;
}
void setup() {
Serial.begin(115200);
SPI.begin();
rfid.PCD_Init();
bleKeyboard.begin();
Serial.println("Ready - Pair Bluetooth with RFID-PC-KEY");
}
void loop() {
if (!bleKeyboard.isConnected()) {
Serial.println("Bluetooth not connected");
delay(1000);
return;
}
if (!rfid.PICC_IsNewCardPresent()) return;
if (!rfid.PICC_ReadCardSerial()) return;
if (checkUID(card1) || checkUID(card2)) {
Serial.println("Access Granted");
delay(800);
// Enter أول عشان يطلع من شاشة القفل
bleKeyboard.write(KEY_RETURN);
delay(700);
// كتابة الباسورد
bleKeyboard.print(password);
delay(200);
// Enter لتسجيل الدخول
bleKeyboard.write(KEY_RETURN);
delay(3000); // يمنع التكرار السريع
} else {
Serial.println("Access Denied");
}
rfid.PICC_HaltA();
rfid.PCD_StopCrypto1();
}
عند قراءة كرت صحيح:
- يتم إرسال Enter
- ثم كتابة الباسورد
- ثم Enter مرة أخرى
🔑 آلية الأمان
تم حفظ UID لكرتين مسموح لهم فقط بالدخول.
أي كرت آخر يتم رفضه.
🔗 الربط مع الكمبيوتر
- يتم عمل Pairing بين ESP32 والكمبيوتر عبر Bluetooth
- يظهر الجهاز كأنه كيبورد
- بعد الربط، يتم الاتصال تلقائيًا