Translate

Membuat Alat Pelacak Posisi Menggunakan GPS EM411 dan SMS GATEWAY ARDUINO

Membuat Alat Pelacak Posisi Menggunakan GPS EM411 dan SMS GATEWAY ARDUINO


         Pada kesempatan yang berbahagia kali ini saya akan menjelaskan mengenai bagaimana cara membuat alat yang dapat melacak posisi keberadaan suatu benda misalnya sepeda motor atau mobil dengan menggunakan GPS dan SMS. jadi prinsip kerja alat ini yaitu dapat mengirimkan posisi dimana sekarang berada dengan mengirimkan sms "Monitor" maka akan dibalas dengan balasan berupa posisi sekarang yaitu koordinat latitude dan longitude-nya. alat ini menggunakan Arduino sebagai processornya dan modul sms menggunakan SIM800l. untuk GPS menggunakan TinyGPS EM411. untuk lebih jelasnya berikut adalah program dan skemanya.


Link Library GPS




a. Arduino Mega





b. LCD 16x2





c. GPS EM411





d. Modul SMS SIM800L





e. Buck Converter






f. Program Arduino IDE

#include <TinyGPS++.h>
#include "SIM900.h"
#include <SoftwareSerial.h>
#include "Wire.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(A5, A4, A3, A2, A1, A0);

static const uint32_t GPSBaud = 4800;

// The TinyGPS++ object
TinyGPSPlus gps;
#include "sms.h"
SMSGSM sms;


char string[160];
int numdata;
boolean started=false;
char smsbuffer[160];
char n[20];
char strsms[5];
char latstr[20];
char lonstr[20];
char latlonstr[20];

void setup()
{

  Serial1.begin(GPSBaud);

     if (gsm.begin(2400)) {
          started=true;
     } else {
     }
     if(started) {

         // if (sms.SendSMS("085726496643", "ALAT READY ok"));
        
     }

  lcd.begin(16, 2);
  lcd.clear();
  lcd.noCursor();

}

void loop()
{

  while (Serial1.available() > 0)
    if (gps.encode(Serial1.read()))
      displayInfo();

  if (millis() > 5000 && gps.charsProcessed() < 10)
  {
    while(true);
  }
}

void displayInfo()
{

  if (gps.location.isValid())
  {
   
  lcd.setCursor(0, 0);
  lcd.print("LAT= ");
  lcd.print(gps.location.lat(), 6);
  lcd.setCursor(0, 1);
  lcd.print("LNG= ");
  lcd.print(gps.location.lng(), 6);
 
  dtostrf(gps.location.lat(),10,6,latstr);
  dtostrf(gps.location.lng(),10,6,lonstr);
  sprintf(string,"LAT= %s, LONG= %s", latstr, lonstr);
 
 if(gsm.begin(9600)){
  started=true;
 }
 int pos=0;
 if(started){
  pos=sms.IsSMSPresent(SMS_ALL);
  if(pos){
    sms.GetSMS(pos,n,smsbuffer,100);
  
    if(!strcmp(smsbuffer,"monitor")){
      sms.SendSMS(n,string);
    }
    if(!strcmp(smsbuffer,"Monitor")){
      sms.SendSMS(n,string);
    }
 
    delsms();
  }
 }
  delay(100);
 
 
  }
  else
  {


  }

}



void delsms()
{
  for (int i=0; i<10; i++)
  {
      int pos=sms.IsSMSPresent(SMS_ALL);
      if (pos!=0)
      {
        if (sms.DeleteSMS(pos)==1){}else{}
      }
  }
}





g. Gambar Hasilnya







h. VIDEO HASILNYA











No comments:

Post a Comment