Este tutorial te enseña cómo usar Arduino Nano con un módulo GPS NEO-6M. En detalle, aprenderemos:
Cómo conectar Arduino Nano a un módulo GPS NEO-6M
Cómo programar Arduino Nano para leer coordenadas GPS (longitud, latitud y altitud) desde un módulo GPS NEO-6M
Cómo programar Arduino Nano para calcular la distancia desde la posición GPS actual hasta una coordenada GPS predefinida (por ejemplo, las coordenadas de Londres)
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.
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.
Diagrama de Cableado
This image is created using Fritzing. Click to enlarge image
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>constint RX_PIN = 6, TX_PIN = 5;constuint32_t GPS_BAUD = 9600; //Default baud of NEO-6M is 9600TinyGPSPlus gps; // The TinyGPS++ objectSoftwareSerial gpsSerial(RX_PIN, TX_PIN); // The serial interface to the GPS devicevoidsetup() {Serial.begin(9600); gpsSerial.begin(GPS_BAUD);Serial.println(F("Arduino - GPS module"));}voidloop() {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());elseSerial.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.
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
···
8Serial.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>constint RX_PIN = 6, TX_PIN = 5;constuint32_t GPS_BAUD = 9600; //Default baud of NEO-6M is 9600TinyGPSPlus gps; // The TinyGPS++ objectSoftwareSerial gpsSerial(RX_PIN, TX_PIN); // The serial interface to the GPS deviceconstdouble LONDON_LAT = 51.508131;constdouble LONDON_LON = -0.128002;voidsetup() {Serial.begin(9600); gpsSerial.begin(GPS_BAUD);Serial.println(F("Arduino - GPS module"));}voidloop() {if (gpsSerial.available() > 0) {if (gps.encode(gpsSerial.read())) {if (gps.location.isValid()) {double latitude = gps.location.lat();double longitude = gps.location.lng();unsignedlong 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
···
8Serial.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!