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 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 au VCC (5V)
Broche GND : doit être connectée au 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 de l'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 de l'ESP32.
Diagramme de câblage
Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, consultez les instructions dans le tutoriel suivant : Comment alimenter l'ESP32..
Code ESP32
Lecture des coordonnées GPS, de la vitesse (km/h) et de la date.
/* * Ce code ESP32 a été développé par newbiely.fr * Ce code 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/esp32/esp32-gps*/#include <TinyGPS++.h>#define GPS_BAUDRATE 9600 // The default baudrate of NEO-6M is 9600TinyGPSPlus gps; // the TinyGPS++ objectvoidsetup() {Serial.begin(9600);Serial2.begin(GPS_BAUDRATE, SERIAL_8N1, 16, 17);Serial.println(F("ESP32 - GPS module"));}voidloop() {if (Serial2.available() > 0) {if (gps.encode(Serial2.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"));}
Connectez la carte ESP32 à votre PC via un câble micro USB.
Ouvrez Arduino IDE sur votre PC.
Sélectionnez la bonne carte ESP32 (par exemple, ESP32 Dev Module) et le port COM.
Dans Arduino IDE, allez à Gérer les bibliothèques dans la barre de gauche.
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 de l'IDE Arduino pour charger le code sur l'ESP32
Voir le résultat sur le moniteur série :
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Ln 11, Col 1
ESP32 Dev Module on COM15
2
Calcul du trajet depuis l'emplacement actuel jusqu'à un lieu prédéfini
Le code ci-dessous calcule la distance entre l'emplacement actuel et Londres (lat : 51.508131, long : -0.128002)
/* * Ce code ESP32 a été développé par newbiely.fr * Ce code 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/esp32/esp32-gps*/#include <TinyGPS++.h>#define GPS_BAUDRATE 9600 // The default baudrate of NEO-6M is 9600TinyGPSPlus gps; // the TinyGPS++ objectconstdouble LONDON_LAT = 51.508131;constdouble LONDON_LON = -0.128002;voidsetup() {Serial.begin(9600);Serial2.begin(GPS_BAUDRATE, SERIAL_8N1, 16, 17);Serial.println(F("ESP32 - GPS module"));}voidloop() {if (Serial2.available() > 0) {if (gps.encode(Serial2.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 sur l'ESP32.
Voyez le résultat sur le moniteur série :
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32 Dev Module
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Ln 11, Col 1
ESP32 Dev Module 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 !