Arduino Nano ESP32 - GPS

In diesem Leitfaden erfahren wir, wie man GPS-Koordinaten (Längengrad, Breitengrad, Höhe), GPS-Geschwindigkeit (in Kilometern pro Stunde) und Datum sowie Uhrzeit aus dem NEO-6M-GPS-Modul extrahiert. Zusätzlich untersuchen wir den Prozess der Berechnung der Entfernung zwischen der aktuellen GPS-Position und einem vordefinierten Satz von GPS-Koordinaten (beispielsweise die Koordinaten von London).

Erforderliche Hardware

1×Arduino Nano ESP32
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×NEO-6M GPS module
1×Verbindungskabel
1×Breadboard
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

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

Pinbelegung

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

  • VCC-Pin: muss an VCC angeschlossen werden (3,3 V oder 5 V)
  • GND-Pin: muss an GND angeschlossen werden (0 V)
  • TX-Pin: wird zur Kommunikation zwischen dem GPS-Modul und dem ESP32 verwendet und muss an den Serial-RX-Pin am Arduino Nano ESP32 angeschlossen werden.
  • RX-Pin: wird zur Kommunikation zwischen dem GPS-Modul und dem ESP32 verwendet und muss an den Serial-TX-Pin am Arduino Nano ESP32 angeschlossen werden.
Pinbelegung des NEO-6M-GPS-Moduls

Verdrahtungsdiagramm

Schaltplan für Arduino Nano ESP32 GPS-Modul

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

Arduino Nano ESP32-Code

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

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 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-esp32/arduino-nano-esp32-gps */ #include <TinyGPS++.h> #define RX1PIN D2 // The Arduino Nano ESP32 pin connected to the TX of the GPS module #define TX1PIN D3 // The Arduino Nano ESP32 pin connected to the RX of the GPS module TinyGPSPlus gps; // The TinyGPS++ object void setup() { Serial.begin(9600); Serial1.begin(9600, SERIAL_8N1, RX1PIN, TX1PIN); Serial.println(F("Arduino - GPS module")); } void loop() { if (Serial1.available() > 0) { if (gps.encode(Serial1.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

Um mit Arduino Nano ESP32 zu beginnen, befolgen Sie diese Schritte:

  • Wenn Sie neu bei Arduino Nano ESP32 sind, lesen Sie das Tutorial zu wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet.
  • Verbinden Sie die Bauteile gemäß dem bereitgestellten Diagramm.
  • Schließen Sie das Arduino Nano ESP32-Board mit einem USB-Kabel an Ihren Computer an.
  • Starten Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das Arduino Nano ESP32-Board und den entsprechenden COM-Port aus.
  • Klicken Sie auf das Bibliotheken-Symbol in der linken Leiste der Arduino IDE.
  • Suchen Sie “TinyGPSPlus”, und finden Sie dann die TinyGPSPlus-Bibliothek von Mikal Hart.
  • Klicken Sie auf die Installieren-Schaltfläche, um die TinyGPSPlus-Bibliothek zu installieren.
Arduino Nano ESP32 TinyGPS++ Bibliothek
  • Kopiere den obigen Code und öffne ihn mit der Arduino IDE
  • Klicke auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den Arduino Nano ESP32 hochzuladen
  • Sieh dir das Ergebnis im seriellen Monitor an:
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Berechnung der Entfernung vom aktuellen Standort zu einem vordefinierten Standort

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

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 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-esp32/arduino-nano-esp32-gps */ #include <TinyGPS++.h> #define RX1PIN D2 // The Arduino Nano ESP32 pin connected to the TX of the GPS module #define TX1PIN D3 // The Arduino Nano ESP32 pin connected to the RX of the GPS module TinyGPSPlus gps; // The TinyGPS++ object const double LONDON_LAT = 51.508131; const double LONDON_LON = -0.128002; void setup() { Serial.begin(9600); Serial1.begin(9600, SERIAL_8N1, RX1PIN, TX1PIN); Serial.println(F("Arduino - GPS module")); } void loop() { if (Serial1.available() > 0) { if (gps.encode(Serial1.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

  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
  • Klicken Sie in der Arduino IDE auf die Schaltfläche Hochladen, um den Code auf den Arduino Nano ESP32 hochzuladen
  • Sehen Sie das Ergebnis im Serial Monitor:
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!