Danu Andrean, 02 Jun 2025

Cara Mengakses Gps Module Neo-6m/Neo-7m Menggunakan Esp32

Penjelasan Gambar

Modul GPS NEO-6M/NEO-7M adalah salah satu GPS receiver paling populer yang sering digunakan pada proyek Arduino atau ESP32. Dalam tutorial ini, kita akan belajar cara membaca data lokasi dari modul GPS menggunakan ESP32 dan library TinyGPS++.

Perlengkapan yang Dibutuhkan

  • ESP32 Board (contoh: ESP32 DevKit v1)
  • Modul GPS NEO-6M
  • Kabel jumper
  • Software Arduino IDE

Wiring ESP32 ke Modul GPS NEO

Hubungkan pin modul GPS ke ESP32 sebagai berikut:

GPSESP32
VCC3.3v
GNDGND
TXGPIO16 (RXD2)
RXGPIO17 (TXD2)

 

Penjelasan Gambar
Catatan: GPS TX → ESP32 RX, GPS RX → ESP32 TX (cross connection)

Instalasi Library TinyGPS++

Buka Arduino IDE

  • Masuk ke Tools > Manage Libraries
  • Cari TinyGPSPlus(Mikal Hart) dan klik Install
Penjelasan Gambar

Kode Lengkap

#include <TinyGPS++.h>

// Define the RX and TX pins for Serial 2
#define RXD2 16
#define TXD2 17

#define GPS_BAUD 9600

// The TinyGPS++ object
TinyGPSPlus gps;

// Create an instance of the HardwareSerial class for Serial 2
HardwareSerial gpsSerial(2);

void setup() {
  // Serial Monitor
  Serial.begin(115200);
  
  // Start Serial 2 with the defined RX and TX pins and a baud rate of 9600
  gpsSerial.begin(GPS_BAUD, SERIAL_8N1, RXD2, TXD2);
  Serial.println("Serial 2 started at 9600 baud rate");
}

void loop() {
  // This sketch displays information every time a new sentence is correctly encoded.
  unsigned long start = millis();

  while (millis() - start < 1000) {
    while (gpsSerial.available() > 0) {
      gps.encode(gpsSerial.read());
    }
    if (gps.location.isUpdated()) {
      Serial.print("LAT: ");
      Serial.println(gps.location.lat(), 6);
      Serial.print("LONG: "); 
      Serial.println(gps.location.lng(), 6);
      Serial.print("SPEED (km/h) = "); 
      Serial.println(gps.speed.kmph()); 
      Serial.print("ALT (min)= "); 
      Serial.println(gps.altitude.meters());
      Serial.print("HDOP = "); 
      Serial.println(gps.hdop.value() / 100.0); 
      Serial.print("Satellites = "); 
      Serial.println(gps.satellites.value()); 
      Serial.print("Time in UTC: ");
      Serial.println(String(gps.date.year()) + "/" + String(gps.date.month()) + "/" + String(gps.date.day()) + "," + String(gps.time.hour()) + ":" + String(gps.time.minute()) + ":" + String(gps.time.second()));
      Serial.println("");
    }
  }
}

Penjelasan Fungsi Penting

gpsSerial.begin(…)

Membuka serial komunikasi kedua (UART2) antara ESP32 dan modul GPS.

gps.encode(…)

Membaca dan mengolah data NMEA yang dikirim modul GPS.

gps.location.lat() / gps.location.lng()

Mengambil data koordinat latitude dan longitude.

gps.speed.kmph()

Kecepatan dalam kilometer per jam.

gps.hdop.value()

Horizontal dilution of precision, semakin kecil nilainya, semakin akurat.

gps.satellites.value()

Jumlah satelit yang terdeteksi.

Output Contoh di Serial Monitor

Serial 2 started at 9600 baud rate
LAT: -7.797068
LONG: 110.370529
SPEED (km/h) = 0.00
ALT (min)= 145.80
HDOP = 0.90
Satellites = 8
Time in UTC: 2025/6/2,08:12:45

Tips Tambahan

  • Pastikan modul GPS berada di tempat terbuka agar bisa menangkap sinyal satelit.
  • Lampu LED pada modul GPS biasanya akan berkedip saat telah berhasil lock satelit.
  • Untuk pemetaan lebih lanjut, data ini bisa dikirim ke Google Maps, Firebase, atau disimpan ke SD Card.

Semoga tutorial ini bermanfaat bagi kamu yang ingin mulai belajar membaca data lokasi GPS dengan ESP32. Jangan lupa untuk menyimpan dan membagikan halaman ini jika kamu merasa terbantu! 🚀



#esp32 #arduino #elektronik