GY-NEO6MV2 GPS Modülü İncelemesi
GY-NEO6MV2 GPS Modülü İncelemesi

GY-NEO6MV2 GPS Modülü İncelemesi

Bu yazıda, izleme sistemlerinde kullanılmak üzere, mikrodenetleyicilerle bağlantısı oldukça kolay bir GPS modülünü inceleyeceğiz. 

Bu GPS modülü boyut olarak da oldukça küçüktür. Boyutları küçük olan mikrodenetleyici kartlarla birlikte kullanımı da, takip sistemlerimizde montaj ve hafiflik açısından avantaj sağlar. Raspberry Pi Pico veya Arduino Nano gibi kartlarla bağlantısı ve programlanması oldukça kolaydır.

Bağlantıları anladıktan sonra, anlamamız gereken ikinci konu uydulardan GPS modülüne gelen verilerin yapısının nasıl olduğudur. Uydulardan gelen GPS verileri, NMEA formatındadır. NMEA formatı, ASCII tabanlı bir formattır.  Bu format aşağıdaki gibidir: 

$GPRMC,225446,A,4916.45,N,12311.12,W,000.5,054.7,060180,020.3,E*68

Bu kodların, Arduino komutları ile ayrıştırılmasını aşağıda inceleyeceğiz.

Şimdi, modülü inceleyelim...

GY-NEO6MV2, NEO-6M GPS modülüne dayanan bir GPS alıcısı modülüdür. Bu modül, konum verilerini almak ve GPS uydu sistemine bağlanmak için kullanılır. GY-NEO6MV2 hakkında bazı temel bilgiler:

GPS İşlevi: GY-NEO6MV2, GPS uydu sistemine (Global Positioning System) erişmek için tasarlanmıştır. GPS uydu sisteminden gelen sinyalleri alır ve bu sinyallerden konum, hız, yükseklik ve diğer navigasyon verilerini çıkarır.

NEO-6M GPS Modülü: GY-NEO6MV2, u-blox'un NEO-6M GPS modülüne dayanır. NEO-6M, yüksek hassasiyete ve güvenilirliğe sahip bir GPS alıcısıdır ve seri haberleşme protokolü (UART) aracılığıyla mikrodenetleyiciler veya bilgisayarlar gibi cihazlara bağlanabilir.

Özellikler: GY-NEO6MV2'nin bazı özellikleri şunlardır:

50 kanal üzerinden GPS alıcısı
2,5 metrelik doğrulukla konum verisi sağlar
5 Hz yenileme hızı (5 kez saniyede konum verisi güncellemesi)
TTL seviyesinde seri veri çıkışı
Dahili EEPROM belleği ile yapılandırma verilerini saklar
Bağlantı ve Kullanım: GY-NEO6MV2, mikrodenetleyici veya bilgisayar gibi bir cihaza bağlanabilir. Modül, VCC ve GND pinlerine güç sağlamak için bir güç kaynağına ihtiyaç duyar ve seri veri çıkışını almak için RX ve TX pinlerini kullanır. Modül ayrıca bir anten bağlantısı gerektirir.

Programlama ve Kütüphaneler: GY-NEO6MV2'yi kullanmak için, bağlı olduğu cihazda uygun bir programlama dili ve GPS kütüphaneleri kullanmanız gerekebilir. Örneğin, Arduino tabanlı projelerde Arduino IDE kullanılarak uygun bir GPS kütüphanesi ile GPS verilerine erişilebilir.

Aşağıda, örnek Arduino kodları bulunmakta. Proje şeması makale resminde. 

#include <SoftwareSerial.h>

SoftwareSerial gpsSerial(4, 3); // RX, TX pinleri

void setup() {
  Serial.begin(9600); // Seri iletişim hızı
  gpsSerial.begin(9600); // GPS modülünün baud hızı
}

void loop() {
  while (gpsSerial.available()) {
    char data = gpsSerial.read();
    if (data == '$') { // NMEA cümlesi başlangıcı kontrolü
      String sentence = gpsSerial.readStringUntil('\r');
      if (sentence.startsWith("$GPRMC")) { // Örnek olarak sadece GPRMC cümlesi alınıyor
        parseGPRMC(sentence);
      }
    }
  }
}

void parseGPRMC(String sentence) {
  // GPRMC cümlesini ayrıştırma işlemleri
  // Örnek olarak sadece enlem ve boylam değerleri alınıyor
  int comma1 = sentence.indexOf(',');
  int comma2 = sentence.indexOf(',', comma1 + 1);
  int comma3 = sentence.indexOf(',', comma2 + 1);
  int comma4 = sentence.indexOf(',', comma3 + 1);
  int comma5 = sentence.indexOf(',', comma4 + 1);
  int comma6 = sentence.indexOf(',', comma5 + 1);
  
  String latitude = sentence.substring(comma3 + 1, comma4);
  String longitude = sentence.substring(comma5 + 1, comma6);

  Serial.print("Latitude: ");
  Serial.println(latitude);
  Serial.print("Longitude: ");
  Serial.println(longitude);
}

Bu kod, GPS verilerini ayrıştırarak sadece "$GPRMC" cümlesini dikkate alır ve bu cümleden enlem (latitude) ve boylam (longitude) değerlerini çıkarır. parseGPRMC() fonksiyonu, GPRMC cümlesini ayrıştırma işlemlerini gerçekleştirir ve elde edilen enlem ve boylam değerlerini Serial Monitör üzerinde görüntüler.

Ayrıştırılan enlem ve boylam bilgileri, projemize ekleyeceğimiz başka bileşenlere aktarılabilir. Örneğin bir GSM modülü yardımıyla bir mobil telefona bilgi olarak gönderilebilir. Veya, mikrodenetleyici sistemimize bir Wifi modül bağlıysa, İnternet bağlantısı üzerinden bir IoT Cloud'a gönderilip Google Maps nesnesi yardımıyla izleme yapılabilir.