Arduino - GPS
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).
Or you can buy the following sensor kits:
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.
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.
This image is created using Fritzing. Click to enlarge image
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#define RX_PIN 4
#define TX_PIN 3
TinyGPSPlus gps;
SoftwareSerial gpsSerial(RX_PIN, TX_PIN);
void setup() {
Serial.begin(9600);
gpsSerial.begin(9600);
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"));
}
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 :
Le code ci-dessous calcule la distance entre la position actuelle et Londres (lat : 51.508131, long : -0.128002).
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#define RX_PIN 4
#define TX_PIN 3
TinyGPSPlus gps;
SoftwareSerial gpsSerial(RX_PIN, TX_PIN);
const double LONDON_LAT = 51.508131;
const double LONDON_LON = -0.128002;
void setup() {
Serial.begin(9600);
gpsSerial.begin(9600);
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"));
}
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 :
WARNING
Veuillez noter que ce tutoriel est incomplet. Nous publierons sur notre Page Facebook lorsque le tutoriel sera complet. Aimez-la pour rester informé.