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
Setelah semua alatnya tersedia silahkan kalian ikuti rangkaian yang ada pada gambar dibawah ini
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
#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
Pendahuluan Dalam dunia pengembangan perangkat lunak yang terus berkembang, Kubernetes telah muncul sebagai alat kunci dalam orkestrasi…
Mengelola sebuah sekolah atau lembaga pendidikan adalah tugas yang kompleks dan penuh tantangan. Dengan berbagai…
Selamat datang di artikel kami tentang cara menginstal OpenVPN server di Ubuntu 20.04 di HuaweiCloud!…
Dalam dunia pengembangan aplikasi, salah satu hal yang menjadi penting adalah mengelola dan memonitor kontainer…
Tutorial led blinking. LED (Light Emitting Diode) merupakan salah satu komponen elektronik yang paling umum…
Tutorial LCD Display, ini merupakan salah satu komponen yang sering digunakan dalam project elektronika sebagai…