InicioMódulosInalámbricosObtener lecturas GPS con NEO6MV2 y Arduino IDE

Obtener lecturas GPS con NEO6MV2 y Arduino IDE

En el siguiente tutorial aprenderás a obtener lecturas del módulo GPS NEO6MV2 utilizando un Arduino Uno visualizando los datos desde el monitor serie del Arduino IDE.

Introducción

El módulo NEO6MV2 es un receptor GPS (Global Positioning System) compacto y de alta precisión, diseñado para aplicaciones que requieren posicionamiento satelital.

Es ampliamente utilizado en proyectos de electrónica y robótica debido a su confiabilidad y facilidad de integración con microcontroladores como Arduino. Este módulo es capaz de recibir señales de múltiples satélites y proporcionar datos precisos de ubicación, tiempo y velocidad.

Materiales

Diagrama de conexiones

Para utilizar el GPS NEO6MV2 con la placa de desarrollo Arduino Uno sólo realizar las conexiones que se muestran en la siguiente imagen:

ARDUINO UNO GPS

3.3V — Vcc

GND–GND

Pin 4 –Tx

Pin 3 — Rx

Código

El programa recibe y procesa datos desde el NEO6MV2 , se requerirán las librerías:

  • SoftwareSerial
  • TinyGPS
  • Inicializa la comunicación serie para la transmisión de datos del NEO6MV2 a través de los pines 4 y 3 del Arduino.

    En el bucle principal, el código lee los datos entrantes del NEO6MV2 , los decodifica y extrae información como latitud, longitud, fecha, hora, altitud, rumbo, velocidad y número de satélites visibles. Esta información se imprime en el monitor serie, permitiendo visualizar en tiempo real la posición y otros datos relevantes obtenidos del GPS.

    #include <SoftwareSerial.h>//incluimos SoftwareSerial
    #include <TinyGPS.h>//incluimos TinyGPS
    
    TinyGPS gps;//Declaramos el objeto gps
    SoftwareSerial serialgps(4,3);//Declaramos el pin 4 Tx y 3 Rx
    
    //Declaramos la variables para la obtención de datos
    int year;
    byte month, day, hour, minute, second, hundredths;
    unsigned long chars;
    unsigned short sentences, failed_checksum;
    
    void setup()
    {
      Serial.begin(115200);//Iniciamos el puerto serie
      serialgps.begin(9600);//Iniciamos el puerto serie del gps
      //Imprimimos:
      Serial.println("");
      Serial.println("GPS GY-GPS6MV2 Leantec");
      Serial.println(" ---Buscando senal--- ");
      Serial.println("");
    }
    
    void loop()
    {
      while(serialgps.available()) 
      {
        int c = serialgps.read();
     
        if(gps.encode(c))  
        {
          float latitude, longitude;
          gps.f_get_position(&latitude, &longitude);
          Serial.print("Latitud/Longitud: "); 
          Serial.print(latitude,5); 
          Serial.print(", "); 
          Serial.println(longitude,5);
    
    
      gps.crack_datetime(&year,&month,&day,&hour,&minute,&second,&hundredths);
          Serial.print("Fecha: "); Serial.print(day, DEC); Serial.print("/"); 
          Serial.print(month, DEC); Serial.print("/"); Serial.print(year);
          Serial.print(" Hora: "); Serial.print(hour, DEC); Serial.print(":"); 
          Serial.print(minute, DEC); Serial.print(":"); Serial.print(second, DEC); 
          Serial.print("."); Serial.println(hundredths, DEC);
          Serial.print("Altitud (metros): ");
          Serial.println(gps.f_altitude()); 
          Serial.print("Rumbo (grados): "); Serial.println(gps.f_course()); 
          Serial.print("Velocidad(kmph): ");
          Serial.println(gps.f_speed_kmph());
          Serial.print("Satelites: "); Serial.println(gps.satellites());
          Serial.println();
          gps.stats(&chars, &sentences, &failed_checksum);  
        }
      }
    }

    El código solo lee constantemente el módulo GPS NEO6MV2 a una velocidad de 9600 baudios que es la velocidad por la que viene configurado por defecto.

    Al abrir el monitor serial, cambia la configuración de velocidad baudios a 115200 baudios, así podremos ver la lectura de los datos que recibidos por el módulo. El resultado que tendrás será el siguiente:

    Conclusión

    Se demuestra el uso del NEO6WV2 para realizar envió y recepción de datos, que fueron la ubicación (longitud y latitud), fecha, hora, altitud, velocidad y la cantidad de satélites visibles.

    Esta experiencia ayuda en la comprensión de los sistemas de navegación por satélite, sino que también proporciona habilidades útiles para proyectos avanzados de geolocalización y seguimiento.

    TUTORIALES RELACIONADOS