• Mikroavr
  • Arduino
    • program
    • Sensor
    • Project
  • IOT
  • Dasar
    • Rangkaian
  • Produk
  • About
Sabtu, Desember 14, 2019
  • Mikroavr
  • Arduino
    • program
    • Sensor
    • Project
  • IOT
  • Dasar
    • Rangkaian
  • Produk
  • About
No Result
View All Result
  • Mikroavr
  • Arduino
    • program
    • Sensor
    • Project
  • IOT
  • Dasar
    • Rangkaian
  • Produk
  • About
No Result
View All Result
No Result
View All Result
Home Arduino

Cara Mudah Menghidupkan Motor bahkan Mobil dengan Sidik Jari, Relay dan Arduino

by Jimmi Sitepu
Agustus 11, 2019
in Arduino
0

Menghidupkan Motor bahkan Mobil dengan Sidik Jari

Sensor Sidik Jari

Sensor Sidik jari sering kali di pakai untuk beberapa keperluan, biasa nya tampak nyata di sistem absensi di kantor kantor, absensi yang menggunakan finger print. Nah sensor finger print ini tidak lagi hanya di gunakan untuk absensi, tapi bisa di gunakan untuk keperluan lebih luas. Contoh nya adalah menghidupkan Sepeda Motor dan Mobil.
Sensor ini bisa menyimpan banyak sidik Jari, 180 sidik jari bisa disimpan, setidak nya itu yang sudah saya coba sendiri. Ingat, yang menyimpan sidik jari bukan Arduino nya, tapi modul finger print nya.

yang menyimpan sidik jari bukan Arduino nya, tapi modul finger print nya.

Sensor sidik jari ini membuat Sepeda motor kita menjadi lebih secure, canggih dan berbeda dengan lain nya. Gak kebayangkan, sistem nyala dan mati Kendaraan ini bisa di buat hanya dengan Arduino, Sensor Finger print dan Relay.

Interface Arduino dan Sensor Sidik Jari

Sensor sidik Jari ini bisa di hubungkan langsung ke Arduino kita nanti nya dengan interface komunikasi serial. Yups, karena Arduino punya library SoftwareSerial.h kita bisa menjadikan pin Digital biasa berubah fungsi menjadi komunikasi serial, TXD dan RXD. Jadi modul modul yang menggunakan interface komunikasi serial bisa di hubungkan dengan pin digital Biasa yang sudah di rubah fungsi nya menjadi interface komunikasi serial.

Beberapa contoh modul yang menggunakan interface komunikasi serial untuk menghidupkan sepeda motor adalah sim800, dfPlayer, modul Bluetooth dan tentu nya sensor sidik jari.

Untuk Produk finger Print buatan mikroavrnya bisa di lihat Gambar dibawah ini,

Untuk lebih jelas nya, seperti apa komunikasi Arduino dengan sidik jari, bisa kita lihat pada gambar rangkaian di bawah ini

Konfigurasi Finger Print dan Arduino

konfigurasi finger print penting untuk di perhatikan, agar program, hardware yang akan kita jalankan dapat bekerja dengan baik. Bisa jadi program nya sudah benar, tapi tidak jalan, karena kaki kaki nya tidak terhubung dengan benar. Untu lebih jelas nya Pin Out sidik jari bisa di lihat pada gambar di bawah ini

sensor sidik jari
sensor sidik jari

Tabel konfigurasi Pin finger print dan Arduino nya bisa dilihat pada Tabel di bawah ini,

Pin ArduinoFinger PrintRelay
2TXD 
3RXD 
GNDGNDGND
 +5V+5v
4 IN1
5 IN2

Untuk power supply finger print, lebih baik di ambil dari power supply tambahan, jangan di ambil dari +5v nya arduino, agar regulator internal Arduino nya tidak terlalu di bebani, yang akan menggangu kinerja dari Arduino itu sendiri. Power supply nya bisa di ambil dari mini DC to DC, atau modul LM2596 ( pastikan tegangan outnya 5V sebelum di hubungkan dengan finger print).

Untuk Relay nya bisa di gunakan modul relay, modul relay aktif Low. Saya pribadi sih malas menggunakan menggunakan modul kemudian di jumper jumper menggunakan kabel. Lebih mudah pakai PCB build, jadi tinggal program, case pun lebih mudah.

Jika teman teman ingin di desain PCB nya, menggunakan atmega328 smd, relay + modul finger print, bisa whatsapp kita, cukup tekan button merah di bawah ini

Order PCB

Coding Arduino dengan Sidik Jarinya

Sekarang final, bagaimana kah koding finger print nya? eh sebelum ke program final program nya, teman-teman harus pastikan dulu, download library finger print nya di link berikut.

