fbpx
Logo Kecil Indobot
  • Pelatihan

    Belajar Mandiri

    Paket Elektronika Hebat
    Paket IoT Dasar Lanjutan
    Paket IoT Smart Farming
    Paket IoT Smart Home
    Paket IoT Smart City
    Paket IoT Smart Device
    Paket IoT Smart Monitoring

    Bootcamp

    IoT Master Class
    IoT Engineer Camp

    Kelas Zoom

    Belajar Desain PCB
    Reparasi Elektronika
    AI Computer Vision
    IoT Smart Metering
    IoT Smart City
    Belajar PLC HMI

    Sertifikasi

    Sertifikasi BNSP IoT
    Sertifikasi CertNexus
    Sertifikasi Lainnya
  • Program

    Program

    Afiliasi Komisi Menarik
    Promo Diskon Spesial
    Indobot Virtual Event
    Download Ebook

    Jasa IoT

    Jasa Buat Alat IoT Murah
    Jasa Arduino IoT Terbaik

    Bantuan

    Panduan Dasar
    Rekomendasi Kelas
    Cara Pembayaran

    Kerjasama

    Studi Independen Kemdikbud
    Digitalent PROA Kominfo
    KiDi IoT Antares Telkom
  • Perusahaan

    Tentang Kami

    Indobot Academy adalah salah satu brand yang menyediakan pelatihan dan training IoT dibawah naungan PT Ozami Inti Sinergi. PT Ozami Inti Sinergi adalah Badan Hukum yang berdiri pada dengan Nomor AHU-00802.AH.02.01-Tahun 2016.

    Kontak Kami

    Alamat : Jl. Affandi No 5, Kec. Depok Kab. Sleman, D.I Yogyakarta 55281

    No WA: 085731636408
    Email: office@indobot.co.id

    Daftar Karir

    Internship
    HR Generalist
    SPV Sales
    SPV Marketing
    Pengembang Kurikulum

    Review

    Ribuan orang sudah mereview layanan Indobot Academy.

  • Blog
Indobot Academy
  • Pelatihan
  • Program
  • Perusahaan
  • Blog
Menu
  • Pelatihan
  • Program
  • Perusahaan
  • Blog
Logo Kecil Indobot
Search
Close this search box.
Sertifikasi BNSP IoT Indobot Academy
Home Berita Lainnya

Cara Mendaftarkan Sidik Jari Pada Sensor Fingerprint

Indobot Academy by Indobot Academy
13/09/2021
in Lainnya
Reading Time: 3 mins read
1
Running Teks Sederhana dengan Dot Matrix 8×8
Share on FacebookShare on Twitter

Modul Sensor Fingerprint merupakan modul sensor yang berfungsi pemindaian identitas sidik jari manusia yang bersifat unik. Fingerprint kerap kali digunakan sebagai opsi untuk mengamankan suatu benda, tak jarang fingerprint juga digunakan sebagai media akses kedalam rumah. Kali ini kita akan mencoba mendaftarkan sidik jari pada sensor fingerprint.

[membership level=”0,1,2,4″]

1. Alat / Bahan
  • Arduino IDE                                  Download disini
  • Library: Fingerprint                       Download disini
  • Sensor Fingerprint                       1 Buah
  • Arduino UNO                               1 Buah
  • Kabel Jumper                              Secukupnya

Untuk mendapatkan komponen elektronik di atas silahkan temukan disini.

2. Skema Rangkaian

Gambar Rangkaian Cara Mendaftarkan Sidik Jari Pada Sensor Fingerprint

Keterangan:

  • 5V – VCC Fingerprint
  • GND – GND Fingerprint
  • D2 – TX Fingerprint
  • D3 – RX Fingerprint

[/membership]

3. Langkah Kerja
  1. Siapkan alat dan bahan yang akan digunakan
  2. Lakukan proses wiring dengan menggunakan Gambar skematik rangkaian diatas
  3. Buka software Arduino IDE yang telah terinstal pada laptop/komputer
  4. Unduh semua library di atas dan masukkan libray tersebut dengan cara buka Arduino IDE pilih Sketch->Include Library->Add.Zip Library 
  5. Ketikkan sketch program pada halaman Arduino IDE
  6. Upload sketch enroll untuk mendaftarkan sidik jari, upload sketch fingerprint untuk menguji sidik jari yang telah didaftarkan, upload sketch delete untuk menghapus sidik jari yang tersimpan
4. Sketch Program

Dapatkan puluhan ebook gratis dengan registrasi melalui tombol di bawah!

