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); }

Sensor Pendeteksi Warna - Sortir Barang Dengan Sensor Warna | TCS230

Video Kali ini kita akan membahas mengenai sensor warna. Menunjukkan bagaimana cara kerjanya, cara menghubungkannya, cara mengkalibrasinya, dan cara mengekstrak nilai RGB dari sensor. TCS230 (juga dikenal sebagai TCS3200) adalah sensor warna yang populer dan murah. Ini menghasilkan gelombang yang frekuensinya mencerminkan intensitas warna. Ini juga memiliki fitur interupsi yang dapat diprogram yang dapat Anda atur untuk memicu sebagai respons terhadap warna tertentu. Sensor ini akan berguna dalam merancang robot yang mengikuti warna, penyortir produk yang di tandai dengan sebuah warna khusus.  Tetapi sebelum Anda menggunakannya, Anda harus mengkalibrasinya. Sensor ini dapat di aplikasikan atau diterapkan pada industri-industri untuk penyortiran atau pemisahan suatu produk pada saat dikemas atau packing, sehingga proses penyortiran dapat lebih cepat dan efisien. Copy dan paste script dibawah ini: FILE 1: KALIBRASI SENSOR #define S0 4 #define S1 5 #define S2 6 #define S3 7 #define se...

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);    } }