https://github.com/adafruit/Adafruit-Fingerprint-Sensor-Library

nah, pastikan library ini sudah di include di arduino kita yah, kalo gak program yang kita jalan kan pasti error, pasti error. hehe.

langkah selanjut nya adalah register sidik jari kita, register sidik jari saya sendiri biasanya dari example program nya, enrol nama nya, untuk lebih jelas nya bisa di lihat pada gambar di bawah ini.

register_finger_print_arduino

Setelah program nya di upload, buka serial monitor, nanti ada perintah, tekan sidik jari, tekan sekali lagi, kemudian setelah berhasil, akan di beri no urut dari sidik jari kita, no 1 sampe 108. Gak sempat capture cara kerja nya.

Setelah program nya di upload, buka serial monitor, nanti ada perintah, tekan sidik jari, tekan sekali lagi,

Program Final Sidik Jari Kita

#mikroavr, Bagaimana kah program terakhir nya? Sebelum kesana kita bahas dulu cara kerja nya. Pertama tama modul relay ini bekerja aktif low, artinya jika di input logika 0 ke modul relay nya maka relay nya on, aktif.  Sebalik nya, jika di beri logika high maka relay menjadi off.

Ketika Sidik jari yang ter register di tempel, maka relay kontaktor akan on, terhubung ( kemarin katanya di hubungkan ke CDI nya speda motor. Tempel Sidik jari kedua akan starter speda motor, dan tempel sidik jari ke tiga akan mematikan relay atau speda motor. Namun ketika salah sidik jari selama tiga kali, maka akan ada jeda waktu selama 20 detik agar finger aktif kembali dan request finger print.

Bagaimana kah program final nya, yuk kita lihat di bawah ini

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>

SoftwareSerial mySerial(6, 7);
LiquidCrystal_I2C lcd(16, 2);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&amp;mySerial);

const byte SELENOID = A0;
byte count_salah = 0;
byte count_benar = 0;
String line1, line2;

void setup()  
{
  pinMode(SELENOID, OUTPUT);
  digitalWrite(SELENOID, LOW);
  Serial.begin(9600);
  delay(3000);
  while (!Serial);  // For Yun/Leo/Micro/Zero/...
  delay(100);
  lcd.autoAddress();
  lcd.begin();
  Serial.println("\n\nAdafruit finger detect test");

  // set the data rate for the sensor serial port
  finger.begin(57600);
  mySerial.listen();
  while (!finger.verifyPassword()){
    lcd.setCursor(0,0);
    lcd.print("Check Finger");
    delay(100);
  }
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Found Finger");
  delay(2000);
  lcd.clear();
  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();
  getFingerprintID();
  control();
  lcd.setCursor(0,0);
  lcd.print(line1);
  lcd.setCursor(0,1);
  lcd.print(line2);
  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!");
    Serial.println("Benar........");
    count_benar ++;
    count_salah = 0;
    if ( count_benar == 3) count_benar = 0;
    
  } else if (p == FINGERPRINT_PACKETRECIEVEERR) {
    Serial.println("Communication error");
    return p;
  } else if (p == FINGERPRINT_NOTFOUND) {
    Serial.println("Did not find a match");
    Serial.println("Salah.........");
    count_salah ++;
    if ( count_salah == 3) count_salah = 0;    
    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; 
}

void control(){
  switch(count_benar){
        case 0:
           line1 = "Smart Lock";
           line2 = "Tap Finger..";
           digitalWrite(SELENOID, LOW);
        break;
        case 1:
           line1 = "Smart Lock";
           line2 = "KEY OPEN....";
          digitalWrite(SELENOID, HIGH);
        break;
        case 2:
          digitalWrite(SELENOID, LOW);
          count_benar = 0;
        break;
  }
}

jika program di atas error, bisa lihat di link berikut ini,

https://pastebin.com/nXFwSBe4

Pada Sebenar nya hardware di atas menurut saya masih ada kelemahan, karena belum tentu sepeda motor hidup hanya sekali starter. Bisa dua kali starter, bisa tiga kali starter. Untuk menutupi kelemahan nya, kita sediakan input digital ke arduino, sebagai indikasi speda motor sudah hidup. Jika motor hidup, ada tanda di Arduino nya.

Sediakan input sensor sebagai penanda bahwa sepeda motor hidup

Coba modifikasi program di atas untuk lebih sempurna, selamat berkreasi

Thanks

#mikroavr

#Learning&Sharing

Tags: finger printsidik jari
Previous Post

Project Sensor Tekanan Air dan Udara dengan Arduino

Next Post

Sensor Suhu DS18b20 denga Arduino dan Menampilkan nya di LCD

Jimmi Sitepu

