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).
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.
Diagramme de câblage
Cette image a été créée avec Fritzing. Cliquez pour agrandir l'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 moduleTinyGPSPlus gps; // The TinyGPS++ objectvoidsetup() {Serial.begin(9600);Serial1.begin(9600, SERIAL_8N1, RX1PIN, TX1PIN);Serial.println(F("Arduino - GPS module"));}voidloop() {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());elseSerial.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 :
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.
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 :
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2
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 moduleTinyGPSPlus gps; // The TinyGPS++ objectconstdouble LONDON_LAT = 51.508131;constdouble LONDON_LON = -0.128002;voidsetup() {Serial.begin(9600);Serial1.begin(9600, SERIAL_8N1, RX1PIN, TX1PIN);Serial.println(F("Arduino - GPS module"));}voidloop() {if (Serial1.available() > 0) {if (gps.encode(Serial1.read())) {if (gps.location.isValid()) {double latitude = gps.location.lat();double longitude = gps.location.lng();unsignedlong 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 :
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2
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 !