Arduino Nano ESP32 - GPS

Dans ce guide, nous découvrirons comment extraire les coordonnées GPS (longitude, latitude, altitude), la vitesse GPS (en kilomètres par heure) et les informations de date et d'heure du module GPS NEO-6M. De plus, nous explorerons le processus de calcul de la distance entre la position GPS actuelle et un ensemble prédéfini de coordonnées GPS (telles que les coordonnées de Londres).

Préparation du matériel

1×Arduino Nano ESP32
1×USB Cable Type-C
1×NEO-6M GPS module
1×Jumper Wires
1×Breadboard
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

Brochage

Le module GPS NEO-6M possède 4 broches :

  • Broche VCC : doit être connectée à VCC (3,3V ou 5V)
  • Broche GND : doit être connectée à GND (0V)
  • Broche TX : est utilisée pour la communication entre le module GPS et l'ESP32, doit être connectée à la broche RX série sur Arduino Nano ESP32.
  • Broche RX : est utilisée pour la communication entre le module GPS et l'ESP32, doit être connectée à la broche TX série sur Arduino Nano ESP32.
NEO-6M Module GPS Brochage

Diagramme de câblage

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

This image is created using Fritzing. Click to enlarge image

Code Arduino Nano ESP32

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

/* * Ce code Arduino Nano ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 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-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")); }

Étapes rapides

Pour commencer avec l'Arduino Nano ESP32, suivez ces étapes :

  • Si vous êtes novice en matière de Arduino Nano ESP32, référez-vous au tutoriel sur comment configurer l'environnement pour Arduino Nano ESP32 dans l'IDE Arduino.
  • Câblez les composants selon le schéma fourni.
  • Connectez la carte Arduino Nano ESP32 à votre ordinateur à l'aide d'un câble USB.
  • Lancez l'IDE Arduino sur votre ordinateur.
  • Sélectionnez la carte Arduino Nano ESP32 et son port COM correspondant.
  • Cliquez sur l'icône Libraries dans la barre gauche de l'IDE Arduino.
  • 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 ci-dessus et ouvrez-le avec l'IDE Arduino.
  • Cliquez sur le bouton Upload dans l'IDE Arduino pour téléverser le code vers Arduino Nano ESP32.
  • Vérifiez le résultat sur le moniteur série :
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Calculer la distance 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 ESP32 a été développé par newbiely.fr * Ce code Arduino Nano ESP32 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-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")); }

Étapes rapides

  • Copiez le code ci-dessus et ouvrez-le avec Arduino IDE
  • Cliquez sur le bouton Upload dans Arduino IDE pour téléverser le code vers Arduino Nano ESP32
  • Vérifiez 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!