Hobbyist Embedded System, Robotic, IOT and write all about them. So we have nice quote "Learning and Sharing"

Next Post
Sensor Suhu DS18b20 denga Arduino dan Menampilkan nya di LCD

Sensor Suhu DS18b20 denga Arduino dan Menampilkan nya di LCD

Macam-Macam Sensor Arus pada Rangkaian Elektronik

Macam-Macam Sensor Arus pada Rangkaian Elektronik

Mudah nya belajar Arduino dengan Modul Belajar Arduino buatan mikroavr.com

Mudah nya belajar Arduino dengan Modul Belajar Arduino buatan mikroavr.com

  • Trending
  • Comments
  • Latest
tabel warna resistor

Kode Warna Resistor Seperti Resistor 1k dan Resistor 100k dan Cara Menghitung nya

Maret 29, 2018
manfaat mosfet

Pengertian MOSFET, Cara Kerja dan Manfaat nya

Mei 4, 2018
Alat Penambah Daya Listrik PLN Dirumah, Murah dan Berkualitas

Alat Penambah Daya Listrik PLN Dirumah, Murah dan Berkualitas

Februari 7, 2019
rangkaian paralel dan rangkaian seri

Rumus Rangkaian Seri dan Paralel pada Resistor Dalam Sistem Elektronika

Februari 7, 2018
alarm anti maling battrey

PROJECT ALARM ANTI MALING DENGAN SIM800L

0
sensor detak jantung atmega16

Projek Sederhana Sensor Detak Jantung denga Atmega

0
Modul GSM SIM800L

Testing SIM800 Dengan PuTTY Untuk Tugas Akhir

0
water flow sensor

BELAJAR WATER FLOW SENSOR DENGAN ATMEGA DAN CODEVISION

0
Jasa Desain PCB, Arduino Custome dan PCB lain

Jasa Desain PCB, Arduino Custome dan PCB lain

Oktober 23, 2019
ESP32 Lora Gateway Arduino dengan 2 Node Lora Uno di frequency 923Mhz

ESP32 Lora Gateway Arduino dengan 2 Node Lora Uno di frequency 923Mhz

Oktober 11, 2019
Cara Membuat Alat Pengukur Nilai Resistor Menggunakan Arduino

Cara Membuat Alat Pengukur Nilai Resistor Menggunakan Arduino

Oktober 2, 2019
Modul LoRa Arduino Dengan 3 Output Relay dan 3 Input Digital, LOS 10km-14km

Modul LoRa Arduino Dengan 3 Output Relay dan 3 Input Digital, LOS 10km-14km

September 13, 2019
ADVERTISEMENT
  • tabel warna resistor

    Kode Warna Resistor Seperti Resistor 1k dan Resistor 100k dan Cara Menghitung nya

    0 shares
    Share 0 Tweet 0
  • Pengertian MOSFET, Cara Kerja dan Manfaat nya

    0 shares
    Share 0 Tweet 0
  • Alat Penambah Daya Listrik PLN Dirumah, Murah dan Berkualitas

    0 shares
    Share 0 Tweet 0
  • Rumus Rangkaian Seri dan Paralel pada Resistor Dalam Sistem Elektronika

    0 shares
    Share 0 Tweet 0
  • Fungsi Transistor NPN dan PNP pada Rangkaian Elektronik

    0 shares
    Share 0 Tweet 0
Privasi & Cookie: Situs ini menggunakan cookie. Dengan melanjutkan menggunakan situs web ini, Anda setuju dengan penggunaan mereka.
Untuk mengetahui lebih lanjut, termasuk cara mengontrol cookie, lihat di sini:Kebijakan Cookie

Browse by Category

  • Arduino
  • Ebook
  • IOT
  • jasa
  • Komponen
  • PCB
  • Produk
  • program Arduino
  • Project
  • Rangkaian
  • Sensor
  • Tips
  • Uncategorized

Recent News

Jasa Desain PCB, Arduino Custome dan PCB lain

Jasa Desain PCB, Arduino Custome dan PCB lain

Oktober 23, 2019
ESP32 Lora Gateway Arduino dengan 2 Node Lora Uno di frequency 923Mhz

ESP32 Lora Gateway Arduino dengan 2 Node Lora Uno di frequency 923Mhz

Oktober 11, 2019
No Result
View All Result
  • Mikroavr
  • Arduino
    • program
    • Sensor
    • Project
  • IOT
  • Dasar
    • Rangkaian
  • Produk
  • About

© 2018 mikroavr.com All right reserved

Login to your account below

Forgotten Password?

Fill the forms bellow to register

All fields are required. Log In

Retrieve your password

Please enter your username or email address to reset your password.

Log In
Open chat
1
Hii...
Ada yang bisa di bantu?
Powered by