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
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();
}