Program Enroll

 
/* Program Cara Mendaftarkan Sidik Jari Pada Sensor Fingerprint dibuat oleh Indobot */

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

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

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

}

void loop() {
  ENROLL();
}

//---------------------------------------ENROLL--------------------------------------------------------------//
void ENROLL() {
  Serial.println("Ready to enroll a fingerprint!");
  Serial.println("Please type in the ID # (from 1 to 127) you want to save this finger as...");
  id = readnumber();
  if (id == 0) {// ID #0 not allowed, try again!
    return;
  }
  Serial.print("Enrolling ID #");
  Serial.println(id);

  while (!  getFingerprintEnroll() );
}

//------------------------------------PROSES ENROLL----------------------------------------------------------//

uint8_t readnumber(void) {
  uint8_t num = 0;

  while (num == 0) {
    while (! Serial.available());
    num = Serial.parseInt();
  }
  return num;
}

//----RETURN NUM-------------------//

uint8_t getFingerprintEnroll() {
  int p = -1;
  Serial.print("Waiting for valid finger to enroll as #"); Serial.println(id);
  while (p != FINGERPRINT_OK) {
    p = finger.getImage();
    switch (p) {
      case FINGERPRINT_OK:
        Serial.println("Image taken");
        break;
      case FINGERPRINT_NOFINGER:
        Serial.println(".");
        break;
      case FINGERPRINT_PACKETRECIEVEERR:
        Serial.println("Communication error");
        break;
      case FINGERPRINT_IMAGEFAIL:
        Serial.println("Imaging error");
        break;
      default:
        Serial.println("Unknown error");
        break;
    }
  }

  // OK success!

  p = finger.image2Tz(1);
  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;
  }

  Serial.println("Remove finger");
  delay(2000);
  p = 0;
  while (p != FINGERPRINT_NOFINGER) {
    p = finger.getImage();
  }
  Serial.print("ID "); Serial.println(id);
  p = -1;
  Serial.println("Place same finger again");
  while (p != FINGERPRINT_OK) {
    p = finger.getImage();
    switch (p) {
      case FINGERPRINT_OK:
        Serial.println("Image taken");
        break;
      case FINGERPRINT_NOFINGER:
        Serial.print(".");
        break;
      case FINGERPRINT_PACKETRECIEVEERR:
        Serial.println("Communication error");
        break;
      case FINGERPRINT_IMAGEFAIL:
        Serial.println("Imaging error");
        break;
      default:
        Serial.println("Unknown error");
        break;
    }
  }

  // OK success!

  p = finger.image2Tz(2);
  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!
  Serial.print("Creating model for #");  Serial.println(id);

  p = finger.createModel();
  if (p == FINGERPRINT_OK) {
    Serial.println("Prints matched!");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_ENROLLMISMATCH) {
    Serial.println("Fingerprints did not match");
    return p;
  } else {
    Serial.println("Unknown error");
    return p;
  }

  Serial.print("ID "); Serial.println(id);
  p = finger.storeModel(id);
  if (p == FINGERPRINT_OK) {
    Serial.println("Stored!");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_BADLOCATION) {
    Serial.println("Could not store in that location");
    return p;
  } else if (p == FINGERPRINT_FLASHERR) {
    Serial.println("Error writing to flash");
    return p;
  } else {
    Serial.println("Unknown error");
    return p;
  }
}

//---------------------------------------ENROLL END--------------------------------//

Program Fingerprint

 
/* Program Cara Mendaftarkan Sidik Jari Pada Sensor Fingerprint dibuat oleh Indobot */

#include <Adafruit_Fingerprint.h>

// On Leonardo/Micro or others with hardware serial, use those! #0 is green wire, #1 is white
// uncomment this line:
// #define mySerial Serial1

// For UNO and others without hardware serial, we must use software serial...
// pin #2 is IN from sensor (GREEN wire)
// pin #3 is OUT from arduino  (WHITE wire)
// comment these two lines if using hardware serial
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3);

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup()  
{
  Serial.begin(9600);
  while (!Serial);  // For Yun/Leo/Micro/Zero/...
  delay(100);
  Serial.println("\n\nAdafruit finger detect test");

  // set the data rate for the sensor serial port
  finger.begin(57600);
  
  if (finger.verifyPassword()) {
    Serial.println("Found fingerprint sensor!");
  } else {
    Serial.println("Did not find fingerprint sensor :(");
    while (1) { delay(1); }
  }

  finger.getTemplateCount();
  Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates");
  Serial.println("Waiting for valid finger...");
}

void loop()                     // run over and over again
{
  getFingerprintIDez();
  delay(50);            //don't ned to run this at full speed.
}

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

