NEO-6M GPS Modülü: Arduino Konum Takip Rehberi

Uydulardan Gelen Veri
Dronunuzun kaybolmasını istemiyor musunuz? Veya bisikletinizin o anki hızını ve gittiği rotayı kaydetmek mi istiyorsunuz? İhtiyacınız olan şey bir Küresel Konumlama Sistemi (GPS) alıcısıdır. Maker dünyasında fiyat/performans kralı ise tartışmasız u-blox NEO-6M modülüdür.
NEO-6M, dünya yörüngesindeki GPS uydularından gelen sinyalleri yakalar ve üçgenleme yöntemini kullanarak dünyadaki tam konumunuzu (enlem, boylam), yüksekliğinizi, hızınızı ve atomik saat hassasiyetindeki zamanı hesaplar.
NEO-6M Teknik Özellikleri ve Modül Yapısı
Piyasada bulunan NEO-6M modülleri (genellikle GY-GPS6MV2 kartı üzerinde gelir) şu özelliklere sahiptir:
- Seramik Anten: Modülle birlikte gelen o kare şeklindeki gri parça, güçlü bir sinyal alımı için gerekli olan aktif seramik antendir.
- Haberleşme: Seri Haberleşme (UART/TTL) protokolünü kullanır. Yani sadece 2 pin (TX ve RX) ile veri aktarır.
- Voltaj: Modül üzerindeki çip 3.3V ile çalışsa da, kart üzerinde genellikle bir voltaj regülatörü bulunur, bu sayede 3.3V veya 5V ile beslenebilir.
- Baud Rate: Varsayılan iletişim hızı genellikle 9600 baud’dur.
- EEPROM ve Pil: Kartın üzerindeki küçük düğme pil, son uydu verilerini hafızada tutarak elektriği kesseniz bile bir sonraki açılışta uyduları çok daha hızlı bulmasını (Hot Start) sağlar.
NEO-6M NMEA Verisi ve TinyGPS++
GPS modülüne güç verdiğinizde, seri port üzerinden sürekli olarak anlamsız görünen satırlar akmaya başlar. Bunlara NMEA Cümleleri denir. Örnek: $GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47
Bu karmaşık metni ayıklayıp içinden “Enlem: 41.0082, Boylam: 28.9784” gibi anlamlı verileri çıkarmak zordur. İşte burada TinyGPS++ kütüphanesi hayat kurtarır. Bu kütüphane, Arduinonuza gelen karmaşık NMEA verilerini otomatik olarak işler ve size gps.location.lat() gibi basit komutlarla enlem/boylam bilgisini verir.

Arduino ile Bağlantı ve “SoftwareSerial”
Arduino UNO gibi kartlarda sadece bir adet donanımsal seri port (0 ve 1. pinler) vardır ve bu genellikle USB üzerinden bilgisayarla konuşmak için kullanılır. GPS modülünü de aynı anda kullanmak için SoftwareSerial kütüphanesi ile sanal bir seri port oluştururuz (örneğin 3. ve 4. pinler).
Bağlantı Şeması:
- VCC: 5V
- GND: GND
- TX (Modül): Arduino Pin 3 (RX olarak tanımlanan pin)
- RX (Modül): Arduino Pin 4 (TX olarak tanımlanan pin) (Not: İletişimde her zaman birinin TX’i diğerinin RX’ine bağlanır!)
En Büyük Sorun: “GPS Fix” (Konum Sabitleme)
NEO-6M’i ilk kez çalıştırdığınızda (Cold Start), uyduları bulması ve kilitlenmesi 10 ila 30 dakika sürebilir. Bu süre zarfında modül üzerindeki LED yanıp sönmez.
- LED Yanmıyorsa: Henüz uydu bulamadı veya konum sabitleyemedi demektir.
- LED Yanıp Sönüyorsa: Tebrikler! Modül uydulara kilitlendi ve geçerli konum verisi gönderiyor.
Önemli İpucu: GPS modülleri iç mekanlarda çalışmaz. İlk denemenizi mutlaka açık havada, gökyüzünü net gören bir yerde (balkon veya cam kenarı) yapın.
NEO-6M, uygun fiyatı ve TinyGPS++ gibi güçlü kütüphane desteği ile hobi projeleri için mükemmeldir. Sadece sabırlı olun; ilk açılışta uyduları bulması biraz zaman alabilir. Bir kez kilitlendiğinde, dünyadaki yerinizi metre hassasiyetinde bileceksiniz.

