[Tuto] Mise en marche de l'Ultimate GPS FeatherWing via le HUZZAH ESP8266 Wifi

Posté sur: mars 11, 2019

Catégories: Arduino

Tags: adafruit , esp8266 , featherwing , gps , huzzah , ultimate , wifi

Dans cet article nous allons répondre à la question suivante : Comment lire les coordonnées lues par le GPS à travers le microcontrôleur HUZZAH ESP8266 Wifi?

1.Montage

Le but de ce montage est de tester le featherwing GPS via le Feather HUZZAH ESP8266 Wifi. Les cartes ne sont pas directement compatibles en mode shield, il est donc nécessaire de simuler un nouveau couple de ports RX/TX.

Pour réaliser ce processus il faut effectuer les connexions suivantes :

  • le pin 3V du GPS au pin 3V de l'ESP
  • le pin GND du GPS au pin GND de l'ESP
  • Pin 12 de l'ESP au pin TX du GPS
  • Pin 14 de l'ESP au pin RX du GPS
  • Brancher l'ESP à un pc avec un câble USB

2. Programme

Le programme permet de lire les données envoyées par le GPS, sur le moniteur série (serial monitor) de l'IDE Arduino. Avant de mettre le programme sous Arduino IDE, vous devez ajouter des types de cartes supplémentaires.

  1. Pour cela, aller dans Fichier/Préférence puis coller le lien suivant : http://arduino.esp8266.com/stable/package_esp8266com_index.json
  2. Coller le dans le champ texte "URL de gestionnaire des cartes supplémentaires".
  3. Valider l'entrée en appuyant sur "OK".
  4. Ensuite,aller dans Outils/Type de carte et choisir Generic ESP8266 module.
  5. Choisir nodemcu dans Outils/Reset Method
  6. Copier/Coller le programme suivant :

Voici le programme en question :

// Code exemple fournit dans la bibliothèque esp 32 espressif  #include // https://github.com/adafruit/Adafruit_GPS.git  #include // déjà intégré à Arduino  #define BAUD_RATE 115200 // vitesse de communication de l'USB    #define BAUD_RATE_GPS 9600 // vitesse de communication entre le GPS et ESP8266 généralement 9600 baud      SoftwareSerial swSer(12, 14, false, 256); // Crée une sortie (RX, TX) dans la variable swSer    void setup()  // Programme d'initialisation    {     Serial.begin(BAUD_RATE); // Initiation de la sortie UART de HUZZAH     swSer.begin(BAUD_RATE_GPS); // Initiation de la sortie UART du gps     pinMode(0, OUTPUT); // Initialise le PIN 0 en sortie     Serial.print("nEntering Setup"); // Affiche sur le moniteur "Entering Setup"     Serial.println("nSoftware serial test started"); // Affiche sur le moniteur "Software serial test started"       for (char ch = ' '; ch <= 'z'; ch++) { //test pour afficher tous les caractères à la suite       swSer.write(ch);       Serial.write(ch);       swSer.println("");       }     Serial.println("nSoftware serial test done");// Affiche sur le moniteur "Software serial test done"    }      void clignot() {  // sous-programme qui fait clignoter la led rouge     for (int i =0; i<= 10; i++) {       digitalWrite(0, HIGH);  // Allume la LED       delay(500);  // Attend 500ms       digitalWrite(0, LOW);  // Eteint la LED       delay(500);       }    }      void loop() {    //  clignot(); //test si HUZZAH répond  //affiche ce que le GPS envoie   if (swSer.available()) {    // regarde si la sortie est "libre"  char c = swSer.read(); // mets ce que envoie le GPS dans la variable caractère c   Serial.write(c); // Affiche ce que contient la variable c   }      }        

Le programme ci dessus affiche dans le moniteur série les informations suivantes :

$GPGGA,001336.799,,,,,0,00,,,M,,M,,*78

$GPGSA,A,1,,,,,,,,,,,,,,,*1E

$GPRMC,001336.799,V,,,,,0.00,0.00,060180,,,N*42

$GPVTG,0.00,T,,M,0.00,N,0.00,K,N*32

GPRMC et GPGGA sont les lignes qui contiennent les coordonnées qui nous intéressent. Le GPRMC est une trame d'information (souvent utilisée dans la navigation maritime). Le GPGGA est une trame d'information couramment utilisée pour connaître la position courante du récepteur GPS.

Exemple : $GPGGA,064036.289,4836.5375,N,00740.9373,E,1,04,3.2,200.2,M,,,,0000*0E

  • 064036.289: Heure exprimée en hhmmss.ms (06H40min36s et 289ms).
  • 4836.5375,N,00740.9373,E : Coordonnées liées à la position.
  1. Latitude 48 degré et  36,5375 minutes Nord (N = Nord / S =Sud).
  2. Longitude -74 degré  et 40,9373 minutes Ouest (W = Ouest / E = Est).
  • 1: Type de positionnement ( 1 = positionnement GPS).
  • 04: Nombre de satellites utilisés pour calculer les coordonnées.
  • 3.2: Précision Horizontale.
  • 200.2,M: Altitude en mètres.
  • ,,,,0000 : D'autres données peuvent être inscrites.
  • *0E : Contrôle de parité de la trame au format hexadécimal.

Pour une meilleure réception des données  du GPS, il est conseillé de l'utiliser en extérieur.

Source:

https://fr.wikipedia.org/wiki/NMEA_0183

https://www.uni-weimar.de/projekte/costumes-and-environment/2017/05/19/tutorial-connecting

https://www.uni-weimar.de/projekte/costumes-and-environment/2017/05/19/tutorial-connecting-adafruit-feather-huzzah-esp8266-wireless-in-real-time-to-processing-3-3computer/n

laissez un commentaire

Se connecter