Kamis, 15 Maret 2018

Sistem keamanan menggunakan fringerprin & gps tracker untuk mengakses lokasi

Selamat berjumpa kembali...
Sesuai dengan postingan diatas pada kesempatan kali ini saya akan menjelaskan bagaimana prinsip kerja dari alat ini, kebetulan ada job tugas akhir mahasiswa ilmu komputer yang diaplikasikan sama sistem keamanan kotak amal brow....
Zaman sekarang orang mau maling tu ngk mikrin dosanya kali ya... hahahaha.
Terpaksa deh kotak amal harus dipasangin fringerprint & gps untuk sistem keamanannya biar makin aman dari maling, Tapi maling tu ngk bakalan kehabisan akal brow...
jadi waspada aja deh.

Ok brow udah basa-basinya kita mulai aja.
Persiapkan dulu komponennya seperti yang dibawah ini:
  1.  Arduino Mega 2560
  2. Fringerprint
  3. Modul GPS
  4. Modul GSM
  5. Lcd 20 * 4
  6. Modul Mp3 + Speaker
  7.  Relay 1 Chanel
  8. Door Lock
  9. Stepdown untuk modul gsm untuk mengatur arus 3.7 volt
  10. Button
Rangkaiannya seperti dibawah ini:

Selesai dirangkai saatnya kita program brow...
Sebelumnya persiapkan dulu librarynya, kebetulan saya cuma menggunakan 2 library untuk fringerprint dan modul mp3 aja kalau modul GSM, sama GPSnya saya pake program serial aja jadi ngk usah pake library jadi kalian cari dulu tu library nya di google

Ne programnya brow:

#include <Adafruit_Fingerprint.h>
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <LiquidCrystal.h>
#include <DFPlayer_Mini_Mp3.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);

int getFingerprintIDez();
SoftwareSerial mySerial(12, 13);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);

TinyGPSPlus gps;
double latitude, longitude;
int kunci = 11;
int tombol = 10;

int a = HIGH;
byte stat = 0;


char text[500] = "";
int currentLineIndex = 0;
bool nextLineIsMessage = false;

void Start_sensor()
{
 finger.fingerID = getFingerprintIDez();
 delay(50);
 if(finger.fingerID == 3)
{
  mp3_play (4);
  lcd.clear();
  lcd.setCursor(0,1);
  lcd.print(" SIDIK JARI 1 FALID ");
  lcd.setCursor(0,2);
  lcd.print(" KOTAK AMAL TERBUKA ");
  delay(5000);
  digitalWrite(kunci, LOW);
  delay(10000);
  digitalWrite(kunci, HIGH);
  delay(3000);
  mulai();
}
if(finger.fingerID == 4)
{
  mp3_play (4);
   lcd.clear();
  lcd.setCursor(0,1);
  lcd.print(" SIDIK JARI 2 FALID ");
  lcd.setCursor(0,2);
  lcd.print(" KOTAK AMAL TERBUKA ");
   delay(5000);
  digitalWrite(kunci, LOW);
  delay(10000);
  digitalWrite(kunci, HIGH);
  delay(3000);
  mulai();
}
if(finger.fingerID == 0)
{
  mp3_play (4);
   lcd.clear();
  lcd.setCursor(0,1);
  lcd.print(" SIDIK JARI 2 FALID ");
  lcd.setCursor(0,2);
  lcd.print(" KOTAK AMAL TERBUKA ");
   delay(5000);
  digitalWrite(kunci, LOW);
  delay(10000);
  digitalWrite(kunci, HIGH);
  delay(3000);
  mulai();
}
}

int getFingerprintIDez()
{
 
  if (!finger.verifyPassword())
    {
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("SIDIK JARI TIDAK ");
  lcd.setCursor(0,1);
  lcd.print("    DITEMUKAN    ");
        return 1;
    }
  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("ID ditemukan #");
  Serial.print(finger.fingerID);
  Serial.print(" Akurasi ");
  Serial.println(finger.confidence);
  return finger.fingerID;
}


void setup() {
  Serial.begin(9600);
  Serial2.begin(9600);
  Serial3.begin(9600);
  finger.begin(57600);
  pinMode(kunci, OUTPUT);
  pinMode(tombol, INPUT);
  digitalWrite(kunci, HIGH);
  mp3_set_serial (Serial2);  //set Serial for DFPlayer-mini mp3 module
  mp3_set_volume (28);
  Serial.println("GPS Mulai");
  lcd.begin(20, 4);
  lcd.clear();
   mp3_play (1);
  tampilan_judul();
  delay(3000);
  tampilan_nama();
  delay(3000);
  Serial1.println("AT+CMGF=1");
  delay(200);
  Serial1.println("AT+CNMI=2,2,0,0,0");
  delay(5000);
  stat = 0;
}

