ABSENSI RFID

 Module/Perangkat yang dibutuhkan:

Arduino Uno

Modul RFID RC522

Kartu RFID

Jumper Male-Female secukupnya


Langkah perakitan

-Hubungkan Arduino UNO dan RFID RC522 dengan kabel Jumper seperti pada gambar di bawah ini:


-Setelah itu buka dan masukkan program berikut ke dalam aplikasi Arduino:


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

#define SS_PIN 10 
#define RST_PIN 9

MFRC522 mfrc522(SS_PIN, RST_PIN);

byte card_ID[7]; 
byte Name1[7] = {0x4A, 0x70, 0xE6, 0x0B};
byte Name2[7] = {0x05, 0x88, 0x24, 0x6F, 0xB6, 0x32, 0x00};

int NumbCard[2];
int j = 0;
int statu[2];
int s = 0;

int const RedLed = 6;
int const GreenLed = 5;
int const Buzzer = 8;

String Log;
String Nama;
long Identitas;
int n ;

void setup() {

  Serial.begin(9600);
  SPI.begin();  
  mfrc522.PCD_Init(); 

  Serial.println("CLEARSHEET");               
  Serial.println("LABEL,Date,Nama,Identitas,Waktu Masuk,Waktu Keluar");

  pinMode(RedLed, OUTPUT);
  pinMode(GreenLed, OUTPUT);
  pinMode(Buzzer, OUTPUT);

  delay(200);
}

void loop() {
  //look for new card
  if ( ! mfrc522.PICC_IsNe  wCardPresent()) {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial()) {
    return;
  }

  for (byte i = 0; i < mfrc522.uid.size; i++) {
    card_ID[i] = mfrc522.uid.uidByte[i];

    if (card_ID[i] == Name1[i]) {
      Nama = "White Card"; 
      Identitas = 123456;
      j = 0;
      s = 0;
    }
    else if (card_ID[i] == Name2[i]) {
      Nama = "KTP"; 
      Identitas = 789101; 
      j = 1;
      s = 1;
    }
    else {
      digitalWrite(GreenLed, LOW);
      digitalWrite(RedLed, HIGH);
      goto cont;
    }
  }
  if (NumbCard[j] == 1 && statu[s] == 0) {
    statu[s] = 1;
    Serial.print("DATA,DATE," + Nama);
    Serial.print(",");
    Serial.print(Identitas); 
    Serial.print(",");
    Serial.print("");
    Serial.print(",");
    Serial.println("TIME");

  }
  else if (NumbCard[j] == 0) {
    NumbCard[j] = 1;
    n++;
    Serial.print("DATA,DATE," + Nama);
    Serial.print(",");
    Serial.print(Identitas);
    Serial.print(",");
    Serial.print("TIME");
    Serial.print(",");
    Serial.println("");
    digitalWrite(GreenLed, HIGH);
    digitalWrite(RedLed, LOW);
    digitalWrite(Buzzer, HIGH);
    delay(30);
    digitalWrite(Buzzer, LOW);
  }
  else if (statu[s] == 1) {
    
    digitalWrite(RedLed, HIGH);
  }
  delay(1000);
cont:
  delay(2000);
  digitalWrite(GreenLed, LOW);
  digitalWrite(RedLed, LOW);
}

-Untuk mengetahui UID dari Kartu RFID, klik File > Examples > MFRC522 > rfid_read_personal_data:
-Kemudian klik Upload
-B
uka Serial Monitor

Comments