[Tuto] Trianguler la position avec le SIM800L (Arduino)

Posté sur: févr. 6, 2019

Catégories: Arduino

Tags: gps , gsm , position , sim800l , tracking , triangulation

Pour voir le montage et la prise en main de ce module SIM800L, vous pouvez suivre le tuto sur cette page: Tuto SIM800L - Montage et prise en main 

[ps_product_list id_product=1147,250,508 nb=3] 

Le programme suivant affiche dans le moniteur série la position du module SIM800L (latitude, longitude), ainsi que l'heure GMT, grâce à des commandes AT :


#define AT_DELAY 3000 // Delai après envoi commande AT

SoftwareSerial sim800l(9, 10);// RX, TX
String Message, tampon;
String Latitude, Longitude, Time; //stockage des differentes commandes
// Configure le mode positionnement
String AT_COMMAND[9] = {"AT+CGATT =1", "AT+SAPBR =3,1,"CONTYPE","GPRS"", "AT+SAPBR =3,1,"APN","orange.m2m.spec"", "AT+SAPBR =3,1,"USER","orange"", "AT+SAPBR =3,1,"PWD","orange"",n "AT+SAPBR=1,1", "AT+SAPBR=2,1", "AT+CIPGSMLOC=1,1"n };

void setup() {
// début du setup
sim800l.begin(9600); // Démarrage du modem
Serial.begin(9600);// Initialisation de la communication série
Serial.println("start ...");
}

void loop() {
// Début du loop
delay(2000);
for (int k = 0; k < 9; k++) {
sim800l.println(AT_COMMAND[k]); //envoie de la commande AT
delay(650);//délai de réponse;
Message = sim800l.readString(); //lecture du retour du sim800l
Serial.println(Message); // affichage dans le moniteur série des commandes AT + réponse
if (k == 8) {
Serial.println("##############################################################");
Serial.print("Time: ");
//récupération des chaines de caractère correspondant à l'heure
Time = Message.substring(Message.indexOf('/') + 7, Message.indexOf('/') + 15);
//affichage dans le moniteur série
Serial.println(Time);
Serial.println("##############################################################");
Serial.print("Latitude: ");
Latitude = Message.substring(Message.indexOf("0,") + 11, Message.indexOf(',') + 19);
Serial.println(Latitude);
Longitude = Message.substring(Message.indexOf(':') + 4, Message.indexOf(',') + 9);
Serial.print("Longitude: ");
Serial.println(Longitude);
Serial.println("##############################################################");
}
}
sim800l.println( "AT+SAPBR =0,1");
exit(0);
}

Récapitulatif des AT commandes utilisées pour la localisation:

Commandes Réponses Info
AT+CGATT OK
Connexion au service GPRS
AT+SAPBR =3,1,"CONTYPE","GPRS" OK Configuration du support en GPRS
AT+SAPBR =3,1,"APN","orange.m2m.spec" OK Configuration de l'APN
AT+SAPBR =3,1,"USER","orange" OK User de l'APN
AT+SAPBR =3,1,"PWD","orange" OK Mot de passe de l'APN
AT+SAPBR=1,1 OK Ouverture du support
AT+SAPBR=2,1 +SAPBR: 1,1,"IP"
OK
Vérification de la connexion
AT+CIPGSMLOC=1,1 +CIPGSMLOC: 0,Longitude,Latitude,AAAA/MM/JJ,H:MIN:SEC Récupération de la localisation et de l'heure
AT+SAPBR =0,1 OK Fermeture du support

Commentaires

  • Benoit
    juin 14, 2019

laissez un commentaire

Se connecter