void loop() {
  mulai();
}

void mulai() {
  info();
  sim();
  a = digitalRead(tombol);
  if (a == LOW)
  {
    tampil();
    stat = 10;
    delay(500);
    sensor();
  }
  mulai();
}



void sensor()
{
 if (stat == 10)
  {
  Start_sensor();
  getFingerprintIDez();
  }
  sensor();
}

void info(){
    lcd.setCursor(0,0);
    lcd.print("KOTAK AMAL LOCATION ");
    lcd.setCursor(0,1);
    lcd.print(" KOTAK AMAL MESJID  ");
    lcd.setCursor(0,2);
    lcd.print("  LAT = ");
    lcd.print(gps.location.lat(), 6);
    lcd.setCursor(18,2);
    lcd.print("  ");
    lcd.setCursor(0,3);
    lcd.print("  LNG = ");
    lcd.print(gps.location.lng(), 6);
    lcd.setCursor(18,3);
    lcd.print("  ");
   
  while(Serial3.available()) {
    gps.encode(Serial3.read());
  }
  if(gps.location.isUpdated()) {
    latitude = gps.location.lat();
    longitude = gps.location.lng();
   
    Serial.print(gps.location.lat(), 6);
    Serial.print(F(","));
    Serial.println(gps.location.lng(), 6);
}
}

void kirim(){

    Serial1.println("AT+CMGS=\"082387039947\"");//Change the receiver phone number
    delay(200);
    Serial1.print(gps.location.lat(), 6);
    Serial1.print(F(","));
    Serial1.println(gps.location.lng(), 6);
    delay(200);
    Serial1.write(26);
    delay(200);
    Serial1.println("AT+CMGD=1,4");
    Serial.println("Sms dihapus");
    delay(500);
}

void tampil()
{
  lcd.clear();
  lcd.setCursor(0,1);
  lcd.print("PROSES  PENDETEKSIAN");
  lcd.setCursor(0,2);
  lcd.print(" SIDIK JARI DIMULAI ");
}

void sim()
{
  Serial1.begin(9600);
  if(Serial1.available()){
    char lastCharRead = Serial1.read();
      if(lastCharRead == '\r' || lastCharRead == '\n'){
        String lastLine = String(text);
        if(lastLine.startsWith("+CMT:")){
          
          Serial1.println(lastLine);
          nextLineIsMessage = true;
          
        } else if (lastLine.length() > 0) {
          
          if(nextLineIsMessage) {
            Serial1.println(lastLine);
            if(lastLine.indexOf("Track") >= 0){
              digitalWrite(kunci, HIGH);
              mp3_play (3);
              delay(5000);
              kirim();
              delay(1000);
     
            } else if(lastLine.indexOf("Buka") >= 0) {
              buka();
              mp3_play (5);
              delay(5000);
              digitalWrite(kunci, LOW);
              delay(10000);
              digitalWrite(kunci, HIGH);
              delay(200);
    Serial1.write(26);
    delay(200);
    Serial1.println("AT+CMGD=1,6");
    Serial.println("Sms dihapus");
    delay(3000);
                    }    
            nextLineIsMessage = false;
          }
          
        }
        
        for( int i = 0; i < sizeof(text);  ++i ) {
         text[i] = (char)0;
        }
        currentLineIndex = 0;
    } else {
      text[currentLineIndex++] = lastCharRead;
    }
  }
}


void tampilan_judul()
{
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("   SISTEM KEMANAN   ");
  lcd.setCursor(0,1);
  lcd.print("  KOTAK AMAL MESJID ");
  lcd.setCursor(0,2);
  lcd.print("   BERASIS ARUINO   ");
  lcd.setCursor(0,3);
  lcd.print("   DAN GPS TRACKER  ");
 }
void tampilan_nama()
{
  lcd.clear();
  lcd.setCursor(0,1);
  lcd.print("    XXXXXXXXX   ");
  lcd.setCursor(0,2);
  lcd.print("   BP :  XXXXXXX ");
  delay(2000);
 }

 void buka()
{
  lcd.clear();
  lcd.setCursor(0,1);
  lcd.print(" KOTAK AMAL DIBUKA ");
  lcd.setCursor(0,2);
  lcd.print("  MENGGUNAKAN SMS  ");
  delay(2000);
 }




Jadi cara kerja pada alat ini bisa dibuka menggunakan fringerprint dan modul gsmnya untuk menerima dan mengirim sms titik lokasi kotak amalnya apabiala dicuri sama orang.
Oh ya jangan lupa nomor telfonnya di ganti
kalau masih kurang ngerti komen aja dibawah atau ada yang mau nanya" OK Brow.....
Share:

BTemplates.com


zulpandru hendra. Diberdayakan oleh Blogger.