Arduino Nano - GPS

Este tutorial te enseña cómo usar Arduino Nano con un módulo GPS NEO-6M. En detalle, aprenderemos:

Además de la longitud, la latitud y la altitud, Arduino Nano también puede leer la velocidad GPS (km/h) y la fecha y hora desde un módulo GPS NEO-6M.

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cable USB A a Mini-B
1×NEO-6M GPS module
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del módulo GPS NEO-6M

El módulo GPS NEO-6M es un módulo GPS que puede proporcionar la siguiente información:

  • Longitud
  • Latitud
  • Altitud
  • Velocidad GPS (km/h)
  • Fecha y hora

Pinout del módulo GPS NEO-6M

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

  • El pin VCC: debe conectarse al VCC (5 V)
  • El pin GND: debe conectarse al GND (0 V)
  • El pin TX: se utiliza para la comunicación serial y debe conectarse al pin RX del Serial (o SoftwareSerial) en Arduino Nano.
  • El pin RX: se utiliza para la comunicación serial y debe conectarse al pin TX del Serial (o SoftwareSerial) en Arduino Nano.
Pinout del módulo GPS NEO-6M

Diagrama de Cableado

Diagrama de cableado del módulo GPS para Arduino Nano

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Nano y otros componentes.

Código de Arduino Nano

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

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-gps */ #include <TinyGPS++.h> #include <SoftwareSerial.h> const int RX_PIN = 6, TX_PIN = 5; const uint32_t GPS_BAUD = 9600; //Default baud of NEO-6M is 9600 TinyGPSPlus gps; // The TinyGPS++ object SoftwareSerial gpsSerial(RX_PIN, TX_PIN); // The serial interface to the GPS device void setup() { Serial.begin(9600); gpsSerial.begin(GPS_BAUD); 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

  • Haz clic en el icono de Bibliotecas en la barra izquierda del IDE de Arduino.
  • Busca “TinyGPSPlus”, luego encuentra la biblioteca TinyGPSPlus de Mikal Hart
  • Haz clic en el botón Instalar para instalar la biblioteca TinyGPSPlus.
Librería Arduino Nano ESP32 TinyGPS++
  • Copie el código mencionado arriba y ábralo en el IDE de Arduino.
  • Haga clic en el Subir botón en el IDE de Arduino para enviar el código al Arduino Nano.
  • Verifique el Monitor Serial para observar el resultado.
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Ln 11, Col 1
Arduino Nano on COM15
2

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

El código a continuación calcula la distancia entre la ubicación actual y Londres (latitud: 51.508131, longitud: -0.128002).

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-gps */ #include <TinyGPS++.h> #include <SoftwareSerial.h> const int RX_PIN = 6, TX_PIN = 5; const uint32_t GPS_BAUD = 9600; //Default baud of NEO-6M is 9600 TinyGPSPlus gps; // The TinyGPS++ object SoftwareSerial gpsSerial(RX_PIN, TX_PIN); // The serial interface to the GPS device const double LONDON_LAT = 51.508131; const double LONDON_LON = -0.128002; void setup() { Serial.begin(9600); gpsSerial.begin(GPS_BAUD); 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

  • Copia el código y ábrelo con el IDE de Arduino.
  • Haz clic en el botón Subir del IDE de Arduino para compilar y subir el código al Arduino Nano.
  • Ver el resultado en el Monitor Serial.
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' on 'COM15')
New Line
9600 baud
Ln 11, Col 1
Arduino Nano on COM15
2

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!