ESP32 (Arduino IDE) Örnek Kodu
Gerekli Kütüphane: “TinyGPS++ by Mikal Hart”
//muratdonmez.com.tr
#include <HardwareSerial.h>
#include <TinyGPS++.h>
TinyGPSPlus gps;
HardwareSerial gpsSerial(2); // ESP32 UART Port 2'yi kullan
void displayGpsInfo(); // Fonksiyonu önden bildir
void setup() {
Serial.begin(115200); // PC Monitörü
Serial.println("GPS Testi Başladı. Uydular aranıyor...");
// GPS modülü ile iletişimi başlat (Varsayılan 9600 baud)
gpsSerial.begin(9600, SERIAL_8N1, 16, 17); // (Baud, Config, RX_PIN, TX_PIN)
}
void loop() {
// GPS modülünden veri geldikçe
while (gpsSerial.available() > 0) {
// TinyGPS++ kütüphanesine besle
if (gps.encode(gpsSerial.read())) {
displayGpsInfo(); // Tam bir cümle çözüldüğünde bilgileri göster
}
}
if (millis() > 5000 && gps.charsProcessed() < 10) {
Serial.println("GPS modülünden sinyal alınamıyor. Kabloları (TX/RX) kontrol edin!");
}
}
void displayGpsInfo() {
Serial.print(F("Konum: "));
if (gps.location.isValid()) {
Serial.print(gps.location.lat(), 6); Serial.print(F(","));
Serial.print(gps.location.lng(), 6);
} else {
Serial.print(F("Geçersiz"));
}
Serial.print(F(" Uydular: "));
Serial.print(gps.satellites.value());
Serial.print(F(" İrtifa: "));
if (gps.altitude.isValid()) {
Serial.print(gps.altitude.meters()); Serial.print("m");
} else {
Serial.print("N/A");
}
Serial.println();
}
Eğer akıllı ev, IOT projeleri ile ilgili sorularınız veya yapmak istediğiniz bir projeniz varsa, yedek alma ve yedekten dönme planınız veya felaket kurtarma planınız yoksa, işletmeniz için nasıl bir Sunucu, Bilgisayar veya Kesintisiz Güç Kaynağı seçmeniz gerektiğini bilmiyorsanız danışmanlık hizmetlerimden faydalanmak isterseniz bana WhatsApp üzerinden ulaşabilirsiniz.
İlgili Yazılar
- DS18B20 (Dijital Sıcaklık Sensörü)
- DHT11 / DHT22: Doğru Sıcaklık ve Nem Sensörünü Seçme Rehberi
- BME280: 3’ü 1 Arada Yüksek Hassasiyetli Ortam Sensörü
- BME680: Evinizdeki Havayı Kapsamlı Analiz Edin
- BMP388 ve BMP180: İrtifa ve Basınç Sensör Rehberi
- BH1750 Dijital Işık Sensörü: Lüx (Lux) Ölçer Rehberi
- TDS Sensörü: Su Kalitesi ve PPM Ölçer Rehberi
- Anemometre: Rüzgar Hızı Sensörü Nedir, Nasıl Çalışır?
Sık Sorulan Sorular
- NEO-6M modülümün üzerindeki LED neden yanmıyor?
Modül üzerindeki LED, sadece GPS uydularına başarılı bir şekilde kilitlendiğinde (Fix olduğunda) yanıp sönmeye başlar. Eğer sürekli sönükse, modül hala uyduları arıyor demektir. Bu işlem açık havada ilk seferde 30 dakikayı bulabilir. - GPS modülü evimin içinde çalışır mı?
Genellikle hayır. GPS sinyalleri (mikrodalga) beton duvarlardan ve çatılardan geçemeyecek kadar zayıftır. Sağlıklı veri almak için modülün anteninin gökyüzünü doğrudan görmesi veya en azından bir pencere kenarında olması gerekir. - Modülün TX ve RX pinlerini nasıl bağlamalıyım?
Çapraz bağlantı kuralı geçerlidir. GPS modülünün TX (Verici) pini, Arduino’nun RX (Alıcı) pinine; GPS modülünün RX pini ise Arduino’nun TX pinine bağlanmalıdır. - TinyGPS++ kütüphanesi ne işe yarar?
GPS modülü, NMEA adı verilen karmaşık bir ham veri formatı gönderir. TinyGPS++, bu karmaşık metin yığınını ayrıştırarak size doğrudan enlem, boylam, hız, tarih ve saat gibi anlamlı verileri sunan bir Arduino kütüphanesidir. - Pil (Battery) ne işe yarar, bitince modül çalışmaz mı?
Modül üzerindeki küçük pil, GPS uydu verilerini (efemeris verisi) hafızada tutmak içindir. Pil biterse modül çalışmaya devam eder ancak her elektrik kesintisinden sonra uyduları tekrar bulması daha uzun sürer (Cold Start durumu).




Henüz yorum yapılmamış.