Dans ce tutoriel, nous allons apprendre à obtenir les coordonnées GPS (longitude, latitude, altitude), la vitesse GPS (km/h), et la date et l'heure à partir du module GPS NEO-6M. Nous apprendrons également à calculer la distance entre la position GPS actuelle et des coordonnées GPS prédéfinies (par exemple, 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
Schéma des broches
Le module GPS NEO-6M comprend 4 broches :
Broche VCC : doit être connectée à VCC (5V)
Broche GND : doit être connectée à GND (0V)
Broche TX : est utilisée pour la communication série, doit être connectée à la broche RX Serial (ou SoftwareSerial) sur Arduino.
Broche RX : est utilisée pour la communication série, doit être connectée à la broche TX Serial (ou SoftwareSerial) sur Arduino.
Diagramme de câblage
Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Code Arduino
Lecture des coordonnées GPS, de la vitesse (km/h) et de la date
/* * Ce code Arduino a été développé par newbiely.fr * Ce code Arduino 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/arduino-gps*/#include <TinyGPS++.h>#include <SoftwareSerial.h>#define RX_PIN 4 // Arduino Pin connected to the TX of the GPS module#define TX_PIN 3 // Arduino Pin connected to the RX of the GPS moduleTinyGPSPlus gps; // the TinyGPS++ objectSoftwareSerial gpsSerial(RX_PIN, TX_PIN); // the serial interface to the GPS modulevoidsetup() {Serial.begin(9600); gpsSerial.begin(9600); // Default baud of NEO-6M GPS module is 9600Serial.println(F("Arduino - GPS module"));}voidloop() {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());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
Ouvrez l'IDE Arduino
Naviguez jusqu'à l'icône Libraries sur 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 charger le code sur Arduino
Consultez le résultat sur le moniteur série :
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Ln 11, Col 1
Arduino Uno on COM15
2
Calcul du trajet depuis l'emplacement actuel jusqu'à 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 a été développé par newbiely.fr * Ce code Arduino 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/arduino-gps*/#include <TinyGPS++.h>#include <SoftwareSerial.h>#define RX_PIN 4 // Arduino Pin connected to the TX of the GPS module#define TX_PIN 3 // Arduino Pin connected to the RX of the GPS moduleTinyGPSPlus gps; // the TinyGPS++ objectSoftwareSerial gpsSerial(RX_PIN, TX_PIN); // the serial interface to the GPS moduleconstdouble LONDON_LAT = 51.508131;constdouble LONDON_LON = -0.128002;voidsetup() {Serial.begin(9600); gpsSerial.begin(9600); // Default baud of NEO-6M GPS module is 9600Serial.println(F("Arduino - GPS module"));}voidloop() {if (gpsSerial.available() > 0) {if (gps.encode(gpsSerial.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 l'IDE Arduino
Cliquez sur le bouton Upload de l'IDE Arduino pour téléverser le code vers Arduino
Voyez le résultat sur le moniteur série :
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Ln 11, Col 1
Arduino Uno on COM15
2
Vidéo
WARNING
Veuillez noter que ce tutoriel est incomplet. Nous publierons sur notre Page Facebook lorsque le tutoriel sera complet. Aimez-la pour rester informé.
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 !