Modul GPS NEO6MV2 merupakan modul GPS versi kedua dengan kemampuan dapat menangkap hingga 22 satelit dan mengindentifikasi lokasi dimana saja di dunia.
Modul ini membutuhkan konsumsi daya rendah sehingga cocok untuk proyek dengan power supply baterai NiCad atau LiPo (Lithium Polimer).
Bagimana Cara Kerja GPS (Global Positioning System)
Modul GPS ini sebenarnya bekerja dengan mencari tahu titik lokasi dengan bantuan sejumlah satelit pada waktu tertentu.
Satelit mengirimkan informasi tentang titik posisi dan waktu, dalam bentuk sinyal radio ke bumi. Sinyal ini mengidentifikasi satelit dan memberitahu penerima di mana posisi mereka berada.
Receiver kemudian menghitung seberapa jauh masing-masing satelit adalah dengan mencari tahu berapa lama waktu yang dibutuhkan untuk sinyal tiba. Setelah memiliki informasi tentang seberapa jauh setidaknya tiga satelit dan di mana mereka berada di luar angkasa, itu dapat menunjukkan lokasi Anda di bumi.
Proses ini dikenal sebagai trilateration
Modul GPS NEO6MV2
Spesifikasi dari modul ini :
- Penerima GPS mandiri
- Teknologi anti-jamming
- UART interface pada pin output (dapat menggunakan SPI, I2C dan USB dengan solder PIN ke inti chip)
- Di bawah 1 detik untuk time-to-first-fix dan aided starts
- Jenis Receiver : 50 saluran-frekuensi L1 GPS-SBAS (WAAS, EGNOS, MSAS, GAGAN)
- Waktu-ke-pertama-memperbaiki: untuk dingin mulai 32S, untuk hangat mulai 23s, untuk Hot Start < 1S
- Laju pembaruan navigasi maksimum: 5 Hz
- Serial baud komunikasi default 9600bps
- EEPROM dengan baterai cadangan : EEPROM HK24C32 sebesar 4Kb
- Sensitivitas Antenna :-160dBm
- Tegangan suplai: 33v – 3.6 vdc
- Arus DC maksimum pada setiap output: 10mA
- Batas operasi: gravitasi-4g, ketinggian-50000m, kecepatan-500m/s
- Operasi kisaran suhu:-40 º C sampai 85 ° c
Indikator LED saat modul bekerja
Terdapat LED indikator pada modul GPS NEO6M yang menunjukkan status sensor. Akan terdapat 2 kondisi antara lain :
- Tidak berkedip : sedang mencari satelit untuk kalkulasi titik posisi
- Berkedip setiap 1 detik : titik posisi ditemukan (modul menangkap sinyal satelit dengan jumlah pas)
Pin Out Module
GND | Ground dari Arduino or power supply |
TX | digunakan untuk komunikasi serial |
RX | digunakan untuk komunikasi serial |
VCC | 5Vdc dari power supply eksternal atau arduino |
Tutorial pertama baca data GPS NEO6MV2 via Serial Monitor
Bahan – bahan yang diperlukan :
- Arduino Uno atau Nano
- Module Neo6MV2
- Kabel jumper male to female male 4 pcs
- Breadboard
- Komputer + arduino IDE
Skema dan wiring
Libraries yang harus diinstall TinyGPS++ dapat unduh : [ddownload id="4875"]
Cara instalasi libraries diatas :
- Download libraries
- Buka Arduino IDE
- Pilih sketch > include library > add. ZIP library
- pilihlah file Library Tinygps++ > open
- Jika sudah ada tulisan “Library added to your libraries“
- Pastikan dengan File > Examples > TinyGPS++
Kode Program
#include <TinyGPS++.h> #include <SoftwareSerial.h> static const int RX = 4, TX = 3; static const uint32_t GPSBaud = 4800; TinyGPSPlus gps; SoftwareSerial gpsneo(RX, TX); void setup() { Serial.begin(9600); gpsneo.begin(GPSBaud); Serial.println(F("Trial GPS menggunakan Arduino")); Serial.println(); } void tampilkandata() { //Menampilkan data LOKASI Serial.print(F("Lokasi : ")); if (gps.location.isValid()) { Serial.print(gps.location.lat(), 6); Serial.print(F(",")); Serial.print(gps.location.lng(), 6); } else { Serial.print(F("INVALID")); } //Menampilkan data tanggal Serial.print(F(" Date/Time: ")); if (gps.date.isValid()) { Serial.print(gps.date.month()); Serial.print(F("/")); Serial.print(gps.date.day()); Serial.print(F("/")); Serial.print(gps.date.year()); } else { Serial.print(F("INVALID")); } //Menampilkan data waktu Serial.print(F(" ")); if (gps.time.isValid()) { if (gps.time.hour() < 10) Serial.print(F("0")); Serial.print(gps.time.hour()); Serial.print(F(":")); if (gps.time.minute() < 10) Serial.print(F("0")); Serial.print(gps.time.minute()); Serial.print(F(":")); if (gps.time.second() < 10) Serial.print(F("0")); Serial.print(gps.time.second()); Serial.print(F(".")); if (gps.time.centisecond() < 10) Serial.print(F("0")); Serial.print(gps.time.centisecond()); } else { Serial.print(F("INVALID")); } Serial.println(); } void loop() { while (gpsneo.available() > 0) if (gps.encode(gpsneo.read())) tampilkandata(); //Cek komunikasi arduino dengan module gps neo6mv2 if (millis() > 5000 && gps.charsProcessed() < 10) { Serial.println(F("tidak ada module GPS, cek wiringmu!")); while(true); } }
Hasil trial diatas
Command yang dapat digunakan pada libraries tinygps++ seperti gambar dibawah ini :
Refrensi dapat dicek di link ini :
Tutorial Kedua mengakses data module GPS dengan penampil LCD 16×2
Bahan – bahan yang diperlukan :
- Arduino Uno atau Nano
- Module Neo6MV2
- Kabel jumper male to female male 8 pcs
- Breadboard
- LCD 16×2 dan PCF8574
- Komputer + arduino IDE
Skema dan wiring
Langkah – langkah untuk installing library driver PCF8574 dengan catatan terhubung internet :
- Buka Software arduino uno IDE
- Arahkan cursor pada menu sketch -> include libraries -> manage libraries
- Ketikan “PCF8574“
- Pilih “LiquidCrystal_PCF8574 by Matthias Hertel“
- Klik install dan closed
Sebelum masuk ke program harap dicek dahulu untuk address driver lcd nya menggunakan i2c scanner dapat dicek pada link ini :
[irp posts=”657″ name=”Cara mencari tahu alamat interface i2c module arduino”]
Kode Program dengan penambahan LCD 16×2
[sociallocker id=1344]
#include <TinyGPS++.h> #include <SoftwareSerial.h> #include <LiquidCrystal_PCF8574.h> #include <Wire.h> LiquidCrystal_PCF8574 lcd(0x27); static const int RX = 4, TX = 3; static const uint32_t GPSBaud = 4800; TinyGPSPlus gps; SoftwareSerial gpsneo(RX, TX); void setup() { Serial.begin(9600); gpsneo.begin(GPSBaud); Wire.begin(); lcd.begin(16, 2); Serial.println(F("Trial GPS menggunakan Arduino")); Serial.println(); lcd.setBacklight(255); lcd.setCursor(0,0); lcd.print("TRIAL GPS NEO6MV2"); lcd.setCursor(0,1); lcd.print("nyebarilmu.com"); delay(2000); lcd.clear(); } void tampilkandata() { //Menampilkan data LOKASI lcd.setCursor(0,0); Serial.print(F("Lokasi : ")); if (gps.location.isValid()) { Serial.print(gps.location.lat(), 6); lcd.print(gps.location.lat(), 6); lcd.print(","); Serial.print(F(",")); Serial.print(gps.location.lng(), 6); lcd.print(gps.location.lng(), 6); } else { Serial.print(F("INVALID")); lcd.print("ERROR!!!"); } //Menampilkan data tanggal Serial.print(F(" Date/Time: ")); if (gps.date.isValid()) { lcd.setCursor(0,1); lcd.print(gps.date.month()); lcd.print("-"); lcd.print(gps.date.day()); lcd.print("-"); lcd.print(gps.date.year()); lcd.print("gps.date.month()"); Serial.print(gps.date.month()); Serial.print(F("/")); Serial.print(gps.date.day()); Serial.print(F("/")); Serial.print(gps.date.year()); } else { Serial.print(F("INVALID")); lcd.print("ERROR!!!"); } //Menampilkan data waktu Serial.print(F(" ")); if (gps.time.isValid()) { lcd.setCursor(9,1); if (gps.time.hour() < 10) {Serial.print(F("0"));lcd.print("0");} Serial.print(gps.time.hour()); lcd.print(gps.time.hour()); lcd.print(":"); Serial.print(F(":")); if (gps.time.minute() < 10) {Serial.print(F("0"));lcd.print("0");} Serial.print(gps.time.minute()); Serial.print(F(":")); lcd.print(gps.time.minute()); lcd.print(":"); if (gps.time.second() < 10) {Serial.print(F("0"));lcd.print("0");} Serial.print(gps.time.second()); Serial.print(F(".")); lcd.print(gps.time.second()); if (gps.time.centisecond() < 10) Serial.print(F("0")); Serial.print(gps.time.centisecond()); } else { Serial.print(F("INVALID")); lcd.print("ERROR!!!"); } Serial.println(); } void loop() { while (gpsneo.available() > 0) if (gps.encode(gpsneo.read())) tampilkandata(); //Cek komunikasi arduino dengan module gps neo6mv2 if (millis() > 5000 && gps.charsProcessed() < 10) { Serial.println(F("tidak ada module GPS, cek wiringmu!")); lcd.setCursor(0,0); lcd.print("TIDAK GPS, CEK WIRING!"); while(true); } }
[/sociallocker]
Hasil trial diatas