By | 15/03/2021
Tutorial Lengkap Arduino GPS Neo 6M dan ESP8266 ESP32

Bawaan waktu dari GPS Neo 6M tidak sama dengan waktu yang ada di indonesia, dan itu artinya GPS Neo 6M tidak menggunakan timezone jakarta. Pada artikel ini akan dibahas cara mudah menggunakan RTC GPS Neo 6M sesuai Zona Waktu Indonesia. Tutorial Arduino GPS Neo 6M. Tutorial ESP32 GPS Modul, Program ESP8266 NodeMCU GPS Neo 6M

Perbedaan waktu bawaan GPS dengan waktu yang sebenarnya di Indonesia sekitar 7 Jam, dan itu sesuai dengan GMT jakarta yaitu GMT+7 untuk WIB

Artikel ini membahas penuh cara menghitung atau mengkonversi waktu dari RTC yang ada di GPS Neo 6M agar sesuai dengan waktu yang sebenarnya di Indonesia menggunakan Arduino

Artikel ini juga bisa digunakan untuk mikrokontroler lain seperti NodeMCU ESP8266 atau ESP32 atau Wemos D1 Mini ESP8266, tinggal menyesuaikan penggunakan pin serialnya saja.

Library yang digunakan untuk mengambil data dari modul GPS bisa menggunakan SoftwareSerial atau HardwareSerial kemudian data tersebut di encode dengan menggunakan library TinyGPS++

Sedangkan untuk mengkonversi waktunya sesuai dengan zona waktu indonesia kita perlu library Time atau TimeLib

Library diatas bisa digunakan untuk Arduino, ESP8266 NodeMCU, Wemos D1 Mini ESP8266 atau ESP32 dengan Arduino IDE untuk memproses waktu yang ada pada RTC modul GPS Neo 6M

Tutorial Lengkap Arduino GPS Neo 6M dan ESP8266 ESP32
Tutorial Lengkap Arduino GPS Neo 6M dan ESP8266 ESP32

Menggunakan Modul GPS Neo 6M dengan Arduino

  1. Siapkan terlebih dahulu modul Arduino Uno/Mega/Nano/Promini atau ESP8266 NodeMCU/Wemos D1 Mini dan sebagainya
  2. Siapkan Modul GPS Neo 6M dan jangan lupa antenanya
  3. Hubungkan Modul mikrokontroler dengan modul GPS Neo 6M
  4. Buat program pembacaan data serial
  5. Encode dengan code dari library TinyGPS++
  6. Konversikan waktu sesuai GMT yang diinginkan menggunakan library TimeLib.h
  7. Upload dan perhatikan di serial monitor

Cara Mudah Mendapatkan Sinyal GPS Neo 6M Arduino

  1. Gunakan Antena GPS yang bagus
  2. Coba diluar ruangan untuk memudahkan GPS mendapatkan sinyal
  3. Tunggu beberapa menit untuk modul GPS siap menerima sinyal
  4. Selebihnya saya juga kurang tau bagaimana meningkatkan kinerja modul GPS Neo 6M tapi bisa dicoba juga dengan meningkatkan arus nya, misalkan menggunakan adaptor yag memiliki kemampuan 2A atau lebih karena biasanya GPS butuh arus yang besar.

Tutorial RTC GPS dengan modul Neo 6M Arduino Lengkap

Setelah semua alatnya tersedia silahkan kalian ikuti rangkaian yang ada pada gambar dibawah ini

Tutorial Program dan Skamatik Arduino Uno GPS Neo 6M RTC
Skamatik Arduino Uno GPS Neo 6M RTC
Tutorial Program dan Skamatik Wemos D1 Mini ESP32 Uno GPS Neo 6M RTC
Tutorial Program dan Skamatik NodeMCU ESP8266 Uno GPS Neo 6M RTC
Tutorial Program dan Skamatik Wemos D1 Mini ESP32 Uno GPS Neo 6M RTC
Tutorial Program dan Skamatik Wemos D1 Mini ESP32 Uno GPS Neo 6M RTC

Buat program berikut untuk membaca data mentah dari modul GPS Neo 6M menggunakan Arduino atau ESP8266 atau ESP32 tinggal sesuaikan saja pin serialnya.

Cuma mau kasih tau ESP32 punya hardwareserial silahkan manfaatkan pin GPIO17 dan GPIO16

Program Membaca Data Mentah GPS Neo 6M Arduino

#include <SoftwareSerial.h>
SoftwareSerial Serial2 (7, 6);

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
Serial2.begin(9600);

}

void loop() {
  // put your main code here, to run repeatedly:
if (Serial.available())
Serial2.write(Serial.read());
if (Serial2.available())
Serial.write(Serial2.read());
}

Dan berikut adalah program untuk membaca waktu RTC sesuai jam dan tanggal yang ada di indonesia WIB serta data lokasi GPS latitude dan longitude

#include <TimeLib.h>
#include <TinyGPS++.h>
#include <SoftwareSerial.h>

static const int RXPin = 7, TXPin = 6;

SoftwareSerial Serial2(RXPin, TXPin);
TinyGPSPlus gps;

char wjam[10], wtanggal[10];

const int UTC_offset = 7;
time_t prevDisplay = 0;

void setup()
{
  Serial.begin(9600);
  Serial2.begin(9600);

  Serial.println("Waiting for GPS time ... ");
}

void loop()
{
  GPS_Timezone_Adjust();
}

void GPS_Timezone_Adjust() {

  while (Serial2.available()) {
    if (gps.encode(Serial2.read())) {

      int Year = gps.date.year();
      byte Month = gps.date.month();
      byte Day = gps.date.day();
      byte Hour = gps.time.hour();
      byte Minute = gps.time.minute();
      byte Second = gps.time.second();

      // Set Time from GPS data string
      setTime(Hour, Minute, Second, Day, Month, Year);
      // Calc current Time Zone time by offset value
      adjustTime(UTC_offset * SECS_PER_HOUR);
    }
  }

  // -- Delete this section if not displaying time ------- //
  if (timeStatus() != timeNotSet) {
    if (now() != prevDisplay) {
      prevDisplay = now();
      tampilkan();
    }
  }
}

void tampilkan() {
  if (gps.location.isValid())
  {
    Serial.print ("Latitude :");
    Serial.print(gps.location.lat());
    Serial.print ("\tLongitude :");
    Serial.print(gps.location.lng());
  }
  else {
    Serial.print("Lokasi Belum Terbaca");
  }

  if (gps.date.isValid() && gps.time.isValid())
  {
    sprintf (wjam, "%02d:%02d:%02d", hour(), minute(), second());
    Serial.print("\tWaktu = ");
    Serial.print(wjam);
    sprintf (wtanggal, "%02d/%02d/%02d", day(), month(), year());
    Serial.print("\tTanggal :");
    Serial.println(wtanggal);
  } else {
    Serial.println("\tWaktu Belum Terbaca");
  }

}

Hasil dari program diatas akan menampilkan lokasi latitude dan longitude serta data jam dan tanggal sesuai waktu indonesia bagian barat atau zona waktu jakarta GMT+7

Keyword

  1. Tutorial GPS Neo 6M Arduino,
  2. Program Mudah GPS 6M Arduino,
  3. GPS Arduino,
  4. Arduino GPS Program,
  5. Kode GPS Arduino,
  6. GPS Tracker Arduino,
  7. Setting Waktu RTC GPS Arduino,
  8. Tutorial ESP8266 GPS,
  9. Tutorial NodeMCU GPS Modul,
  10. Tutorial ESP32 GPS,

Leave a Reply

Your email address will not be published. Required fields are marked *