Membuat Kunci Otomatis Menggunakkan RFID RC-552

Ingin membuat sistem kunci otomatis yang canggih dan modern? Salah satu cara paling populer adalah dengan menggunakan teknologi RFID. Di artikel ini, kita akan membahas bagaimana membuat kunci otomatis menggunakan modul RFID RC-522 dan Arduino. Ini adalah proyek sederhana namun menarik yang dapat membantu mengamankan rumah, kantor, atau bahkan loker pribadi Anda.

Apa Itu RFID?

RFID (Radio Frequency Identification) adalah teknologi yang memungkinkan komunikasi tanpa kabel antara dua perangkat: tag RFID dan reader RFID. Dalam proyek ini, kita akan menggunakan RC-522, sebuah reader RFID yang cukup populer di kalangan penggemar Arduino karena harga yang terjangkau dan mudah digunakan.

Komponen Yang Diperlukan

  1. Arduino Uno
  2. RFID RC-552 module
  3. Kartu RFID
  4. Relay Module(untuk mengontrol kunci listrik)
  5. Selenoid Lock
  6. LED (indikator)
  7. Resistor 220Ω
  8. Kabel Jumper
  9. Breadboad (untuk percobaaan)
  10. Power Supply

Skema Rangkaian

    1. Hubungkan RFID RC-522 ke Arduino sebagai berikut:
  • SDA → Pin 10
  • SCK → Pin 13
  • MOSI → Pin 11
  • MISO → Pin 12
  • IRQ → Tidak dihubungkan
  • GND → GND Arduino
  • RST → Pin 9
  • 3.3V → 3.3V Arduino
    2. Relay Module dihubungkan ke pin digital Arduino (misalnya, pin 7). Relay ini akan mengontrol daya ke kunci solenoid. Relay dihubungkan ke kunci listrik sebagai berikut:   
  • NC (Normally Closed) → Tidak digunakan
  • NO (Normally Open) → Salah satu kabel dari kunci solenoid
  • COM (Common) → Kabel lainnya dari kunci solenoid
  • GND → GND Arduino
  • VCC → 5V Arduino
    3. LED sebagai indikator:
  • Anoda LED (+) → Pin 8 (melalui resistor 220Ω)
  • Katoda LED (-) → GND Arduino
KODE PROGRAM

#include <SPI.h>
#include <MFRC522.h>

#define SS_PIN 10
#define RST_PIN 9
#define RELAY_PIN 7
#define LED_PIN 8

MFRC522 rfid(SS_PIN, RST_PIN);  // Instance of the RFID

void setup() {
  Serial.begin(9600);
  SPI.begin();       // Initiate  SPI bus
  rfid.PCD_Init();   // Initiate MFRC522
  pinMode(RELAY_PIN, OUTPUT);
  pinMode(LED_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, LOW);  // Lock is initially locked
}

void loop() {
  // Look for new cards
  if (!rfid.PICC_IsNewCardPresent()) {
    return;
  }

  // Select one of the cards
  if (!rfid.PICC_ReadCardSerial()) {
    return;
  }

  // This is where you can place your card UID check
  Serial.print("Card UID: ");
  for (byte i = 0; i < rfid.uid.size; i++) {
    Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(rfid.uid.uidByte[i], HEX);
  }
  Serial.println();

  // Example: Unlock when a specific card is detected
  if (rfid.uid.uidByte[0] == 0xDE && rfid.uid.uidByte[1] == 0xAD && 
      rfid.uid.uidByte[2] == 0xBE && rfid.uid.uidByte[3] == 0xEF) {
    Serial.println("Access Granted");
    digitalWrite(RELAY_PIN, HIGH);  // Unlock the door
    digitalWrite(LED_PIN, HIGH);    // Turn on LED
    delay(5000);                    // Keep unlocked for 5 seconds
    digitalWrite(RELAY_PIN, LOW);   // Lock the door again
    digitalWrite(LED_PIN, LOW);     // Turn off LED
  } else {
    Serial.println("Access Denied");
  }

  // Halt PICC
  rfid.PICC_HaltA();
}

Komentar

Postingan populer dari blog ini

Memahami Pin Digital dan Analog pada Arduino

Memulai dengan Wokwi: Simulasikan Proyek Arduino Online

Mengontrol LED dengan Arduino