Sebelum Membuat Security System Kontak Sepeda Motor Menggunakan RFID dan Fingerprint Berbasis Arduino Nano dengan Notifikasi SMS, lebih baik anda membaca terlebih dahulu mengenai Arduino Nano, RFID, dan Fingerprint. Alat ini sangat bermanfaat untuk di daerah yang rawan pencurian kendaraan bermotor. Karena motor hanya bisa di nyalakan menggunakan Kartu RFID milik kita dan Sidik jari milik kita. Pengamanan berlapis.
Baca Juga : Tutorial Membaca E-KTP (KTP Elektronik) dengan RFID Reader RC522 Berbasis Arduino Uno .
Berikut ini adalah Schematics Diagram dari Security System Kontak Sepeda Motor Menggunakan RFID dan Fingerprint Berbasis Arduino Nano dengan Notifikasi SMS :
Berikut ini adalah Hardware yang dibutuhkan :
/***************************
Tutorial Membuat Security System Kontak Sepeda Motor Menggunakan RFID dan Fingerprint Berbasis Arduino Nano dengan Notifikasi SMS
Oleh : Arduino Indonesia
Website : www.arduinoindonesia.id
Toko Online : www.workshopelectronics3in1.com
Blog : www.edukasielektronika.com
Copyright @2021
****************************/
//Library and Declaration Finger Print
#include <Wire.h>
#include <Adafruit_Fingerprint.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(5, 4);
int fingerprintID = 00;
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
//Library and Declaration RFID
#include <SPI.h>
#include <RFID.h>
#define SS_PIN 10
#define RST_PIN 9
RFID rfid(SS_PIN,RST_PIN);
int serNum[5]; //Variable buffer Scan Card
int cards[10][5] = {{117, 201, 155, 115, 84}, //YOSHUA - 0
{36, 58, 122, 137, 237}, //ANITA - 1
};
bool access = false;
String Nama;
int count;
//Declaration Relay Output
const int Relay_Kontak = 6;
const int Relay_Starter = 7;
//Declaration Communication to SIM800L
const int SMS = 2;
void setup()
{
Serial.begin(9600);
finger.begin(57600);
Wire.begin();
SPI.begin();
rfid.init();
pinMode(Relay_Kontak, OUTPUT);
pinMode(Relay_Starter, OUTPUT);
pinMode(SMS, OUTPUT);
digitalWrite(Relay_Kontak, LOW);
digitalWrite(Relay_Starter, LOW);
digitalWrite(SMS, LOW);
if (finger.verifyPassword())
{
Serial.println("Sensor ditemukan");
delay(500);
}
else
{
Serial.println("no sensor :(");
delay(500);
while (1)
{
delay(1);
}
}
while (!Serial)
{
; // wait for serial port to connect. Needed for native USB port only
}
}
void loop()
{
fingerprintID = getFingerprintIDez();
delay(50);
if(fingerprintID == 1)
{
String IDname_1 = "YOSHUA";
digitalWrite(Relay_Starter, HIGH);
delay(2500);
digitalWrite(Relay_Starter, LOW);
Serial.println(IDname_1);
fingerprintID = 00;
}
else if(fingerprintID == 2)
{
String IDname_2 = "ANITA";
digitalWrite(Relay_Starter, HIGH);
delay(2500);
digitalWrite(Relay_Starter, LOW);
Serial.println(IDname_2);
fingerprintID = 00;
}
if(rfid.isCard())
{
if(rfid.readCardSerial())
{
for(int x = 0; x < sizeof(cards); x++)
{
for(int i = 0; i < sizeof(rfid.serNum); i++ )
{
if(rfid.serNum[i] == cards[0][i])
{
access = true;
Nama = "YOSHUA";
}
else if(rfid.serNum[i] == cards[1][i])
{
access = true;
Nama = "ANITA";
}
else
{
access = false;
break;
}
}
if(access)break;
}
}
if(access)
{
count++;
if(count==1)
{
Serial.println(Nama);
digitalWrite(Relay_Kontak, HIGH);
}
if(count==2)
{
Serial.println("Motor Mati");
digitalWrite(Relay_Kontak, LOW);
count=0;
}
}
else
{
Serial.println("SMS Dikirim");
digitalWrite(SMS, HIGH);
}
delay(1000);
}
rfid.halt();
}
int getFingerprintIDez()
{
uint8_t x = finger.getImage();
if (x != FINGERPRINT_OK) return -1;
x = finger.image2Tz();
if (x != FINGERPRINT_OK) return -1;
x = finger.fingerFastSearch();
if (x != FINGERPRINT_OK) return -1;
//menulis di komunikasi serial
Serial.print("Found ID #");
Serial.print(finger.fingerID);
Serial.print(" with confidence of ");
Serial.println(finger.confidence);
return finger.fingerID;
}
//Library and Declaration Variabel SIM800L
#include "SIM900.h"
#include "sms.h"
#include <SoftwareSerial.h>
SMSGSM sms;
char smsbuffer[160];
char n[20];
boolean started=false;
//Declaration Variabel From Sensor
const int Maling = 4;
void setup()
{
Serial.begin(9600);
pinMode(Maling, INPUT);
if (gsm.begin(9600))
{
Serial.println("\nstatus=READY");
started=true;
}
else
{
Serial.println("\nstatus=IDLE");
}
}
void loop()
{
const int Peringatan = digitalRead(Maling);
if(started)
{
if(Peringatan == HIGH)
{
sms.SendSMS("08xxxxxxxxx", "Awas MALING !!!");
}
else
{
Serial.println("Motor Diakses oleh Pemilik");
}
}
delay(1000);
}
Apakah Rfid dan fingerprnt bisa dihapus dan didaftar ulang?
BalasHapusSangat bisa.
Hapusmas Elga boleh minta kotak watsapnya
BalasHapus