Arduino Nano - GPS

Dieses Tutorial erklärt dir, wie man den Arduino Nano mit einem NEO-6M GPS-Modul verwendet. Im Detail werden wir lernen:

Neben Längengrad, Breitengrad und Höhe kann der Arduino Nano auch die GPS-Geschwindigkeit (km/h) sowie Datum und Uhrzeit von einem NEO-6M GPS-Modul auslesen.

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×NEO-6M GPS module
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über das NEO-6M-GPS-Modul

Das NEO-6M-GPS-Modul ist ein GPS-Modul, das die folgenden Informationen liefern kann:

  • Längengrad
  • Breitengrad
  • Höhe
  • GPS-Geschwindigkeit (km/h)
  • Datum und Uhrzeit

Pinbelegung des NEO-6M GPS-Moduls

Das NEO-6M GPS-Modul hat vier Pins:

  • Der VCC-Pin: sollte mit VCC (5V) verbunden werden.
  • Der GND-Pin: sollte mit GND (0V) verbunden werden.
  • Der TX-Pin: wird für die serielle Kommunikation verwendet und sollte mit dem RX-Pin der Serial-Schnittstelle (oder SoftwareSerial) am Arduino Nano verbunden werden.
  • Der RX-Pin: wird für die serielle Kommunikation verwendet und sollte mit dem TX-Pin der Serial-Schnittstelle (oder SoftwareSerial) am Arduino Nano verbunden werden.
Pinbelegung des NEO-6M GPS-Moduls

Verdrahtungsdiagramm

Arduino Nano GPS-Modul Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.

Arduino Nano Code

Lesen von GPS-Koordinaten, Geschwindigkeit (km/h) und Datum und Uhrzeit

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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")); }

Schnelle Schritte

  • Klicke auf das Bibliotheken-Symbol in der linken Seitenleiste der Arduino IDE.
  • Suche „TinyGPSPlus“, und finde dann die TinyGPSPlus-Bibliothek von Mikal Hart.
  • Klicke auf die Installieren-Schaltfläche, um die TinyGPSPlus-Bibliothek zu installieren.
Arduino Nano ESP32 TinyGPS++-Bibliothek
  • Kopieren Sie den oben genannten Code und öffnen Sie ihn in der Arduino-IDE.
  • Klicken Sie im Arduino-IDE auf die Schaltfläche Hochladen, um den Code an den Arduino Nano zu senden.
  • Öffnen Sie den seriellen Monitor, um das Ergebnis zu beobachten.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Berechnung der Entfernung vom aktuellen Standort zu einem vordefinierten Standort

Der untenstehende Code berechnet die Entfernung zwischen dem aktuellen Standort und London (Breitengrad: 51.508131, Längengrad: -0.128002).

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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")); }

Schnelle Schritte

  • Kopiere den Code und öffne ihn mit der Arduino IDE.
  • Klicke auf die Upload-Schaltfläche in der Arduino IDE, um den Code zu kompilieren und auf den Arduino Nano hochzuladen.
  • Sieh dir das Ergebnis im Serial Monitor an.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Verwandte Tutorials

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!