Arduino ve Neo-6M GPS Modülü ile Konum (Enlem/Boylam) Bilgisi Alma

👤 Yazar: ozcan 📅 Tarih: 10.07.2026 04:47 👁️ Görüntüleme: 32

Arduino ve Neo-6M GPS Modülü ile Konum (Enlem/Boylam) Bilgisi Alma

Projelerimize kablosuz kontrol ve motor sürücüler ekledikten sonra, sıra sistemimize "nerede olduğunu" öğretmeye geldi! Bu rehberde, dünya genelinde en çok kullanılan ve oldukça bütçe dostu olan GY-NEO6MV2 GPS modülünü inceleyeceğiz. Bilgisayar bağlantımızı (Seri Haberleşme) meşgul etmemek için SoftwareSerial kütüphanesini kullanarak modülden anlık enlem, boylam, hız ve zaman verilerini nasıl çekeceğimizi adım adım göreceğiz.

Gerekli Malzemeler

  • Arduino Uno
  • GY-NEO6MV2 (Neo-6M) GPS Modülü ve Anteni
  • Jumper Kablolar

1. GPS Modülü Bağlantı Şeması (SoftwareSerial Konfigürasyonu)

GPS modülleri seri haberleşme (UART) ile çalışır. Arduino Uno üzerinde sadece bir tane donanımsal seri port (0 ve 1. pinler) olduğu için, modülümüzü yazılımsal olarak belirlediğimiz Pin 3 (RX) ve Pin 4 (TX) pinlerine bağlayacağız. Bağlantıları yaparken aşağıdaki görseli ve tabloyu referans alabilirsiniz:

arduino ipe neo6m modül kullanım şeması

Neo-6M GPS Pini Arduino Uno Pini
VCC 5V (Modül tipine göre 3.3V veya 5V destekler, GY-NEO6MV2 genellikle 5V ile çalışır)
GND GND
TX (Veri Gönderme) Pin 3 (Arduino'nun Yazılımsal RX pini)
RX (Veri Alma) Pin 4 (Arduino'nun Yazılımsal TX pini)

Önemli Kural: Çapraz bağlantı mantığı nedeniyle GPS modülünün TX pini, Arduino'da tanımladığımız RX (Pin 3) pinine; GPS modülünün RX pini ise Arduino'da tanımladığımız TX (Pin 4) pinine bağlanmalıdır.


2. Gerekli Kütüphaneyi Ekleme

GPS modülünden gelen karmaşık ham (NMEA) verilerini anlamlı enlem ve boylam koordinatlarına dönüştürmek için popüler TinyGPS++ kütüphanesini kullanacağız:

  1. Arduino IDE'yi açın.
  2. Taslak -> Library Ekle -> Kütüphaneleri Yönet... yolunu izleyin.
  3. Arama çubuğuna "TinyGPS++" yazın (Mikal Hart tarafından yazılanı seçebilirsiniz).
  4. Kur butonuna tıklayarak kurulumu tamamlayın.

3. Arduino Kod Blokları

Aşağıdaki kodu doğrudan kopyalayıp Arduino editörünüze yapıştırabilirsiniz. İstediğiniz gibi yazılımsal seri port pinleri 3 ve 4 olarak ayarlanmıştır.

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

// GPS modülü için yazılımsal seri port tanımlıyoruz.
// Arduino Pin 3 = RX (Modülün TX pini buraya bağlanır)
// Arduino Pin 4 = TX (Modülün RX pini buraya bağlanır)
SoftwareSerial gpsSerial(3, 4);

// TinyGPS++ nesnesini oluşturuyoruz
TinyGPSPlus gps;

void setup() {
  // Bilgisayar ile haberleşme hızı (Seri Port Ekranı)
  Serial.begin(9600);
  
  // Neo-6M GPS modülünün varsayılan haberleşme hızı genellikle 9600'dür
  gpsSerial.begin(9600);
  
  Serial.println("GPS Modulu Baslatildi. Uydu baglantisi bekleniyor...");
  Serial.println("NOT: Ilk baglanti acik alanda 5 dakikaya kadar surebilir.");
}

void loop() {
  // GPS modülünden veri geldikçe TinyGPS++ kütüphanesine aktarıyoruz
  while (gpsSerial.available() > 0) {
    if (gps.encode(gpsSerial.read())) {
      displayInfo(); // Yeni ve anlamlı bir veri paketi çözüldüğünde ekrana yazdır
    }
  }
}

void displayInfo() {
  Serial.print("Konum: "); 
  if (gps.location.isValid()) {
    // Enlem ve Boylam bilgilerini virgülden sonra 6 basamak olacak şekilde yazdırıyoruz
    Serial.print(gps.location.lat(), 6);
    Serial.print(" , ");
    Serial.print(gps.location.lng(), 6);
  } else {
    Serial.print("Sinyal Yok (Uydu Araniyor...)");
  }

  Serial.print("  |  Uydu Sayisi: ");
  if (gps.satellites.isValid()) {
    Serial.print(gps.satellites.value());
  } else {
    Serial.print("0");
  }

  Serial.print("  |  Hiz: ");
  if (gps.speed.isValid()) {
    Serial.print(gps.speed.kmph());
    Serial.print(" km/h");
  } else {
    Serial.print("0");
  }

  Serial.println();
}

Sık Yaşanan Sorunlar ve Çözümleri

1. Seri Ekranda Sürekli "Sinyal Yok (Uydu Aranıyor...)" Yazıyor

Çözüm: GPS modülleri evlerin içinde, beton binaların altında uydu sinyali alamazlar. Sistemi test etmek için modülün antenini mutlaka pencere kenarına koymalı ya da açık bir alana çıkmalısınız. Modülün uydulara ilk kilitlenmesi (Cold Start) açık alanda bile bazen 2 ila 5 dakika sürebilir. Bağlantı kurulduğunda modül üzerindeki küçük kırmızı LED yanıp sönmeye başlayacaktır.

2. Seri Port Ekranında Anlamsız Karakterler (Ters Soru İşaretleri vb.) Çıkıyor

Çözüm: Arduino IDE ekranındaki Seri Port Ekranının sağ alt köşesinde bulunan Baud Rate (Haberleşme Hızı) ayarının 9600 baud olarak seçildiğinden emin olun.

💬 Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Bir Yorum Bırakın

Güvenlik Kontrolü:

Yenidir.com
↑ Sayfa Başı
📞 İletişim ✉ E-Posta Gönder 🟥 YouTube
© 2026 Yenidir.com
Yenidir CMS V0.1