Arduino İle GPS Uygulaması
GPS (Global Positioning System; Küresel Yer Belirleme Sistemi ya da Küresel Konumlandırma Sistemi), düzenli olarak kodlanmış bilgi yollayan bir uydu ağıdır ve uydularla arasındaki mesafeyi ölçerek, dünya üzerindeki kesin yeri tespit etmeyi mümkün kılar.
Bu sistem, ABD Savunma Bakanlığı’na ait, yörüngede sürekli olarak dönen 24 uydudan oluşur. Bu uydular çok düşük, güçlü radyo sinyalleri yayarlar. Yeryüzündeki GPS alıcısı, bu sinyalleri alır. Böylece konum belirlenmesi mümkün olur.
Bu sistemin ilk kuruluş hedefi tamamen askeri amaçlar içindi. GPS alıcıları yön bulmakta, askeri çıkartmalarda ve roket atışlarında kullanılmak üzere tasarlanmıştır. Ancak, 1980’lerde GPS sistemi sivil kullanıma da açılmıştır.
Bu projemizde GPS modülünü anten ile birleştirip, Arduino ile etkileşime koyarak serial monitör üzerinden adres bilgilerini alacağız.
Kullanılan Malzemeler
- Bir adet NMEA GPS Modülü,
- Bir adet harici GPS anteni,
- Bir adet Arduino Uno kartı.
Tasarım
NMEA GPS modülü, Arduino ve Raspberry ile uyumlu hızlı bir şekilde alabildiğimiz, UTC (Universal Time Coordinated) saat ve tarih özelliğine sahip NMEA protokolünü kullanarak seri port üzerinden konum bilgilerini gönderen bir cihazdır.
Harici gps anteni, gps modülü ile birlikte kullanılır. GPS 1575.42 MHz frekansına, 50 ohm empedansına, RHCP polarizasyonuna sahiptir. 5 veya 3 volt ile çalışabilir.
GPS modülünü, Uno kartının üzerine dijital O‘dan başlayarak oturtma işlemi ile birleştirebilirsiniz. GPS anteninin ucunu, modülün sağ tarafında yer alan yuvarlak girişe bağlayınız. Uno kartının 5 volt pozitif beslemesinden GSP modülünün 5V soketine, kartın GND negatif beslemesinden, modülün GND soketine kablolar vasıtasıyla bağlayınız.
Son kısımda bir usb kablo vasıtasıyla bilgisayarla iletişim kurunuz. Kurulan seri iletişimin Baud değeri 4800, toplam veri biti 8, sonlandırma biti ise 1‘dir.
Kodlar
Kodların açıklamalarına bakarak komutları daha iyi anlayabilirsiniz.
// GPS kütüphanesi #include <TinyGPS++.h> //GPS seri iletişim hızı static const uint32_t GPSBaud=9600; // gps nesnesi TinyGPSPlus gps; void setup() { Serial.begin(9600); Serial1.begin(GPSBaud);//GPS sensörü bağlantısı } void loop() { int enlem=gps.location.lat(),6; int boylam=gps.location.lng(),6; int uygu_sayisi=gps.satellites.value(); int rakim=gps.altitude.meters(); int hiz=gps.spedd.kmph(); int yon=gps.course.deg(); int tarih=gps.date; int saat=gps.time; }