Tutorial Fingerprint Doorlock Arduino – Membuka Kunci Pintu Dengan Sidik Jari

Tutorial Fingerprint Doorlock Arduino – Membuka Kunci Pintu Dengan Sidik Jari

Tutorial Sebelumnya:

Cara Mudah Program FingerPrint Dengan Arduino (ENROLL, FINGEPRINT, DELETE)

Ok gan hari ini kita akan belajar membuat Fingerprint Doorlock Arduino, yang mana alat ini bisa digunakan untuk membuka kunci pintu Rumah, Kantor, Sekolah, Ruang Sekre, dan sebagainya dengan menggunakan Sidik Jari.

Lalu apa saja bahan yang dibutuhkan:

  1. Arduino Uno [BELI]
  2. Sensor Fingerprint [BELI]
  3. Solenoid Doorlock [BELI]
  4. Breadboard [BELI]
  5. Kabel Jumper [BELI]
  6. Sensor Sentuh [BELI]
  7. IRF520 [BELI]
  8. Adaptor 12 Volt [BELI]

Jika bahan2nya sudah disiapkan, silahkan ikuti rangkaian dibawah ini:

KLIK GAMBAR UNTUK MEMPERBESAR

Pastikan agan memasang rangkaian sesuai dengan gambar, jika perlu cek kembali rangkaian yang udah agan buat dengan gambar.

WARNING: Sebelum ke Pemrograman agan perlu mendaftarkan (ENROLL) Jari agan dulu ke Sensor Fingerprint, Tutorialnya ada di posting sebelumnya silahkan buka:

Cara Mudah Program FingerPrint Dengan Arduino (ENROLL, FINGEPRINT, DELETE)

Jika sudah agan daftarkan, sekarang agan tinggal Upload Program Fingerprint Doorlock dibawah ini:

#include "Adafruit_Fingerprint.h"
#include "SoftwareSerial.h"
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

byte sensorsentuh = 4;
int nilaisensor;
byte irf = 5;
int idFinger;

void setup() {
  Serial.begin(9600);
  finger.begin(57600);

  pinMode(sensorsentuh, INPUT);
  pinMode(irf, OUTPUT);

  if (finger.verifyPassword()) {
    Serial.println("FingerPrint Sensor Ditemukan!");
  } else {
    Serial.println("FingerPrint Sensor Tidak Ditemukan! :(");
    while (1) {
      delay(1);
    }
  }

}

void loop() {
  FINGERPRINT();
  nilaisensor = digitalRead(sensorsentuh);
  Serial.println(nilaisensor);

  if (idFinger >= 0) {
    digitalWrite(irf, HIGH);
    delay(5000);
    digitalWrite(irf, LOW);
  }
  if (nilaisensor == 1) {
    digitalWrite(irf, HIGH);
    delay(5000);
    digitalWrite(irf, LOW);
  }
}

//----------------------------------------------------FINGERPRINT----------------------------------------------//
void FINGERPRINT() {
  idFinger = getFingerprintIDez();
  delay(50);
}

//----------------------------------------------------PROSES FINGERPRINT--------------------------------------//

uint8_t getFingerprintID() {
  uint8_t p = finger.getImage();
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image taken");
      break;
    case FINGERPRINT_NOFINGER:
      Serial.println("No finger detected");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      return p;
    case FINGERPRINT_IMAGEFAIL:
      Serial.println("Imaging error");
      return p;
    default:
      Serial.println("Unknown error");
      return p;
  }

  // OK success!

  p = finger.image2Tz();
  switch (p) {
    case FINGERPRINT_OK:
      Serial.println("Image converted");
      break;
    case FINGERPRINT_IMAGEMESS:
      Serial.println("Image too messy");
      return p;
    case FINGERPRINT_PACKETRECIEVEERR:
      Serial.println("Communication error");
      return p;
    case FINGERPRINT_FEATUREFAIL:
      Serial.println("Could not find fingerprint features");
      return p;
    case FINGERPRINT_INVALIDIMAGE:
      Serial.println("Could not find fingerprint features");
      return p;
    default:
      Serial.println("Unknown error");
      return p;
  }

  // OK converted!
  p = finger.fingerFastSearch();
  if (p == FINGERPRINT_OK) {
    Serial.println("Found a print match!");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_NOTFOUND) {
    Serial.println("Did not find a match");
    return p;
  } else {
    Serial.println("Unknown error");
    return p;
  }

  // found a match!
  Serial.print("Found ID #"); Serial.print(finger.fingerID);
  Serial.print(" with confidence of "); Serial.println(finger.confidence);

  return finger.fingerID;
}

// returns -1 if failed, otherwise returns ID #
int getFingerprintIDez() {
  uint8_t p = finger.getImage();
  if (p != FINGERPRINT_OK)  return -1;

  p = finger.image2Tz();
  if (p != FINGERPRINT_OK)  return -1;

  p = finger.fingerFastSearch();
  if (p != FINGERPRINT_OK)  return -1;

  // found a match!
  Serial.print("Found ID #"); Serial.print(finger.fingerID);
  Serial.print(" with confidence of "); Serial.println(finger.confidence);
  return finger.fingerID;
}

//--------------------------------END FINGERPRINT----------------------------------------------//

 

Selanjutnya silahkan tekan UPLOAD, sampai DONE UPLOADING.

Bagi yang masih kebingungan, saya sudah buat VIDEO TUTORIAL nya, dibawah ini:

You May Also Like

About the Author: Ajang Rahmat