Program Delete

 
/* Program Cara Mendaftarkan Sidik Jari Pada Sensor Fingerprint dibuat oleh Indobot */

#include <Adafruit_Fingerprint.h>

// On Leonardo/Micro or others with hardware serial, use those! #0 is green wire, #1 is white
// uncomment this line:
// #define mySerial Serial1

// For UNO and others without hardware serial, we must use software serial...
// pin #2 is IN from sensor (GREEN wire)
// pin #3 is OUT from arduino  (WHITE wire)
// comment these two lines if using hardware serial
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3);

Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

void setup()  
{
  Serial.begin(9600);
  while (!Serial);  // For Yun/Leo/Micro/Zero/...
  delay(100);
  Serial.println("\n\nDelete Finger");

  // set the data rate for the sensor serial port
  finger.begin(57600);
  
  if (finger.verifyPassword()) {
    Serial.println("Found fingerprint sensor!");
  } else {
    Serial.println("Did not find fingerprint sensor :(");
    while (1);
  }
}


uint8_t readnumber(void) {
  uint8_t num = 0;
  
  while (num == 0) {
    while (! Serial.available());
    num = Serial.parseInt();
  }
  return num;
}

void loop()                     // run over and over again
{
  Serial.println("Please type in the ID # (from 1 to 127) you want to delete...");
  uint8_t id = readnumber();
  if (id == 0) {// ID #0 not allowed, try again!
     return;
  }

  Serial.print("Deleting ID #");
  Serial.println(id);
  
  deleteFingerprint(id);
}

uint8_t deleteFingerprint(uint8_t id) {
  uint8_t p = -1;
  
  p = finger.deleteModel(id);

  if (p == FINGERPRINT_OK) {
    Serial.println("Deleted!");
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_BADLOCATION) {
    Serial.println("Could not delete in that location");
    return p;
  } else if (p == FINGERPRINT_FLASHERR) {
    Serial.println("Error writing to flash");
    return p;
  } else {
    Serial.print("Unknown error: 0x"); Serial.println(p, HEX);
    return p;
  }   
}

Kesimpulan:

Program bekerja melalui 3 tahap program.

Program pertama adalah entroll yang digunakan untuk memasukan dan menyimpan sidik jari yang kita masukan. Pada program entroll mula mula program akan mendeteksi ada tidaknya sensor fingerprint bila ada makan serial monitor akan mampilkan “Fingerprint Sensor Ditemukan” kemudian kita siap untuk memasukan data sidik jari, sebelum itu masukan ID untuk menyimpan kode fingerprint, kemudian tempelkan jari yang sidiknya akan disimpan tunggu beberapa saat hingga serial monitor menampilkan pemberitahuan “Image taken” “Image Converted” dan lepas jari ketika serial monitor menampilkan pemberitahuan “remove finger” kemudian ikuti intruksi yang tertera di serial monitor hingga serial monitor menampilkan pemberitahuan “Stored”.

Program kedua adalah fingerprint yang digunakan untuk mendeteksi apakah sidik jari sudah bener terdaftar atau belum. Setelah program berhasil di upload cobalah mengakses fingerprint dengan jari yang sudah didaftarkan apabila akses berhasil maka serial monitor akan menampilkan ID yang telah dibuat.

Program terakhir adalah delete yang digunakan untuk menghapus data sidik jari yang di daftarkan, jalankan program tersebut hingga tertampil perintah untuk memasukan ID yang akan dihapus. Ketik ID yang akan dihapus lalu tunggu hingga serial monitor menamiplkan pemberitahuan “Deleted” yang berarti data sidik jari ID yang dituju telah terhapus. Untuk memastikannya cobalah akses dengan program fingerprint maka akses akan ditolak.

[/membership]

Mau belajar elektronika dasar? Arduino? atau Internet of Things? Ikuti kursus online Indobot Academy!

Webinar Gratis Indobot Academy
Previous Post

Tutorial IoT Membuat Pengukur Jarak dengan Sensor Ultrasonik dan Blynk

Next Post

Membuat Tasbih Digital dengan Modul 7 Segment

RelatedPosts

apa itu led adalah
Lainnya

Apa itu LED dalam Elektronika?

Apa itu LED dalam Elektronika? LED (Light Emitting Diode) adalah sebuah komponen elektronika semikonduktor yang mengubah energi listrik menjadi cahaya....

by Indobot Update
24/05/2023
14
Xylobands Bakal Dipakai Saat Konser Coldplay
Lainnya

Xylobands Bakal Dipakai Saat Konser Coldplay

