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×Official Arduino Nano
1×Alternativement: DIYables ATMEGA328P Nano Development Board
1×Câble USB A vers Mini-B
1×NEO-6M GPS module
1×Fils de connexion
1×Optionnel: 9V Power Adapter for Arduino Nano
1×Recommandé: Carte d'extension à bornier à vis pour Arduino Nano
1×Recommandé: Carte d'extension breakout pour Arduino Nano
1×Recommandé: Répartiteur d'alimentation pour Arduino Nano

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
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

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Voir Comment alimenter un Arduino Nano..

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

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !