Skip to main content

Kunci Pintu dengan RFID, bisa pakai E-KTP, Door Lock dan RC-522 Module Arduino

Berikut adalah video bagaimana cara membuat kunci pintu dengan RFID. RFID modul yang berfungsi untuk membaca UID atau ID yang ada pada tag. Salah satu kartu yang memiliki UID adalah E-KTP. E-KTP bisa digunakan untuk membuka kunci pintu atau Door Lock, dengan cara mendaftarkan UID yang ada pada E-KTP kedalam coding pemrograman.


Video Tutorial:





Skema:



Code untuk cek UID tag atau kartu


//Periksa UID Kartu menggunakan RFID

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

const int PIN_RST = 9;  
const int PIN_SS  = 10; 

String uidTag = "";     

// Pembuatan objek MFRC522 
MFRC522 mfrc(PIN_SS, PIN_RST); 

void setup() {
  Serial.begin(9600);
  SPI.begin();  
  mfrc.PCD_Init(); 

  // Cek versi software MFRC555
  byte versi = mfrc.PCD_ReadRegister(mfrc.VersionReg);
  if (versi == 0x00 || versi == 0xFF) {
    Serial.println("Modul tidak ada!");
    while (true);    
  }
  Serial.println ("Tempelkan Kartu ");
}

void loop() {
  // Periksa tag 
  if (!mfrc.PICC_IsNewCardPresent())
    return;

  // Jika nomor tag tidak terdeteksi
  if (!mfrc.PICC_ReadCardSerial())
    return;

  // UID terdeteksi
  uidTag = "";
  for (byte j = 0; j < mfrc.uid.size; j++) {
    char teks[3];
    sprintf(teks, "%02X", mfrc.uid.uidByte[j]);
    uidTag += teks;
  }
  Serial.print(" Nomor UID : ");
  Serial.println(uidTag);
  
  // Change status kartu
  mfrc.PICC_HaltA();
}


Code Kunci Pintu/Door Lock dengan RFID (Code Utama)


#include <SPI.h>

#include <MFRC522.h>

 

#define SS_PIN 10

#define RST_PIN 9

#define LED_Hijau 5 //LED Hijau

#define LED_Merah 4 //LED Merah

#define RELAY 3 //Relay untuk ke Kunci Pintu

#define BUZZER 2 //Buzzer Speaker

#define ACCESS_DELAY 2000

#define DENIED_DELAY 1000

MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.

 

void setup() 

{

  Serial.begin(9600);   // Initiate a serial communication

  SPI.begin();          // Initiate  SPI bus

  mfrc522.PCD_Init();   // Initiate MFRC522

  pinMode(LED_Hijau, OUTPUT);

  pinMode(LED_Merah, OUTPUT);

  pinMode(RELAY, OUTPUT);

  pinMode(BUZZER, OUTPUT);

  noTone(BUZZER);

  digitalWrite(RELAY, HIGH);

  Serial.println("Tempelkan Kartu Anda...");

  Serial.println();


}

void loop() 

{

  // Look for new cards

  if ( ! mfrc522.PICC_IsNewCardPresent()) 

  {

    return;

  }

  // Select one of the cards

  if ( ! mfrc522.PICC_ReadCardSerial()) 

  {

    return;

  }

  //Show UID on serial monitor

  Serial.print("UID tag :");

  String content= "";

  byte letter;

  for (byte i = 0; i < mfrc522.uid.size; i++) 

  {

     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");

     Serial.print(mfrc522.uid.uidByte[i], HEX);

     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));

     content.concat(String(mfrc522.uid.uidByte[i], HEX));

  }

  Serial.println();

  Serial.print("Message : ");

  content.toUpperCase();

  if (content.substring(1) == "EC B0 48 4A") //Ganti UID ini untuk akses yang diterima

  {

    Serial.println("UID Diterima");

    Serial.println();

    delay(500);

    digitalWrite(RELAY, LOW);

    digitalWrite(LED_Hijau, HIGH);

    delay(ACCESS_DELAY);

    digitalWrite(RELAY, HIGH);

    digitalWrite(LED_Hijau, LOW);

  }

 

 else   {

    Serial.println(" UID DItolak");

    digitalWrite(LED_Merah, HIGH);

    tone(BUZZER, 300);

    delay(DENIED_DELAY);

    digitalWrite(LED_Merah, LOW);

    noTone(BUZZER);

  }

}

Comments

Popular posts from this blog

Motor Servo dengan Sensor Ultrasonic

Coding: #include <Servo.h> #define trigPin 12 #define echoPin 11 Servo servo; int sound = 250; void setup() { Serial.begin (9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); servo.attach(9); } void loop() { long duration, distance; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration/2) / 29.1; if (distance < 10) { Serial.println("the distance is less than 10"); servo.write(180); delay(1500); } else { servo.write(0); } if (distance > 60 || distance <= 0){ Serial.println("The distance is more than 60"); } else { Serial.print(distance); Serial.println(" cm"); } delay(500); }

Automatic Fish Feed, Pemberi Makan Ikan Otomatis Dengan Timer

Automatic Fish feeder adalah alat untuk memberi makan ikan secara otomatis dengan menggunakan timer. Kita dapat mengatur jadwal pemberian makan ikan berdasarkan waktu, misalkan memberi makan ikan 2 kali sehari, artinya alat akan secara otomatis akan terbuka setiap 12 Jam sekali atau 4 kali sehari, 6 jam sekali. Waktu ini dapat kita atur sesuai dengan keinginan kita. Berikut coding lengkapnya, silahkan di copas dibawah ini: #include <Servo.h> Servo motor; void setup() {   motor.attach(9); } void loop() {   motor.write(200);   delay(8000); /* sama dengan setiap 6 jam atau sehari 4 kali*/   motor.write(120);   delay(200); }

Control LED dengan Push Button Arduino, Push Button Part 1

  Control LED dengan Push Button Arduino, Push Button Part 1 PUSH BUTTON PART 1. Belajar bagaimana cara membuat tombol atau push button untuk menyalakan lampu LED dengan menggunakan Arduino. Untuk Script silahkan copy paste dibawah ini: int led=2; int button=4; void setup(){   pinMode(led,OUTPUT);   pinMode(button,INPUT); } void loop(){   if(digitalRead(button)==HIGH){     digitalWrite(led,HIGH);     }   else{    digitalWrite(led,LOW);    } }