Arduino Mega - GPS

Bienvenue dans ce tutoriel complet Arduino Mega GPS où nous explorerons le monde fascinant de la technologie GPS intégrée avec le microcontrôleur Arduino Mega ! Dans ce guide détaillé du module GPS Arduino Mega, vous découvrirez comment exploiter la puissance du module GPS NEO-6M pour localiser votre position exacte n'importe où sur Terre en utilisant l'Arduino Mega.

Tout au long de ce tutoriel Arduino Mega GPS, nous plongerons en profondeur dans la lecture de données GPS critiques depuis votre module GPS, incluant la longitude (votre position est-ouest), la latitude (votre position nord-sud), et l'altitude (votre élévation précise au-dessus du niveau de la mer). Au-delà des simples données de localisation GPS, vous apprendrez aussi à extraire les mesures de vitesse dérivées du GPS (commodément calculées en kilomètres par heure) et à accéder aux informations précises de date et heure directement depuis les satellites GPS en utilisant votre Arduino Mega et module GPS.

Mais ce n'est pas tout ! Nous irons plus loin en vous enseignant comment effectuer des calculs de distance GPS entre votre position GPS actuelle et n'importe quelles autres coordonnées sur la planète avec l'Arduino Mega. Comme exemple GPS Arduino pratique, nous démontrerons le calcul de la distance entre votre position et l'emblématique ville de Londres. Ce projet de module GPS Arduino Mega ouvre des possibilités infinies pour les projets de navigation GPS, systèmes de suivi de position, et applications basées sur la géolocalisation.

Arduino Mega GPS module

Matériel requis

1×Arduino Mega
1×Câble USB 2.0 type A/B
1×Module GPS NEO-6M
1×Câbles de liaison
1×Recommandé: Screw Terminal Block Shield for Arduino Uno/Mega
1×Recommandé: Breadboard Shield for Arduino Mega
1×Recommandé: Enclosure for Arduino Mega

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
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.

L'Arduino Mega sert de cerveau à votre projet, traitant toutes les données GPS reçues du module. Le câble USB fournit à la fois l'alimentation et les capacités de programmation, tandis que les câbles de liaison établissent le lien de communication série vital entre votre microcontrôleur et le récepteur GPS.

À propos du module GPS NEO-6M

Le NEO-6M est un module GPS (Global Positioning System) compact et haute performance qui reçoit des signaux depuis de multiples satellites en orbite autour de la Terre. Cet appareil remarquable peut déterminer votre position avec une précision impressionnante, typiquement à quelques mètres près dans des conditions optimales. Le module dispose d'une antenne céramique intégrée et est prêt à utiliser dès la sortie de la boîte.

L'un des avantages clés du NEO-6M est sa compatibilité avec la plateforme Arduino, le rendant parfait pour les amateurs et professionnels qui souhaitent ajouter des capacités de suivi de localisation à leurs projets. Le module fonctionne de manière fiable et peut suivre jusqu'à 22 satellites simultanément, assurant un verrouillage GPS fort et stable même dans des environnements difficiles.

Brochage

Comprendre la configuration des broches est essentiel pour une connexion appropriée. Le module GPS NEO-6M dispose d'une interface simple à quatre broches qui rend le câblage simple et intuitif :

  • Broche VCC : Il s'agit de la broche d'alimentation. Connectez-la au 5V (VCC) pour fournir la tension nécessaire au fonctionnement du module
  • Broche GND : La broche de référence de masse. Connectez-la à la masse (0V) pour compléter le circuit d'alimentation
  • Broche TX : La broche de transmission utilisée pour envoyer des données GPS depuis le module vers votre Arduino. Connectez-la à la broche RX de l'interface Serial (ou SoftwareSerial) sur l'Arduino Mega
  • Broche RX : La broche de réception utilisée pour recevoir les commandes de configuration. Connectez-la à la broche TX de l'interface Serial (ou SoftwareSerial) sur l'Arduino Mega
NEO-6M GPS module Pinout

Notez que bien que la nomenclature TX/RX puisse sembler contre-intuitive au premier abord, rappelez-vous que la broche de transmission (TX) d'un appareil se connecte toujours à la broche de réception (RX) de l'autre appareil, créant un canal de communication approprié.

