Hangi GPS modülü?

Hangi GPS modülü?

hagi GPS modülü yazmızda piyasada en çok kullanılan u-blox marka neo 6m, neo 7m ve neom8n modellerini inceleyeceğiz. Kütüphanesiniz nasıl kullanacağımızı ve lora modülü ile veri transferi apılır gibi konuları detaylı anlatmaya çalışacağım

GOALS

•GPS modülü ilk nasıl bulundu

•GPS modül çeşitleri

•M8N nin farkları

•ESP32 mi NANO ile mi kullanalım

•İlk uygulama

•TingGPSPlus kütüphane

•GPS verisini yollama konularına değineceğiz

Gerekli Malzemeler

LoRa Başlangıç Seti
LoRa Başlangıç Seti

E32 433T20D Lora Modülü uygun anten, PCB , Kutu ve Arduino nano modülleri ile birlikte en Uygun Fiyatlı set.

LoRa Uzman Seti
LoRa Uzman Seti

E22 900T22D Lora Modülü uygun anten, PCB , Kutu ve Arduino nano modülleri ile birlikte en Uygun Fiyatlı set.

Kullanacağımız Kodlar

Kütüphanesi kullanım ESP32

/*
 * There are three serial ports on the ESP known as U0UXD, U1UXD and U2UXD.
 * 
 * U0UXD is used to communicate with the ESP32 for programming and during reset/boot.
 * U1UXD is unused and can be used for your projects. Some boards use this port for SPI Flash access though
 * U2UXD is unused and can be used for your projects.
 * 
*/

#define RXD2 16
#define TXD2 17  

void setup()
{

  Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2);
  // Start the Arduino hardware serial port at 9600 baud
  Serial.begin(9600); 
}

void loop()
{
  // Displays information when new sentence is available.
  /*while (Serial2.available() > 0){
    Serial.write(Serial2.read());
  }
*/

   while (Serial2.available()) {
    Serial.print(char(Serial2.read()));
  }

  Serial.println("-----------------------------");
}

Kütüphane ile kullanım örneği

#include <TinyGPSPlus.h>
#define RXD2 16
#define TXD2 17

// The TinyGPSPlus object
TinyGPSPlus gps;
struct Signal {
  char sifre[15] = "Fixaj.com";
  char konum[15];
  bool btn1;
  byte btn2[10];
  byte btn3[4];
} data;

void setup() {
  Serial.begin(115200);
  Serial2.begin(9600, SERIAL_8N1, RXD2, TXD2);


  Serial.println(F("DeviceExample.ino"));
  Serial.println(F("A simple demonstration of TinyGPSPlus with an attached GPS module"));
  Serial.print(F("Testing TinyGPSPlus library v. "));
  Serial.println(TinyGPSPlus::libraryVersion());
  Serial.println(F("by Mikal Hart"));
  Serial.println();
}

void loop() {
  // This sketch displays information every time a new sentence is correctly encoded.
  while (Serial2.available() > 0)
    if (gps.encode(Serial2.read()))
      displayInfo();
}

void displayInfo() {
  Serial.print(F("Location: "));
  if (gps.location.isValid()) {
    Serial.print(gps.location.lat(), 6);
    Serial.print(F(","));
    Serial.print(gps.location.lng(), 6);
    *(float*)(data.btn2) = gps.location.lng();
  } else {
    Serial.print(F("INVALID"));
  }

  Serial.print(F("  Date/Time: "));
  if (gps.date.isValid()) {
    Serial.print(gps.date.month());
    Serial.print(F("/"));
    Serial.print(gps.date.day());
    Serial.print(F("/"));
    Serial.print(gps.date.year());
  } else {
    Serial.print(F("INVALID"));
  }

  Serial.print(F(" "));
  if (gps.time.isValid()) {
    if (gps.time.hour() < 10) Serial.print(F("0"));
    Serial.print(gps.time.hour());
    Serial.print(F(":"));
    if (gps.time.minute() < 10) Serial.print(F("0"));
    Serial.print(gps.time.minute());
    Serial.print(F(":"));
    if (gps.time.second() < 10) Serial.print(F("0"));
    Serial.print(gps.time.second());
    Serial.print(F("."));
    if (gps.time.centisecond() < 10) Serial.print(F("0"));
    Serial.print(gps.time.centisecond());
  } else {
    Serial.print(F("INVALID"));
  }

  Serial.println();
}