[Tuto] Module GSM SIM800L - Envoyer un SMS

Posté sur: oct. 14, 2015

Catégories: Arduino

Tags: arduino , gsm , message , sim800l , sms , tuto , tutorial , tutoriel

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 utilise les AT commandes pour envoyer un SMS.

  // Importation des librairies  
#include <string.h>
#include <softwareserial.h>

SoftwareSerial sim800l(7,8); // RX,TX
boolean sms;

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

if(sim800l.available())
Serial.write(sim800l.read());
}

void loop(){ // Début du loop
if(sms==true){
sendsms();
sms = false;
}
}

void sendsms(){
Serial.println("Sending text message...");
sim800l.print("AT+CMGF=1r"); // Lance le mode SMS
delay(100);
// Entrez votre numéro de téléphone
sim800l.print("AT+CMGS="+3367617****"r");
delay(100);
// Entrez votre message ici
sim800l.print("Message ici r");
// CTR+Z en langage ASCII, indique la fin du message
sim800l.print(char(26));
delay(100);
sim800l.println();
Serial.println("Text send"); // Le message est envoyé.
}

Ou pour modifier les informations (numéro de téléphone, message) dans le moniteur série :

  // Importation des librairies  
#include <softwareserial.h>
#include <string.h>
SoftwareSerial sim800l(7,8);
boolean sms;

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

void loop(){
if(sms==true){   // on ne passe qu'une seule fois dans le loop()
sendsms();
sms = false;
}
}

void sendsms(){
// set SMS mode
Serial.println("SMS sender");
sim800l.print("AT+CMGF=1r");    // initialise le mode SMS
delay(100);
// phone number
Serial.println("Enter the phone number :");
char number[20] ;
readSerial(number);
sim800l.print("AT+CMGS=");
sim800l.print(number);
sim800l.print(""r");
// message
delay(100);
Serial.print("Enter your message to send to : ");
Serial.println(number);
char message[200];
readSerial(message);
sim800l.println(message);
sim800l.print(char(26));
delay(100);
sim800l.println();
Serial.print("Message : ");
Serial.println(message);
Serial.println("Text send");
}

int readSerial(char result[]){
int i = 0;
while (1)
{
while (Serial.available() > 0){
char inChar = Serial.read();
if (inChar == 'n')
{
result[i] = '';
Serial.flush();
return 0;
}
if (inChar != 'r'){
result[i] = inChar;
i++;
}}}}

Récapitulatif des commandes AT pour l'envoi d'un SMS

Commande Réponse Info

AT+CMGF=1 OK Configure le mode SMS
AT+CMGS="<numéro de telephone>"  ENTER


> Votre message  CTR+Z

OK Envoi un SMS au numéro indiqué

Commentaires

  • Guicle
    nov. 23, 2018
  • Le jip&eacute;
    oct. 23, 2018
  • Le Jip&eacute;
    oct. 23, 2018
  • Ismail
    août 13, 2018
  • David G
    févr. 9, 2018
  • Mahamadou Djamilou
    mai 3, 2017
  • CCH
    avril 9, 2017
  • Miss
    avril 8, 2017
  • Lucas
    mars 10, 2017
  • fal\'
    janv. 18, 2017
  • ericstar
    mai 14, 2016
  • amine
    mai 11, 2016
  • Vincent
    mai 8, 2016
  • Vincent
    mai 8, 2016
  • Model GSM SIM800L - DIYMaroc Blog
    avril 13, 2016

laissez un commentaire

Se connecter