Danu Andrean, 02 Jun 2025
Cara Mengakses Gps Module Neo-6m/Neo-7m Menggunakan Esp32

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:
GPS | ESP32 |
---|---|
VCC | 3.3v |
GND | GND |
TX | GPIO16 (RXD2) |
RX | GPIO17 (TXD2) |

Instalasi Library TinyGPS++
Buka Arduino IDE
- Masuk ke Tools > Manage Libraries
- Cari TinyGPSPlus(Mikal Hart) dan klik Install

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! 🚀