Schéma de câblage

Maintenant examinons la façon appropriée d'établir les connexions électriques entre votre Arduino Mega et le module GPS.

Arduino Mega GPS module Wiring Diagram

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Note de sécurité importante : Bien que le schéma de câblage montré ci-dessus puisse fonctionner, ce n'est pas l'approche recommandée pour une fiabilité à long terme. Voici pourquoi : La broche TX de l'Arduino Mega produit un signal de niveau logique 5V, alors que la broche RX du module GPS est conçue pour gérer en sécurité seulement 3,3V. Connecter 5V directement à une entrée 3,3V peut potentiellement endommager le module GPS au fil du temps ou causer un fonctionnement peu fiable.

Pour assurer une communication sûre et fiable, il est hautement recommandé d'implémenter un circuit diviseur de tension entre la broche TX Arduino et la broche RX GPS. Ce circuit simple réduit le signal 5V à un niveau sûr de 3,3V qui n'endommagera pas votre module GPS. Le schéma de câblage amélioré ci-dessous démontre cette configuration protectrice :

Arduino Mega GPS Wiring Diagram

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

En utilisant le diviseur de tension (typiquement créé avec deux résistances), vous protégez votre investissement dans le module GPS et assurez des performances constantes et fiables. C'est une bonne pratique que les concepteurs d'électronique professionnels suivent toujours lors de l'interfaçage de composants avec différents niveaux de tension.

Code Arduino Mega

Plongeons dans l'aspect programmation de ce projet ! Les exemples de code ci-dessous vous montreront exactement comment communiquer avec le module GPS et extraire des données significatives.

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

Dans ce premier exemple, nous écrirons du code qui lit et affiche les points de données GPS fondamentaux : vos coordonnées géographiques, vitesse actuelle, et informations d'horodatage. Ceci forme la base pour tout projet basé sur GPS que vous pourriez vouloir construire.

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega 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-mega/arduino-mega-gps */ #include <TinyGPS++.h> TinyGPSPlus gps; // the TinyGPS++ object void setup() { Serial.begin(9600); Serial1.begin(9600); // Default baud of NEO-6M GPS module is 9600 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

Suivez ces étapes détaillées attentivement pour faire fonctionner votre projet GPS. Prenez votre temps avec chaque étape pour vous assurer que tout est configuré correctement :

  • Étape 1 - Connexion physique : Connectez l'Arduino Mega au module GPS en utilisant le schéma de câblage montré dans la section précédente. Vérifiez toutes les connexions pour vous assurer qu'elles sont sécurisées et correctes.
  • Étape 2 - Connexion USB : Connectez la carte Arduino Mega à votre ordinateur en utilisant un câble USB. Attendez un moment que votre ordinateur reconnaisse l'appareil.
  • Étape 3 - Lancement de l'IDE : Ouvrez l'IDE Arduino sur votre ordinateur. Si vous ne l'avez pas encore installé, téléchargez-le depuis le site officiel Arduino.
  • Étape 4 - Configuration de la carte : Choisissez le type de carte correct : Arduino Mega, et sélectionnez le port COM approprié depuis le menu Outils. Ceci assure que l'IDE communique avec votre carte spécifique.
  • Étape 5 - Accès au gestionnaire de bibliothèques : Cliquez sur l'icône Bibliothèques dans la barre latérale gauche de l'IDE Arduino. Ceci ouvre le gestionnaire de bibliothèques où vous pouvez rechercher et installer des bibliothèques de code supplémentaires.
  • Étape 6 - Recherche de bibliothèque : Dans la boîte de recherche en haut, tapez "TinyGPSPlus" et cherchez la bibliothèque TinyGPSPlus créée par Mikal Hart. Cette excellente bibliothèque simplifie considérablement l'analyse des données GPS.
  • Étape 7 - Installation de la bibliothèque : Cliquez le bouton Installer pour ajouter la bibliothèque TinyGPSPlus à votre IDE Arduino. Cette bibliothèque gère tout l'analyse complexe des phrases NMEA pour vous.
