[Tuto] Module GSM SIM800L - Recevoir un SMS et le lire

Posted On: oct. 14, 2015

Categories: Arduino

Tags: arduino , gsm , sim800l , sms

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

Le programme suivant reçoit et affiche dans le moniteur série les SMS contenus sur la carte SIM, à l’aide des commandes AT :

 // Importation des librairies
#include 
#include 
SoftwareSerial sim800l(7,8);    // RX, TX
boolean sms;

void setup(){      // début du setup
  // Démarrage du modem
  sim800l.begin(9600);
  // Initialisation de la communication série
  Serial.begin(9600);
  delay(500);    // Délai pour la connexion
  sms = true;
}

void loop(){    // Début du loop
  if(sms==true){
    receivesms();
    sms = false;
  }
  // affichage dans le moniteur série des commandes AT + réponse
  if (sim800l.available()>0)
    Serial.write(sim800l.read());
  }

void receivesms(){
  Serial.println("Receiving text message...");
  sim800l.print("AT+CMGF=1r");   // Configure le mode SMS
  // Affiche tous les messages
  sim800l.print("AT+CMGL="ALL"r");
  delay(1000);
  sim800l.println();

receivesms1

En fonction de vos besoin vous pouvez remplacer AT+CMGL="ALL" par :

  • AT+CMGL= "REC READ" : Affiche tous les messages lus
  • AT+CMGL= "REC UNREAD" : Affiche tous les messages non lus.

Si vous désirez supprimer les SMS contenus sur la carte SIM, il faut exécuter la commander AT+CMGD :

  • AT+CMGD =1 : supprime les SMS déjà lus
  • AT+CMGD=2 : supprime les SMS lus, et envoyés
  • AT+CMGD=3 : supprime les SMS lus, envoyés et non envoyés
  • AT+CMGD=4 : supprimes tous les SMS (lus, non lus, envoyés et non envoyés)

Attention ! Pour pouvoir afficher correctement l’ensemble du contenu de vos messages, vous devez modifier votre librairie Arduino SoftwareSerial.

Trouvez le fichier SoftwareSerial.h et modifiez la ligne de commande :

  #define _SS_MAX_RX_BUFF 64 // RX buffer size

En :

  #define _SS_MAX_RX_BUFF 256 // RX buffer size

Récapitulatif des commandes AT nécessaires pour lire et supprimer des SMS:

Commande Réponse Info

AT+CMGL= ”REC UNREAD” +CMGL : , ”REC UNREAD”,”<n° de tél>,””,



OK

Affiche tous les SMS non lus
AT+CMGL= ”REC READ” +CMGL : , ”REC READ”,”<n° de tél>,””,



OK

Affiche tous les SMS lus
AT+CMGL= ”STO UNSENT READ” OK Enregistre les SMS non envoyés
AT+CMGL= ”STO SENT READ” OK Enregistre les SMS envoyés
AT+CMGL=”ALL” +CMGL : , ”ALL”,”<n° de tél>,””,



OK

Affiche tous les messages
AT+CMGD=1 OK Supprime les SMS déjà lus
AT+CMGD=2 OK Supprime les SMS lus et non envoyés
AT+CMGD=3 OK Supprime les SMS lus, envoyés et non envoyés
AT+CMGD=4 OK Supprime tous les SMS (lus, non lus, envoyés et non envoyés)

Comments

  • didiersee
    juil. 4, 2018
    effectivement j'ai chang&eacute; la vitesse merci &ccedil;a marche
  • Admin
    juil. 4, 2018
    Peut &ecirc;tre changer la vitesse de la communication
  • didier
    juin 10, 2018
    Bonjour j'ai fait un copier coller de votre code et sur la console serie j'ai la r&eacute;ponse:n&quot;Receiving text message...&quot; mais lorsque j'envoie depuis mon smartphone une lettre ou un chiffre ou n'importe quoi la r&eacute;ponse dans la console serie est &quot;????????????????????????????????????????????????????????????????????????????????????????????????&quot;nAvez vous une suggestion pour r&eacute;soudre ce probl&egrave;me?nMerci pour votre aide.
  • David G
    févr. 9, 2018
    Bonjour, j'y suis parvenu du premier coup !nnIl manque juste un } &agrave; la fin de l'exemple.nnPour ceux qui n(ont pas trouv&eacute; la librairie SoftwareSerial elle se trouve ici :nC:\Program Files (x86)\Arduino\hardware\arduino\avr\librariesnEt il faut l'&eacute;diter avec Notepad++ par exemple.nnMerci pour le tuto !
  • michel
    déc. 25, 2017
    Je n'ai pas r&eacute;ussi &agrave; trouver la ligne n#define _SS_MAX_RX_BUFF 64 // RX buffer size dans le fichier SoftwareSerial.h !!nnDe plus, le module n'affiche pas les messages re&ccedil;us, sauf a obtenir un timiden&quot;Receiving text message...&quot;net rien d'autres. nnQui est parvenu ? nnmon &eacute;diteur Arduino est la verions 1.85nnmerci
  • michel
    déc. 25, 2017
    Pourriez vous poster le code pour r&eacute;cup&eacute;rer et lire les sms SVP depuis la console ? nn&ccedil;a peut m aider a trouver la suite du probl&egrave;me, a moins que vous avez trouver la solution compl&egrave;te et dont ce cas merci de la partager nnbien cordialement
  • nadjib
    août 14, 2017
    bonjour votre programme permit-il d'affich&eacute; un sms en temps r&eacute;elnc.a.d : quand le programme est en marche et j&rsquo;envoie un sms depuis un autre terminal es-que cela va l'affich&eacute; ?
  • mva
    juil. 24, 2017
    Bonjour ma question ici est simple j'ai r&eacute;ussit &agrave; faire le code pour r&eacute;cuperer et lire les SMS sur la console mais comment je fait pour ensuite faire un GREP du SMS.nnExemple si j'envoi &quot;on&quot; &agrave; la r&eacute;ception j'aimerai lire ce &quot;on&quot; pour allumer une LED.nPour les codeur j'aimerais que nAT+CMGR=1 == onnfaire actionnnMais je ne sais pas ou et comment le faire. pouvez-vous m'aidez.
  • lucas
    juil. 17, 2016
    BonjournSavez vous qu'elle commande permet de lire le dernier message de la carte arduino et selon le contenu du message faire une action ?
  • Model GSM SIM800L - DIYMaroc Blog
    avril 13, 2016
    [&amp;#8230;] Module GSM SIM800L &ndash; Recevoir un SMS et le lire [&amp;#8230;]

Leave a comment

Sign in