Arduino UNO R4 - GPS

Este tutorial te enseña cómo usar Arduino Uno R4 con un módulo GPS. En detalle, aprenderemos a obtener las coordenadas GPS (longitud, latitud, altitud), la velocidad GPS (en kilómetros por hora) y la fecha y hora actuales de un módulo GPS NEO-6M. También aprenderemos a calcular la distancia desde nuestra ubicación GPS actual a coordenadas específicas, como las de Londres.

Módulo GPS para Arduino UNO R4

Acerca del módulo GPS NEO-6M

Diagrama de pines

El módulo GPS NEO-6M tiene 4 pines:

  • Pin VCC: Conecte este pin a VCC (5V).
  • Pin GND: Conecte este pin a GND (0V).
  • Pin TX: Este pin se utiliza para la comunicación serie. Conéctelo al pin RX del Serial (o SoftwareSerial) en Arduino UNO R4.
  • Pin RX: Este pin se utiliza para la comunicación serie. Conéctelo al pin TX del Serial (o SoftwareSerial) en Arduino UNO R4.
Pinout del módulo GPS NEO-6M

Diagrama de Cableado

Diagrama de cableado del módulo GPS del Arduino UNO R4

This image is created using Fritzing. Click to enlarge image

Por favor, tenga en cuenta que el diagrama de cableado mostrado arriba puede funcionar, pero no se recomienda. El pin TX del Arduino UNO R4 emite una señal de 5 V, mientras que el pin RX del módulo GPS solo puede manejar 3,3 V. Por seguridad, debería usar un divisor de voltaje entre el pin TX del Arduino UNO R4 y el pin RX del módulo GPS. Esta configuración se ilustra en el diagrama de abajo.

Diagrama de cableado de Arduino UNO R4 GPS

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Uno R4 y otros componentes.

Arduino UNO R4 Código

Lectura de coordenadas GPS, velocidad (km/h) y fecha y hora

/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-gps */ #include <TinyGPS++.h> #include <SoftwareSerial.h> #define RX_PIN 4 // The Arduino UNO R4 pin connected to the TX of the GPS module #define TX_PIN 3 // The Arduino UNO R4 pin connected to the RX of the GPS module TinyGPSPlus gps; // the TinyGPS++ object SoftwareSerial gpsSerial(RX_PIN, TX_PIN); // the serial interface to the GPS module void setup() { Serial.begin(9600); gpsSerial.begin(9600); // Default baud of NEO-6M GPS module is 9600 Serial.println(F("Arduino - GPS module")); } void loop() { if (gpsSerial.available() > 0) { if (gps.encode(gpsSerial.read())) { if (gps.location.isValid()) { Serial.print(F("- latitude: ")); Serial.println(gps.location.lat()); Serial.print(F("- longitude: ")); Serial.println(gps.location.lng()); Serial.print(F("- altitude: ")); if (gps.altitude.isValid()) Serial.println(gps.altitude.meters()); else Serial.println(F("INVALID")); } else { Serial.println(F("- location: INVALID")); } Serial.print(F("- speed: ")); if (gps.speed.isValid()) { Serial.print(gps.speed.kmph()); Serial.println(F(" km/h")); } else { Serial.println(F("INVALID")); } Serial.print(F("- GPS date&time: ")); if (gps.date.isValid() && gps.time.isValid()) { Serial.print(gps.date.year()); Serial.print(F("-")); Serial.print(gps.date.month()); Serial.print(F("-")); Serial.print(gps.date.day()); Serial.print(F(" ")); Serial.print(gps.time.hour()); Serial.print(F(":")); Serial.print(gps.time.minute()); Serial.print(F(":")); Serial.println(gps.time.second()); } else { Serial.println(F("INVALID")); } Serial.println(); } } if (millis() > 5000 && gps.charsProcessed() < 10) Serial.println(F("No GPS data received: check wiring")); }

Pasos R\u00e1pidos

Siga estas instrucciones paso a paso:

  • Si es la primera vez que usas el Arduino Uno R4 WiFi/Minima, consulta el tutorial sobre configurar el entorno para Arduino Uno R4 WiFi/Minima en el IDE de Arduino.
  • Conecta el Arduino Uno R4 al módulo GPS según el diagrama proporcionado.
  • Conecta la placa Arduino Uno R4 a tu computadora usando un cable USB.
  • Inicia el IDE de Arduino en tu computadora.
  • Selecciona la placa Arduino Uno R4 adecuada (p. ej., Arduino Uno R4 WiFi) y el puerto COM.
  • Ve al icono Libraries en el lado izquierdo del IDE de Arduino.
  • Escribe TinyGPSPlus en la caja de búsqueda, luego busca la biblioteca TinyGPSPlus de Mikal Hart.
  • Haz clic en el botón Install para agregar la biblioteca TinyGPSPlus.
Biblioteca TinyGPS++ para Arduino UNO R4
  • Copia el código y ábrelo en Arduino IDE.
  • Haz clic en el botón Subir en Arduino IDE para subir el código al Arduino UNO R4.
  • Verifica el resultado en el Monitor serie.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Cálculo de la distancia desde la ubicación actual hasta una ubicación predefinida

Este código calcula qué tan lejos te encuentras de Londres (latitud: 51.508131, longitud: -0.128002).

/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-gps */ #include <TinyGPS++.h> #include <SoftwareSerial.h> #define RX_PIN 4 // The Arduino UNO R4 pin connected to the TX of the GPS module #define TX_PIN 3 // The Arduino UNO R4 pin connected to the RX of the GPS module TinyGPSPlus gps; // the TinyGPS++ object SoftwareSerial gpsSerial(RX_PIN, TX_PIN); // the serial interface to the GPS module const double LONDON_LAT = 51.508131; const double LONDON_LON = -0.128002; void setup() { Serial.begin(9600); gpsSerial.begin(9600); // Default baud of NEO-6M GPS module is 9600 Serial.println(F("Arduino - GPS module")); } void loop() { if (gpsSerial.available() > 0) { if (gps.encode(gpsSerial.read())) { if (gps.location.isValid()) { double latitude = gps.location.lat(); double longitude = gps.location.lng(); unsigned long distanceKm = TinyGPSPlus::distanceBetween(latitude, longitude, LONDON_LAT, LONDON_LON) / 1000; Serial.print(F("- latitude: ")); Serial.println(latitude); Serial.print(F("- longitude: ")); Serial.println(longitude); Serial.print(F("- distance to London: ")); Serial.println(distanceKm); } else { Serial.println(F("- location: INVALID")); } Serial.println(); } } if (millis() > 5000 && gps.charsProcessed() < 10) Serial.println(F("No GPS data received: check wiring")); }

Pasos R\u00e1pidos

  • Copie el código y ábralo en el IDE de Arduino.
  • Haga clic en el botón Subir en el IDE de Arduino para enviar el código al Arduino UNO R4.
  • Verifique el resultado en el Monitor serie.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Tutoriales Relacionados

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!