Gudang Ilmu: GPS Tracker Sederhana dengan Arduino

Friday, 28 June 2024

GPS Tracker Sederhana dengan Arduino


 

GPS tracker merupakan perangkat yang sangat berguna untuk melacak posisi suatu objek, seperti kendaraan atau barang berharga, secara real-time. Dengan menggunakan Arduino dan beberapa komponen tambahan, Anda dapat membuat sendiri GPS tracker yang dapat mengirimkan lokasi melalui SMS. Berikut adalah langkah-langkah dan koding yang dibutuhkan untuk proyek ini.

Komponen yang Diperlukan:

  • Arduino Uno atau kompatibel
  • GPS Module (contoh: Ublox NEO-6M)
  • Modul GSM/GPRS (misalnya SIM800L)
  • Relay untuk mengontrol perangkat lain (opsional)

Langkah-langkah Pembuatan:

  1. Persiapan Perangkat:
    • Hubungkan GPS module dan GSM module ke Arduino sesuai dengan pin yang ditentukan. Pastikan semua koneksi berjalan lancar.
  2. Instalasi Library:
    • Pastikan Anda telah menginstal library TinyGPS++ untuk mempermudah pengolahan data GPS.
  3. Koding Arduino:
#include <SoftwareSerial.h>
#include <TinyGPS++.h>

SoftwareSerial GPRS(7,6); // RX, TX
SoftwareSerial GPS(9, 8); // RX, TX
TinyGPSPlus G;

int relay = 14; // Pin untuk relay (opsional)
int led = 13;    // LED indikator

String sementara = "";
String lati = "";
String longi = "";

void setup() {
  pinMode(relay, OUTPUT);
  digitalWrite(relay, LOW); // Pastikan relay mati saat boot

  GPRS.begin(9600);
  GPS.begin(9600);
  Serial.begin(9600);

  GPRS.print("ATS0=3\r\n"); // Setelan untuk mode SMS
  delay(100);
  GPRS.print("AT+CMGF=1\r\n"); // Set mode teks SMS
  delay(1000);
  GPRS.print("AT+CNMI=2,2,0,0,0\r\n"); // Mengatur notifikasi SMS masuk
  delay(1000);
}

void loop() {
  digitalWrite(led, HIGH); // Indikator sedang proses

  GPRS.listen();
  while (GPRS.available() > 0) {
    String incoming = GPRS.readStringUntil('\n');
    incoming.trim();
    Serial.println("SMS Masuk: " + incoming);

    if (incoming.startsWith("+CMT:")) {
      String senderNumber = extractPhoneNumber(incoming);
      sementara = senderNumber;
      Serial.println("Nomor Pengirim: " + senderNumber);
    }

    if (incoming.indexOf("LOKASI") >= 0) {
      smartDelay(1000);
      String pesan = "https://maps.google.com/?q=" + lati + "," + longi;
      sendSMS(sementara.c_str(), pesan.c_str());
      delay(100);
      GPRS.println("AT+CMGD=1,4"); // Hapus SMS setelah diproses
      delay(1000);
    }

    if (incoming.indexOf("ON") >= 0) {
      sendSMS(sementara.c_str(), "Kendaraan dinyalakan");
      digitalWrite(relay, HIGH);
      delay(100);
      GPRS.println("AT+CMGD=1,4");
    }

    if (incoming.indexOf("OFF") >= 0) {
      sendSMS(sementara.c_str(), "Kendaraan dimatikan");
      digitalWrite(relay, LOW);
      delay(100);
      GPRS.println("AT+CMGD=1,4");
    }
  }

  digitalWrite(led, LOW); // Indikator selesai proses
}

void sendSMS(const char* phoneNumber, const char* message) {
  GPRS.println("AT+CMGF=1"); // Set mode teks untuk SMS
  delay(2000);

  GPRS.print("AT+CMGS=\"");
  GPRS.print(phoneNumber);
  GPRS.println("\"");
  delay(1000);

  GPRS.print(message);
  delay(1000);

  GPRS.write(26); // Mengirim karakter CTRL+Z untuk mengakhiri SMS
  delay(5000);
}

String extractPhoneNumber(String sms) {
  int firstQuote = sms.indexOf('"') + 1;
  int secondQuote = sms.indexOf('"', firstQuote);
  return sms.substring(firstQuote, secondQuote);
}

void smartDelay(unsigned long ms) {
  unsigned long start = millis();
  do {
    while (GPS.available())
      G.encode(GPS.read());
  } while (millis() - start < ms);
  lati = String(G.location.lat(), 8);
  longi = String(G.location.lng(), 6);
  Serial.println("Latitude: " + lati);
  Serial.println("Longitude: " + longi);
}
  1. Koding di atas mengintegrasikan GPS module untuk mengambil lokasi dan GSM module untuk mengirim dan menerima SMS. Fungsi smartDelay digunakan untuk menunggu hingga data GPS tersedia.

Menggunakan Arduino dan komponen tambahan, Anda dapat membuat GPS tracker sendiri yang mampu mengirimkan lokasi melalui SMS. Proyek ini dapat diperluas dengan menambahkan fitur lain sesuai kebutuhan, seperti penyimpanan data atau integrasi dengan platform online untuk pelacakan yang lebih canggih.

Anda dapat mengamati posisi kendaraan atau barang berharga Anda secara real-time, memberikan rasa aman dan kemudahan dalam pemantauan.

 Anda dapat membuat GPS tracker dengan Arduino dan bahkan mengembangkan server sendiri untuk mengelola data lokasi yang dikirimkan. Hal ini tidak hanya meningkatkan kontrol atas penggunaan dan keamanan kendaraan atau barang berharga Anda, tetapi juga memungkinkan fleksibilitas untuk mengintegrasikan fitur tambahan sesuai kebutuhan Anda. Dengan demikian, Anda dapat memiliki solusi pelacakan yang efektif dan disesuaikan sepenuhnya dengan preferensi dan tujuan penggunaan Anda.


Sumber: duwiarsana

No comments:

Post a Comment

terimakasih telah mengunjungi blog saya.