Arduino Seri Port ekranında anlamsız ifadeler çıkıyor

elektr0

Üye
Katılım
2 Ocak 2022
Mesajlar
11
Esp-32 Wroom kartı ve NEO6M Gps modülü kullanarak Arduino IDE üzerinden konum takip projesi yapıyorum. Kodlar çalıştıktan sonra Seri port ekranın da anlamsız yazılar çıkmaktadır.


1729675396733.png


Kodlar;
Kod:
#include <TinyGPS++.h>
#include <HardwareSerial.h>

TinyGPSPlus gps;

HardwareSerial ss(2);
void setup() {
  delay(3000);
 
  Serial.begin(115200);
  ss.begin(9600, SERIAL_8N1, 16, 17);
  Serial.println("GPS modülünden veri bekleniyor...");
}
void loop() {
 
  if (ss.available()) {
    while (ss.available()) {
      char c = ss.read();
      Serial.print(c);
    
      if (gps.encode(c)) {
        if (gps.location.isValid()) {
        
          Serial.print("Enlem: ");
          Serial.println(gps.location.lat(), 6);
          Serial.print("Boylam: ");
          Serial.println(gps.location.lng(), 6);
        
          Serial.print("Google Maps: [URL]https://www.google.com/maps/place/[/URL]");
          Serial.print(gps.location.lat(), 6);
          Serial.print(",");
          Serial.println(gps.location.lng(), 6);
        } else {
          Serial.println("GPS verisi geçersiz. Uydu bekleniyor...");
        }
      }
    }
  } else {
    Serial.println("GPS modülünden veri alınamıyor.");
  }
  delay(1000);
}
 
Last edited by a moderator:
Yanlış anlamadıysam esp-32 yi 115200 boud ile başlatmışsın, GPS'i 9600 ile.
Serial monitöre GPS den gelen verileri gönderiyorsun. (Yani 9600 baud ile). Ama Serial monitörün 115200 boud'a ayarlı.
Sağ alttan 9600 baud yap onu.
 
İki devre / modül arasındaki haberleşme hızı ayarları farklı.

Veya iki devre arasındaki gnd bağlantısını yapmayı gözden kaçırmış olabilirsiniz.
 
Yanlış anlamadıysam esp-32 yi 115200 boud ile başlatmışsın, GPS'i 9600 ile.
Serial monitöre GPS den gelen verileri gönderiyorsun. (Yani 9600 baud ile). Ama Serial monitörün 115200 boud'a ayarlı.
Sağ alttan 9600 baud yap onu.
İki devre / modül arasındaki haberleşme hızı ayarları farklı.

Veya iki devre arasındaki gnd bağlantısını yapmayı gözden kaçırmış olabilirsiniz.
Geç yanıtım için kusura bakmayın. Seri port ekranında ki sorunu düzelttim. Ancak bu sefer farklı bir sorun çıktı. Seri port ekranına mesajlar geliyor
(
"Konum verisi henüz alınmadı. GPS modülü uydulardan veri bekliyor..."
) burda takılı kalıyor.
Ve sürekli " 'COM3' üzerinde ki ESP32 Dev Module bağlantısı kuruluyor. " yazısı çıkıyor. 2 dakika sonra ise Serial port busy hatası alıyorum. Ancak portta başka bir işlem yapmıyorum.
Kodları şu şekilde güncelledim;

Kod:
#include <TinyGPS++.h>
#include <HardwareSerial.h>

TinyGPSPlus gps;
HardwareSerial gpsSerial(2);  // Serial2, RX2=GPIO16, TX2=GPIO17

// Fonksiyon Prototipleri
void testGPS();
void testESP32();
void displayGoogleMapsLink(double lat, double lon);

void setup() {
  Serial.begin(9600);
  Serial.println("ESP32 GPS Konum Takip Projesi Basliyor...");
 
  // GPS modül seri bağlantısı
  gpsSerial.begin(9600, SERIAL_8N1, 16, 17);  // RX=16, TX=17
 
  testESP32();
  testGPS();
}

void loop() {
  // GPS verilerini okuma
  while (gpsSerial.available() > 0) {
    char c = gpsSerial.read();
    gps.encode(c);  // GPS verisini TinyGPS++ kütüphanesine gönder

    // Seri monitörde GPS modülünden gelen ham veriyi görüntüleme
    Serial.write(c);
  }

  // GPS verileri başarılı bir şekilde kodlanmışsa
  if (gps.location.isUpdated()) {
    double latitude = gps.location.lat();
    double longitude = gps.location.lng();
   
    // Konum bilgisini seri monitöre yazdır
    Serial.print("Enlem: ");
    Serial.println(latitude, 6);
    Serial.print("Boylam: ");
    Serial.println(longitude, 6);
   
    // Google Maps linki oluştur
    displayGoogleMapsLink(latitude, longitude);
  } else {
    Serial.println("Konum verisi henüz alınmadı. GPS modülü uydulardan veri bekliyor...");
  }
}

// ESP32'nin çalıştığını doğrulayan basit bir test fonksiyonu
void testESP32() {
  Serial.println("ESP32 Basariyla Calisiyor.");
}

// GPS modülünün çalıştığını doğrulayan basit bir test fonksiyonu
void testGPS() {
  if (gpsSerial) {
    Serial.println("GPS modülü bağlı ve çalışıyor.");
  } else {
    Serial.println("GPS modülü bağlı değil ya da çalışmıyor.");
  }
}

// Google Maps üzerinde konumu görüntülemek için link
void displayGoogleMapsLink(double lat, double lon) {
  Serial.print("Google Maps Link: ");
  Serial.print("https://www.google.com/maps/place/");
  Serial.print(lat, 6);
  Serial.print(",");
  Serial.println(lon, 6);
}
 
Son düzenleme:
@elektr0 program kodunu "kod" butonunda açılan pencere ile paylaşırsan kodu takip edip anlamamız çok daha kolay olur

1729768836125.png
 

Forum istatistikleri

Konular
7,401
Mesajlar
124,930
Üyeler
3,003
Son üye
Sashok777

Son kaynaklar

Son profil mesajları

Freemont2.0 herbokolog Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 posta Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Prooffy semih_s Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal taydin Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
Back
Top