Pentru a detecta locatia in are ne aflam noi sau montajul dorit vom volosi un receptor GPS realizat cu ajutorul modulului Neo-6M.

    Acest modul se alimenteaza cu +5V si foloseste pentru conexiune doar 2 pini.

    Pretul acestui modul este de 40 lei si se poate cumpara de aici.

    Schema de conexiuni a acestui modul cu Arduino este urmatoarea:

Arduino      ---        Neo-6M

VCC            -         VCC

D2              -         Tx

D3              -          Rx

GND            -          GND

    De asemenea vom avea nevoie de libraria TinyGPSPlus.

    Poza cu montajul este mai jos.

    Sketchul folosit pentru testarea modulului este cel de mai jos:

#include <TinyGPS++.h>
#include <SoftwareSerial.h>
int Rx = 2;
int Tx = 3;
int GPSBaud = 9600;
TinyGPSPlus gps;
SoftwareSerial gpsSerial(Rx, Tx);

void setup()
{
  Serial.begin(9600);
  gpsSerial.begin(GPSBaud);
}

void loop()
{
  while (gpsSerial.available() > 0)
    if (gps.encode(gpsSerial.read()))
      afisare();

  if (millis() > 5000 && gps.charsProcessed() < 10)
  {
    Serial.println("Modul GPS nedetectat");
    while(true);
  }
}

void afisare()
{
  if (gps.location.isValid())
  {
    Serial.print("Latitudine: ");
    Serial.println(gps.location.lat(), 6);
    Serial.print("Longitudine: ");
    Serial.println(gps.location.lng(), 6);
    Serial.print("Altitudine: ");
    Serial.println(gps.altitude.meters());
  }
  else
  {
    Serial.println("Locatie: Indisponibil");
  }
  
  Serial.print("Data: ");
  if (gps.date.isValid())
  {
    Serial.print(gps.date.month());
    Serial.print("/");
    Serial.print(gps.date.day());
    Serial.print("/");
    Serial.println(gps.date.year());
  }
  else
  {
    Serial.println("Data nu este disponibila");
  }

  Serial.print("Ora: ");
  if (gps.time.isValid())
  {
    if (gps.time.hour() < 10) Serial.print(F("0"));
    Serial.print(gps.time.hour());
    Serial.print(":");
    if (gps.time.minute() < 10) Serial.print(F("0"));
    Serial.print(gps.time.minute());
    Serial.print(":");
    if (gps.time.second() < 10) Serial.print(F("0"));
    Serial.print(gps.time.second());
    Serial.print(".");
    if (gps.time.centisecond() < 10) Serial.print(F("0"));
    Serial.println(gps.time.centisecond());
  }
  else
  {
    Serial.println("Ora nu este disponibila");
  }

  Serial.println();
  Serial.println();
  delay(1000);
}

Nu sunt comentarii

Acest website foloseste cookie-uri pentru o experienta placuta in timpul navigarii.