Menggunakan modul GPS seperti GY-NEO6MV2 pada ESP32 adalah cara praktis untuk membuat perangkat pelacak lokasi atau aplikasi berbasis GPS. Modul ini sangat populer karena mudah digunakan, akurat, dan kompatibel dengan berbagai mikrokontroler, termasuk ESP32. Dalam tutorial ini, kita akan belajar bagaimana mengintegrasikan modul GPS GY-NEO6MV2 dengan ESP32 menggunakan pustaka TinyGPS++.
Komponen yang Dibutuhkan
- Software Arduino IDE untuk pemrograman.
- ESP32 (mikrokontroler utama).
- Modul GPS GY-NEO6MV2.
- Kabel jumper.
- Breadboard.
- Kabel USB untuk menghubungkan ESP32 ke komputer.
Rangkaian
Sambungkan modul GPS ke ESP32 sesuai diagram berikut:
- TX GPS ke D2 (RX ESP32).
- RX GPS ke D3 (TX ESP32).
- VCC GPS ke 3.3V ESP32.
- GND GPS ke GND ESP32.
Catatan: Gunakan pin D2 dan D3 untuk komunikasi serial software.

#include <Arduino.h>
#include <SoftwareSerial.h>
#include <TinyGPS++.h>
#include <TaskScheduler.h>
SoftwareSerial gps_Serial(D2, D3); // RX, TX (ESP) | TX, RX (GPS)
TinyGPSPlus gps;
unsigned long previousMillis_gps = 0;
const long interval_gps = 5000;
Scheduler gps_runner;
void debug_gps(String text);
void koneksi_gps();
void gpsTaskCallback();
Task gpsTask(500, TASK_FOREVER, &gpsTaskCallback);
void debug_gps(String text) {
Serial.println(text);
}
void koneksi_gps() {
debug_gps("gps Mencari Sinyal...");
unsigned long currentMillis_gps = millis();
while (gps_Serial.available() > 0) {
if (gps.encode(gps_Serial.read())) {
float latitude_gps = gps.location.lat();
float longitude_gps = gps.location.lng();
if (gps.location.isUpdated()) {
debug_gps("Read, NEW location : " + String(latitude_gps, 6) + "," + String(longitude_gps, 6));
} else {
debug_gps("Read, OLD location : " + String(latitude_gps, 6) + "," + String(longitude_gps, 6));
}
if (currentMillis_gps - previousMillis_gps >= interval_gps) {
String link_gps;
if (String(latitude_gps, 6)=="0.000000" || String(longitude_gps, 6)=="0.000000")
{
debug_gps("gps : 0");
}
else
{
link_gps += "&latitude=" + String(latitude_gps, 6);
link_gps += "&longitude=" + String(longitude_gps, 6);
link_gps += "&gps=" + String(latitude_gps, 6) + "," + String(longitude_gps, 6);
debug_gps(link_gps);
//proses_iot(link_gps);
previousMillis_gps = currentMillis_gps;
}
}
}
}
}
void gpsTaskCallback() {
koneksi_gps();
}
void setup()
{
Serial.begin(9600);
Serial.begin(115200);
gps_Serial.begin(9600);
gps_runner.addTask(gpsTask);
gpsTask.enable();
}
void loop(){
gps_runner.execute();
delay(1000);
}
Selamat Mencoba!!
Semoga Berhasil!!
Kalau teman-teman berminat jasa bisa wa kami di kontak whatsapp dibawah ini atau bisa cek tiktok kami disini : @labrobotika