Arduino Mega TinyGPS++ library
  • Étape 8 - Chargement du code : Copiez le code fourni ci-dessus et ouvrez-le dans l'IDE Arduino. Prenez un moment pour examiner le code et comprendre ce que fait chaque section.
  • Étape 9 - Téléversement du programme : Appuyez sur le bouton Téléverser (l'icône flèche droite) dans l'IDE Arduino pour compiler et envoyer le code à l'Arduino Mega. Attendez le message "Téléversement terminé".
  • Étape 10 - Visualisation des résultats : Ouvrez le moniteur série (Outils > Moniteur série ou Ctrl+Shift+M) pour vérifier les résultats. Vous devriez commencer à voir apparaître les données GPS. Notez qu'il peut falloir quelques minutes pour acquérir un signal GPS, surtout si vous êtes à l'intérieur.
COM6
Send
Arduino - GPS module - latitude: 40.741895 - longitude: -73.989308 - altitude: 12.50 - speed: 0.85 km/h - GPS date&time: 2026-1-19 14:32:45 - latitude: 40.741897 - longitude: -73.989310 - altitude: 12.60 - speed: 1.20 km/h - GPS date&time: 2026-1-19 14:32:46 - latitude: 40.741899 - longitude: -73.989315 - altitude: 12.70 - speed: 2.15 km/h - GPS date&time: 2026-1-19 14:32:47
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Conseil de pro : Pour de meilleurs résultats, placez votre module GPS près d'une fenêtre ou à l'extérieur avec une vue dégagée du ciel. Les signaux GPS sont relativement faibles et peuvent être bloqués par des bâtiments, arbres, ou même des nuages épais.

Calcul de la distance depuis la position actuelle vers une position prédéfinie

Maintenant explorons quelque chose de vraiment excitant - calculer la distance entre deux points sur Terre ! Cet exemple démontre comment calculer la distance entre votre position GPS actuelle et n'importe quelle localisation prédéfinie que vous choisissez.

Dans cette implémentation spécifique, nous calculerons à quelle distance vous êtes de Londres, Royaume-Uni (latitude 51.508131, longitude -0.128002). Le code utilise la formule de Haversine, qui tient compte de la forme sphérique de la Terre pour fournir des calculs de distance précis. Cette technique est inestimable pour les systèmes de navigation, applications de géorepérage, alertes de proximité, et services basés sur la localisation.

Vous pouvez facilement modifier les coordonnées cibles pour calculer les distances vers n'importe quelle localisation qui vous intéresse - peut-être votre domicile, bureau, lieu de vacances favori, ou destination de livraison !

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega 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-mega/arduino-mega-gps */ #include <TinyGPS++.h> 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); // Default baud of NEO-6M GPS module is 9600 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

Prêt à voir le calcul de distance en action ? Suivez ces étapes simples :

  • Copier et ouvrir : Copiez le code complet fourni ci-dessus et ouvrez-le dans le logiciel IDE Arduino. Le code inclut tous les calculs nécessaires intégrés.
  • Téléverser sur la carte : Appuyez sur le bouton Téléverser (icône flèche droite) dans l'IDE Arduino pour compiler et transférer le code à votre Arduino Mega. Le processus ne prend que quelques secondes.
  • Surveiller la sortie : Ouvrez le moniteur série pour voir les résultats affichés en temps réel. Vous verrez non seulement la distance vers Londres mais aussi vos coordonnées actuelles et autres informations GPS.
COM6
Send
Arduino - GPS module - latitude: 40.741895 - longitude: -73.989308 - distance to London: 5570 - latitude: 40.741897 - longitude: -73.989310 - distance to London: 5570 - latitude: 40.741899 - longitude: -73.989315 - distance to London: 5570
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Idées d'application : Cette fonctionnalité de calcul de distance ouvre de nombreuses possibilités de projets. Vous pourriez créer un jeu de "chasse au trésor", construire une fonction "retour à la maison" pour un véhicule autonome, configurer des alertes de géorepérage quand vous êtes à une certaine distance d'un lieu, ou même suivre la distance que vous avez parcourue lors d'un voyage. Les possibilités ne sont limitées que par votre imagination !

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 !