Halo Fanbot! Indonesia masih gempar banget nih gara-gara bakal kedatangan Coldplay dengan konser turnya di 15 November nanti! Dibalik kehebohan...

by Indobot Update
19/05/2023
14
surat
Lainnya

Contoh Surat Permintaan Barang Alat Tulis Kantor

Halo Fanbot! Kamu pasti sering kebingungan bagaimana sih caranya untuk meminta peralatan tambahan di kantor? Nah kali ini Minbot...

by Indobot Update
19/05/2023
10
Diklat Nasional 32JP Gratis!
Lainnya

Diklat Nasional 32JP Gratis!

Diklat Nasional 32JP Gratis memiliki beberapa tujuan utama yang ingin dicapai melalui program pelatihan ini. Berikut adalah beberapa tujuan utama...

by Indobot Update
17/05/2023
73
Setting meja kerja kantor minimalis biar makin produktif
Lainnya

Setting Meja Kerja Kantor Minimalis Biar Makin Produktif

Yuk, setting meja kerja kantor minimalis biar fanbot semakin Produktif. Ada perkataan menurut Jayne Morris, life coach dari NHS, bahwa...

by Indobot Update
12/05/2023
17
manfaat tools ai selain chatGPT
Lainnya

Bukan Hanya ChatGPT, Ini Tools AI yang Kamu Harus Tahu

Bukan Hanya ChatGPT, Ini Tools AI yang harus kamu tahu. Masih banyak banget lho Fanbot! Kira-kira tools keren kaya apa...

by Indobot Update
11/05/2023
23
Next Post
Membuat Tasbih Digital dengan Modul 7 Segment

Membuat Tasbih Digital dengan Modul 7 Segment

Tinggalkan Balasan Batalkan balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *

sertifikasi iot BNSP

Artikel Populer

  • Aturan Mengambil Gambar

    Aturan Mengambil Gambar dan Cara Mencantumkan Sumbernya

    0 shares
    Share 0 Tweet 0
  • 5 Projek Arduino Sederhana dan Keren yang Mudah Dibuat

    0 shares
    Share 0 Tweet 0
  • Datasheet NodeMCU ESP8266 Lengkap dengan Pin dan Cara Akses

    0 shares
    Share 0 Tweet 0
  • Mengenal ESP32-Cam dan bagaimana cara menggunakannya

    0 shares
    Share 0 Tweet 0
  • Project Blynk IoT Terbaru: Tutorial Pengoperasian Blynk IoT

    0 shares
    Share 0 Tweet 0

Indobot Academy

Visi menjadi perusahaan yang terbaik, terpercaya dan unggul dalam bidang edukasi IoT skill 4.0 bagi mitra dan konsumen.

Kantor Pusat Yogyakarta
Jl. Affandi No 5, Kec. Depok  Kab. Sleman, D.I Yogyakarta 55281

Email: office@indobot.co.id

Pelatihan

  • Belajar Mandiri
  • Kelas Zoom
  • Bootcamp
  • Sertifikasi Profesi
  • Kelas IoT Terbaik
  • Training IoT Terbaik
  • Pelatihan IoT Terbaik
  • Webinar IoT Gratis
  • Indobot Premium

Jasa IoT

  • Jasa Buat Alat IoT Murah
  • Jasa Arduino IoT Terbaik

Belajar Mandiri

  • Paket Elektronika Hebat
  • Paket IoT Dasar Lanjutan
  • Paket IoT Smart Farming
  • Paket IoT Smart Home
  • Paket IoT Smart City
  • Paket IoT Smart Device
  • Paket IoT Smart Monitoring

Kelas Zoom

Bootcamp

  • IoT Master Class
  • IoT Engineer Camp

Sertifikasi

  • Sertifikasi BNSP IoT
  • Sertifikasi CertNexus
  • Sertifikasi Lainnya

Program

  • Afiliasi Komisi Menarik
  • Promo Diskon Spesial
  • Indobot Virtual Event
  • Download Ebook

Perusahaan

  • Tentang Indobot
  • Kontak Kami
  • Daftar Karir
  • Review Pelanggan

Bantuan

  • Panduan Dasar
  • Rekomendasi Kelas
  • Cara Pembayaran

Kerjasama

  • Studi Independen Kemdikbud
  • Digitalent PROA Kominfo
Copyright ©2023 Indobot Academy | PT Ozami Inti Sinergi | Perusahaan Training IoT Terbaik.
  • Syarat dan Ketentuan
  • Kebijakan Privasi
whatsapp
sertifikasi iot BNSP