Arduino Nano - GPS

Ce tutoriel vous explique comment utiliser un Arduino Nano avec un module GPS NEO-6M. En détail, nous apprendrons :

Outre la longitude, la latitude et l'altitude, l'Arduino Nano peut également lire la vitesse GPS (km/h) et la date depuis un module GPS NEO-6M.

Préparation du matériel

1×Arduino Nano
1×USB A to Mini-B USB cable
1×NEO-6M GPS module
1×Jumper Wires
1×(Optional) 9V Power Adapter for Arduino Nano
1×(Recommended) Screw Terminal Adapter for Arduino Nano

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du module GPS NEO-6M

Le module GPS NEO-6M est un module GPS capable de fournir les informations suivantes :

  • Longitude
  • Latitude
  • Altitude
  • Vitesse GPS (km/h)
  • Date et heure

Brochage du module GPS NEO-6M

Le module GPS NEO-6M dispose de quatre broches :

  • La broche VCC : doit être connectée au VCC (5V)
  • La broche GND : doit être connectée au GND (0V)
  • La broche TX : est utilisée pour la communication série et doit être connectée à la broche RX série (ou SoftwareSerial) sur Arduino Nano.
  • La broche RX : est utilisée pour la communication série et doit être connectée à la broche TX série (ou SoftwareSerial) sur Arduino Nano.
Brochage du module GPS NEO-6M

Diagramme de câblage

Schéma de câblage du module GPS Arduino Nano

This image is created using Fritzing. Click to enlarge image

Code Arduino Nano

Lecture des coordonnées GPS, de la vitesse (km/h) et de la date.

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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")); }

Étapes rapides

  • Cliquez sur l'icône Libraries sur la barre gauche de l'Arduino IDE.
  • Recherchez "TinyGPSPlus", puis trouvez la bibliothèque TinyGPSPlus de Mikal Hart
  • Cliquez sur le bouton Install pour installer la bibliothèque TinyGPSPlus.
Bibliothèque TinyGPS++ pour Arduino Nano ESP32
  • Copiez le code mentionné ci-dessus et ouvrez-le dans l'IDE Arduino.
  • Cliquez sur le bouton Upload de l'IDE Arduino pour envoyer le code à l'Arduino Nano.
  • Vérifiez le moniteur série pour observer le résultat.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Calcul du trajet entre la position actuelle et un lieu prédéfini

Le code ci-dessous calcule la distance entre la position actuelle et Londres (lat: 51.508131, long: -0.128002).

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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")); }

Étapes rapides

  • Copiez le code et ouvrez-le avec l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour compiler et téléverser le code vers l'Arduino Nano.
  • Visualisez le résultat sur le moniteur série.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vidéo

Tutoriels connexes

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!