Arduino UNO R4 - GPS

Dieses Tutorial zeigt dir, wie man den Arduino Uno R4 mit einem GPS-Modul verwendet. Im Detail lernen wir, wie man GPS-Koordinaten (Längengrad, Breitengrad, Höhe), GPS-Geschwindigkeit (in Kilometern pro Stunde) und das aktuelle Datum und die aktuelle Uhrzeit von einem NEO-6M-GPS-Modul erhält. Wir werden auch lernen, wie man die Entfernung von unserem aktuellen GPS-Standort zu bestimmten Koordinaten berechnet, zum Beispiel zu London.

Arduino UNO R4 GPS-Modul

Über das NEO-6M GPS-Modul

Pinbelegung

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

  • VCC-Pin: Schließen Sie diesen Pin an VCC (5 V) an.
  • GND-Pin: Schließen Sie diesen Pin an GND (0 V) an.
  • TX-Pin: Dieser Pin wird für die serielle Kommunikation verwendet. Verbinden Sie ihn mit dem RX-Pin der Serial (oder SoftwareSerial) am Arduino UNO R4.
  • RX-Pin: Dieser Pin wird für die serielle Kommunikation verwendet. Verbinden Sie ihn mit dem TX-Pin der Serial (oder SoftwareSerial) am Arduino UNO R4.
Pinbelegung des NEO-6M GPS-Moduls

Verdrahtungsdiagramm

Arduino UNO R4 GPS-Modul Verdrahtungsdiagramm

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

Bitte beachten Sie, dass das oben gezeigte Schaltbild funktionieren mag, aber nicht empfohlen wird. Der TX-Pin des Arduino UNO R4 sendet ein 5V-Signal aus, während der RX-Pin des GPS-Moduls nur 3,3V verarbeiten kann. Aus Sicherheitsgründen sollten Sie zwischen dem TX-Pin des Arduino UNO R4 und dem RX-Pin des GPS-Moduls einen Spannungsteiler verwenden. Dieses Setup ist in der untenstehenden Abbildung dargestellt.

Arduino UNO R4 GPS Verdrahtungsdiagramm

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

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

Arduino UNO R4 Quellcode

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

/* * Dieser Arduino UNO R4 Code wurde von newbiely.de entwickelt * Dieser Arduino UNO R4 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-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")); }

Schnelle Schritte

Folgen Sie diesen Anweisungen Schritt für Schritt:

  • Falls Sie das erste Mal Arduino Uno R4 WiFi/Minima verwenden, lesen Sie das Tutorial zur Einrichten der Umgebung für Arduino Uno R4 WiFi/Minima in der Arduino IDE.
  • Verbinden Sie das Arduino Uno R4 mit dem GPS-Modul gemäß dem bereitgestellten Diagramm.
  • Verbinden Sie das Arduino Uno R4-Board mithilfe eines USB-Kabels mit Ihrem Computer.
  • Starten Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das passende Arduino Uno R4-Board (z. B. Arduino Uno R4 WiFi) und den COM-Port aus.
  • Gehen Sie zum Bibliotheken-Symbol auf der linken Seite der Arduino IDE.
  • Geben Sie TinyGPSPlus in das Suchfeld ein, suchen Sie dann nach der TinyGPSPlus-Bibliothek von Mikal Hart.
  • Klicken Sie auf die Schaltfläche Installieren, um die TinyGPSPlus-Bibliothek hinzuzufügen.
Arduino UNO R4 TinyGPS++-Bibliothek
  • Kopiere den Code und öffne ihn in der Arduino IDE.
  • Klicke in der Arduino IDE auf die Schaltfläche Hochladen, um den Code auf den Arduino UNO R4 hochzuladen.
  • Prüfe das Ergebnis im Serial Monitor.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Berechnung der Entfernung vom aktuellen Standort zu einem vordefinierten Standort

Dieser Code ermittelt, wie weit Sie von London entfernt sind (Breitengrad: 51.508131, Längengrad: -0.128002).

/* * Dieser Arduino UNO R4 Code wurde von newbiely.de entwickelt * Dieser Arduino UNO R4 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-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")); }

Schnelle Schritte

  • Kopieren Sie den Code und öffnen Sie ihn in der Arduino-IDE.
  • Klicken Sie im Arduino-IDE auf die Hochladen-Schaltfläche, um den Code auf den Arduino UNO R4 zu übertragen.
  • Überprüfen Sie das Ergebnis im seriellen 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!