Vous êtes sur la page 1sur 22

09/05/2023 12:11 https://www.eagle-robotics.

com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino

Connexion

MENU

 Panier (vide) 

Rechercher 

CATÉGORIES 

NOS PRODUITS 


Emails avec Arduino et les modules SIM800 et SIM900
Après avoir envoyé des SMS, MMS et APPELS avec Les modules SIM800 et SIM900 et Arduino, nous allons maintenant...

oct. 31, 2022 Read more

MEGAZORD ACTIVATED: Appels, SMS, MMS et Autostart avec le shield SIM800C, le shield Carte SD et Arduino UNO
Si vous avez déjà regardé LES POWER RANGERS, alors vous savez que dans tous les épisodes (pratiquement!), chaque...

juil. 27, 2021 Read more

CASSIOPEE: Mon assistante vocale Arduino avec le YX5300


Les assistants vocaux tels que OK GOOGLE pour le communs des mortels, SIRI pour les gens de l'iphonHaute (vous savez...

juin 24, 2021 Read more

Gant mécanique Open-source Arduino UNO PILT


Je vous présente le gant open-source Arduino que j'ai personnellement baptisé P.I.L.T(Play It Like Thanos / Joues la...
En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
9.7
permettent de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
/10
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis

J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 1/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino

févr. 27, 2021 Read more

Module MPU-6050 et Arduino : Une question d'equilibre


Si vous avez déjà fait du surf (pas moi) ou du skate board (moi oui et je me suis viandé pas mal de fois !), alors...

févr. 17, 2021 Read more

View All

 FACEBOOK TIMELINE 

APPELS, SMS et MMS avec le module SIM900 et ARDUINO

Posted On: juin 24, 2020 Seen by: 35349 Categories: GSM/GPRS Author: Christian Joseph

Tags: Sim900 , Arduino Mega , GSM , GPRS , MMS , Appels , Arduino , Carte SD , Micro SD , SMS

INTRODUCTION:

Le SIM900 est un module GSM/GPRS, lequel combiné à une carte Arduino ou Raspberry Pi permet d'émettre ou de recevoir des appels téléphoniques, des SMS, et
des MMS avec des images stockées dans une carte SD ou micro-SD.

Le SIM900 est utilisé dans des applications de contrôle à distance, de domotique, et aussi de sécurité.

Dans ce tutoriel, nous allons:

Envoyer et recevoir de SMS


Envoyer des MMS
Emettre un appel
Envoyer un MMS à partir d'une photo prise par une caméra PTC06
Créer notre propre système d'alarme avec un détecteur de présence HC-SR501. Vous pouvez aussi utiliser un capteur de température, de niveau d'eau, de lumière
ou de CO2 à la place par exemple.

Présentation du module:
En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
9.7
permettent de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
/10
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis

J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 2/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino

En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
9.7 1: Liste des composants
permettent de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
Etape /10
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis

Arduino Mega 2560


Module GSM/GPRS SIM900 J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 3/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino
Lecteur de carte SD ou micro SD
Câbles Arduino 10cm ou 20cm
1 carte SD ou micro SD (16Go max)
1 carte SIM 4g (nous utilisons une SIM La poste mobile pour le tutoriel)

Etape 2: Shémas de câblage

ARDUINO
SIM900
MEGA

TX2 RX

RX2 TX

GND GND

ARDUINO MODULE
MEGA SD

GND GND

5V VCC

50 MISO

51 MOSI

52 SCK

53 CS

Il faut impérativement installer la carte SD ou micro SD et la carte SIM avant la mise sous tension. Il est préférable que le code Pin de la carte SIM soit désactivé, mais il
est possible de dévérouiller le code Pin avec le programme Arduino. A la mise sous tension, il faut appuyer au minimum 2 secondes le "Switch ON/OFF" du module
En poursuivant
SIM900. Si le code votre navigation
Pin est surla"ceLed
désactivé, site,état
vous devezclignote
réseau" accepter l’utilisation
toutes et l'écriture
les 3 secondes aude Cookies
bout sur votredès
d'un moment, appareil
que leconnecté. Ces Cookies
module SIM900 (petits
a terminé sonfichiers texte)
initialisation;
9.7
permettent
autrement
/10 de suivre
dès que
réseau126mobile.
le codevotre
Pin navigation,
est desactivé actualiser votre panier,
via le programme vous reconnaitre
Arduino, lorstoutes
la led clignote de votre
les prochaine
3 secondes,visite et sécuriser
ce qui votre
signifie que
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
connexion.
le module Pourest
SIM900 en bien
savoir plus et au
connecté
avis

J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 4/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino

Attention: pour l'envoi de MMS, le firmware du module doit être mis à jour afin d'être
compatible avec la France. C'est pourquoi tous nos modules SIM900  sont mis à jour et
sont compatibles MMS avec les réseaux France et Europe.
Etape 3: Programmes Arduino
Les programmes suivants permettent de tester les fonctions du module SIM900, comme l'envoi et la réception des SMS, l'envoi des MMS (ici avec carte SIM Laposte
mobile!), et une carte SD ou micro-SD contenant l'image à envoyer, et l'émission ou la réception des appels téléphoniques ( nécessite un micro et des écouteurs
branchés sur les connecteurs associés du SIM900).

Une fois le programme téléchargé dans le carte Arduino, il faut ouvrir le Terminal Arduino afin de lui envoyer les commandes servant à activer les différentes fonctions
du module SIM900: 1,2,3,4,5,6,7,8,9,d,p,s

Etant donné que l'éditeur Blog ne prend pas encore en compte le symbole antislash( Eh oui il l'assimile à du code HTML), il faudra donc remplacer dans le
code (antislash) par son symbole, avant de télécharger votre script dans la carte Arduino.

Si vous utilisez un autre opérateur, voici les données à remplacer pour l'envoi de MMS dans le code:

SFR: CMMSCURL = http://mms1 ; CMMSPROTO = 10.151.0.1; APN = sl2sfr

ORANGE: CMMSCURL = http://mms.orange.fr ; CMMSPROTO = 192.168.10.200; APN = orange.acte

BOUYGUES: CMMSCURL = mmsbouygtel ; CMMSPROTO = 62.201.129.226; APN =mmsbouygtel.com

1- ENVOI DE SMS, APPELS, ET MMS

/*
Projet: APPELS SMS MMS avec SIM900 et Carte SD
Auteur: Christian Joseph
Board: Arduino Mega 2560
Date: 20 May 2020
Website: https://www.eagle-robotics.com
*/

#include "SD.h"

#define PWR 31
#define CS 53

File dataFile;
int i;
unsigned char data=0;
String message = "Bonjour tout le monde";

void setup()
{
pinMode(PWR,OUTPUT);
pinMode(CS,OUTPUT);
Serial.begin(9600);
Serial2.begin(115200);// modifiez la vitesse si nécéssaire

//car il se peut que votre module Sim900 fonctionne à 9600 bauds par exemple
digitalWrite(PWR,LOW);
delay(10);
digitalWrite(PWR,HIGH);
delay(10);

if (!SD.begin(CS)) Serial.println("initialisation non reussie!");


else Serial.println("initialisation ok.");
}

void loop()
{ //Entrer des valeurs depuis le moniteur série pour activer les fonctions du SIM900:
//1,2,3,4,5,6,7,8,9,d,p,s
if(Serial2.available())
{
En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
while(Serial2.available())
9.7
{ permettent
/10 de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis
data=Serial2.read();
Serial.write(data);
}
J'accepte
data=0;

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 5/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino
}

if(Serial.available())
{
data=Serial.read();
}
if(data=='p')
{
Serial2.print("AT+CPIN=1234(antislash)r"); //Faire le code Pin carte SIM si activé
// Si code Pin désactivé, ignorer// Mettre le code pin à la place de 1234 si différent
}
if(data=='1')
{
Serial2.print("AT+CGMI(antislash)r"); // Identification du fabricant
}
if(data=='2')
{
Serial2.print("AT+CGMM(antislash)r"); //Identification du modèle
}

if(data=='3')
{
Serial2.print("AT+CGMR(antislash)r"); //Version du Firmware
}

if(data=='4')
{
Serial2.print("AT+CGSN(antislash)r"); //Numéro IMEI
}

if(data=='5')
{
Serial2.print("ATD+33644757223;(antislash)r"); //Appels (ATD+numero à appeler)
}

if(data=='6')
{
Serial2.print("ATH(antislash)r"); //Racrocher un appel
}

if(data=='7') //Envoyer un SMS


{
Serial2.println("AT");
delay(500);
Serial2.print("AT+CMGF=1(antislash)r"); //Activation mode Texte
delay(500);
Serial2.println("AT+CMGS=(antislash)"+33644757223(antislash)""); //Numéro du destinataire
delay(500);
Serial2.print(message);//Message à envoyer
//Serial2.print("bonjour ceci est mon message"); //2eme methode pour envoyer un message
delay(500);
Serial2.write((char)26); //Envoi du message
}

if(data=='8')
{
Serial2.print("AT+CMGR=1(antislash)r"); //Lire message
}

if(data=='9')
{
Serial2.print("AT+CMGD=1,0(antislash)r"); //Effacer un message
}
if(data=='d')
{
Serial2.print("ATDT(antislash)r"); //Décrocher un appel
}

if(data=='s') sendMMS(); //Envoyer un MMS


data=0;
}

void sendMMS() //Envoi de MMS avec paramètre APN La poste mobile


//Regarder sur le site des opérateurs pour les paramètres APN, MMSCURL, CMMSPROTO
{
Serial2.println("AT+CMMSINIT");
delay(1000);//100
if(Serial2.available())
{
while(Serial2.available()) Serial.write(Serial2.read());
}
Serial2.print("AT+CMMSCURL=(antislash)"mmsdebitel(antislash)"(antislash)r");
delay(1000);
if(Serial2.available())
{En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)

}
9.7
permettent de suivre votre navigation,
while(Serial2.available())
/10 actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
Serial.write(Serial2.read());
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis
Serial2.print("AT+CMMSCID=1(antislash)r");
delay(1000);
if(Serial2.available()) J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 6/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino
{
while(Serial2.available()) Serial.write(Serial2.read());
}
Serial2.print("AT+CMMSPROTO=(antislash)"10.143.156.003(antislash)",8080(antislash)r");
delay(1000);
if(Serial2.available())
{
while(Serial2.available()) Serial.write(Serial2.read());
}
Serial2.print("AT+CMMSSENDCFG=6,3,0,0,2,4,1,0(antislash)r");
delay(1000);
if(Serial2.available())
{
while(Serial2.available()) Serial.write(Serial2.read());
}
Serial2.print("AT+SAPBR=3,1,(antislash)"CONTYPE(antislash)",(antislash)"GPRS(antislash)"(antislash)r");
delay(1000);
if(Serial2.available())
{
while(Serial2.available()) Serial.write(Serial2.read());
}
Serial2.print("AT+SAPBR=3,1,(antislash)"APN(antislash)",(antislash)"mmsdebitel(antislash)"(antislash)r");
delay(1000);
if(Serial2.available())
{
while(Serial2.available()) Serial.write(Serial2.read());
}
Serial2.print("AT+SAPBR=1,1(antislash)r");
delay(4000);
if(Serial2.available())
{
while(Serial2.available()) Serial.write(Serial2.read());
}
Serial2.print("AT+SAPBR=2,1(antislash)r");
delay(1000);
if(Serial2.available())
{
while(Serial2.available()) Serial.write(Serial2.read());
}

Serial2.print("AT+CMMSEDIT=0(antislash)r"); // Efface le Buffer


delay(1000);
if(Serial2.available())
{
while(Serial2.available()) Serial.write(Serial2.read());
}
Serial2.print("AT+CMMSEDIT=1(antislash)r"); // Mode Edition activé
delay(1000);
if(Serial2.available())
{
while(Serial2.available()) Serial.write(Serial2.read());
}
Serial2.print("AT+CMMSDOWN=(antislash)"PIC(antislash)",6651,20000,(antislash)"pic777.jpg(antislash)"(antislash)r"); //Chargement de l'image "pic777.jpg" d
e taille 6651 octets stockée dans la carte SD
//20000 représente le temps qu'on laisse au système pour télécharger l'image

delay(1000);
if(Serial2.available())
{
while(Serial2.available()) Serial.write(Serial2.read());
}

dataFile=SD.open("pic777.jpg"); //Téléchargement de l'image depuis la carte SD ou micro SD vers mémoire du SIM900


i=0;
if(dataFile)
{
while(dataFile.available())
{
data=dataFile.read();
if(data<0x10) Serial.print("0");
Serial.print(data,HEX);
i++;
if((i%40)==0) Serial.println();
Serial2.write(data);
}
dataFile.close();
}
else
{
Serial.println("erreur ouverture pic777.jpg");
}

En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
9.7/10
delay(1000);
permettent Serial2.print("AT+CMMSRECP=(antislash)"+33644757223(antislash)"(antislash)r"); //Numérovisite
de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine du destinataire du MMS
et sécuriser votre connexion. Pour en savoir plus et
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis

J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 7/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino

delay(1000);
if(Serial2.available())
{
while(Serial2.available()) Serial.write(Serial2.read());
}
Serial2.print("AT+CMMSVIEW(antislash)r");
delay(1000);
if(Serial2.available())
{
while(Serial2.available()) Serial.write(Serial2.read());
}
Serial2.print("AT+CMMSSEND(antislash)r"); //Envoi du MMS
delay(1000);
if(Serial2.available())
{
while(Serial2.available()) Serial.write(Serial2.read());
}
Serial2.print("AT+CMMSTERM(antislash)r"); // Fin du MMS
delay(1000);
if(Serial2.available())
{
while(Serial2.available()) Serial.write(Serial2.read());
}
}

2 - ENVOI DE SMS A DE MULTIPLES DESTINATAIRES

String message = "Eagle Robotics est super";


String numero[3]= {"0644757223(antislash)"","0606060606(antislash)"", "0770070707(antislash)""}; // Numéros des destinataires. Si vous ajoutez plus de numéros,
pensez à modifier aussi le nombre entre les crochets de numero et aussi la valeur à laquelle "a" doit être inférieure dans la boucle "For" plus bas.

void setup()
{

Serial.begin(9600);
Serial2.begin(115200);

} En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
9.7
permettent de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
/10
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis

void loop()
J'accepte
{

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 8/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino
for ( int a=0; a<3; a++){
Serial2.println("AT");
delay(1000);
Serial2.print("AT+CMGF=1(antislash)r"); //Activation mode Texte
delay(1000);
Serial2.print("AT+CMGS=(antislash)""); //Numéro du destinataire
Serial2.println(numero[a]);
delay(1000);
//Serial2.print(message);//Message à envoyer
Serial2.write("Eagle Robotics est super"); //2eme methode pour envoyer un message
delay(3000);
Serial2.write((char)26); //Envoi du message
Serial.print(a);
delay(5000); //délai de 5 secondes entre les messages
}

while(1){ // Boucle infinie pour fin d'envoi

}
}

3 - RECEPTION ET LECTURE DES SMS

void setup()
{
 
  Serial.begin(9600); //initialisation communication avec le moniteur série arduino
  Serial2.begin(115200); //initialisation communication avec le SIM900
 

  Serial.println("Initialisation...");
  delay(1000);

 //Connection avec le SIM900


  Serial2.println("AT");
  updateSerial();
 
  Serial2.println("AT+CMGF=1"); // Mode Texte
  updateSerial();
  Serial2.println("AT+CNMI=1,2,0,0,0"); // Activation de notification textos entrants
  updateSerial();
}

void loop()
{
 
  while (Serial.available())
 {
    Serial2.write(Serial.read());
 }
  while(Serial2.available())
 {
    Serial.write(Serial2.read());
 }
}

void updateSerial()
{

  delay(500);
  while (Serial.available())
 {
    Serial2.write(Serial.read());
 }
  while(Serial2.available())
 {
    Serial.write(Serial2.read());
 }
}

Et Voilà le résultat:

En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
9.7
permettent de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
/10
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis

J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 9/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino

4 - ENVOI DE MMS AVEC UNE CAMERA

Nous allons maintenant envoyer un MMS  avec notre module SIM900 et une photo prise avec une caméra UART PTC06 . 

En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
9.7
permettent de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
/10
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis

J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 10/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino

ATTENTION: Dans ce programme, la caméra PTC06  doit être reliée à notre carte Arduino Mega sur le port TX2 et RX2, tandis que le SIM900 communique avec
l'Arduino Mega sur le TX3 et RX3. Donc il va falloir déplacer les pins de la carte SIM900 du TX2/RX2  vers le TX3/RX3 de l'arduino Mega. La vitesse de transfert est de
38400 bauds. Pensez à redémarrer votre module SIM900 si vous étiez en train de l'utiliser afin de pouvoir l'utiliser à une vitesse de 38400 bauds. (Ne me demandez pas
pourquoi, mais ça fonctionne ainsi!)

Lorsque vous aurez téléchargé le programme dans la carte Arduino Mega, ouvrez le moniteur Série afin de voir le flux de données entre la carte Arduino Mega, La
caméra PTC06, et le SIM900.

Une fois que vous aurez réussi à faire fonctionner le programme ci-dessous, vous pourrez également ajouter par la suite un détecteur de présence comme le HC-
SR501, de sorte que votre carte Arduino prenne une photo et vous l'envoi par MMS en cas de détection de mouvement. ET ENCORE UNE FOIS, ATTENTION AUX
MECHANTS (antislash) à remplacer par leurs symboles.

#include "SPI.h"
#include "SD.h"

byte ZERO = 0x00;


byte incomingbyte;
long int j=0,k=0,count=0,i=0x0000;
uint8_t MH,ML;
boolean EndFlag=0;
File myFile;
File dataFile;
int a;
unsigned char data=0;
unsigned long taille = 0;
String taillephoto;

void setup()
{
Serial.begin(38400);
while (!Serial)
{
; // attente connecttion du port Série sur Arduino Leonardo uniquement
} En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
9.7
permettent de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
/10
Serial.print("Initialisationde la carte SD...");les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
paramétrer
126 avis

pinMode(53, OUTPUT);
J'accepte
if (!SD.begin(53))

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 11/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino
{
Serial.println("initialisation KO!");
return;
}
Serial.println("initialisation Faite.");
Serial.println("Veuillez patienter ....");

Serial2.begin(115200); //Démarrage de la caméra à 115200 bauds (vitesse par défaut de la caméra)


delay(100);
SendResetCmd();//Reset de la caméra
delay(2000);
SetBaudRateCmd();// réglage vitesse de transfert de la caméra à 38400 bauds
delay(1000);
Serial2.begin(38400); // Démarrage de la caméra à 38400 bauds
delay(2000);
Serial3.begin(38400);// Démarrage du SIM900 à 38400 bauds
}

void loop()
{
photo(); // prise de la photo avec la caméra
sendMMS(); // Envoi de la photo par MMS
while(1);
}

void photo(){
byte a[32];
int ii;

SendResetCmd();
delay(2000);
SendTakePhotoCmd();
delay(1000);
while(Serial2.available()>0)
{
incomingbyte=Serial2.read();
}

myFile = SD.open("image7.jpg", FILE_WRITE); 

while(!EndFlag)
{
j=0;
k=0;
count=0;
SendReadDataCmd();
delay(20);
while(Serial2.available()>0)
{
incomingbyte=Serial2.read();
k++;
delay(1);
if((k>5)&&(j<32)&&(!EndFlag))
{
a[j]=incomingbyte;
if((a[j-1]==0xFF)&&(a[j]==0xD9)) //indique que la photo est prise
{
EndFlag=1;
}
j++;
count++;
}
}

for(j=0;j<count;j++)
{
if(a[j]<0x10) Serial.print("0");
Serial.print(a[j],HEX); // observation de l'image via le port série
Serial.print(" ");
}

for(ii=0; ii<count; ii++)


myFile.write(a[ii]);
Serial.println();
}

myFile.close();
Serial.println("Photo dans la carte SD");
}
void sendMMS()
En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
{
9.7
permettent de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
myFile = /10 SD.open("image7.jpg"); // ouverture de la photo prise
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
taille =126myFile.size();
avis // on récupère le poids de photo
taillephoto = String(taille, DEC); // Conversion du poids du format int au format String
Serial.print("Taille du fichier = "); J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 12/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino
Serial.println(taillephoto); // Affiche le poids en octets de la photo
myFile.close(); // Fermeture de la photo

// Envoi du MMS
Serial3.println("AT");
delay(1000);//100
updateSerial();
Serial3.println("AT+CMMSINIT");
delay(1000);//100
updateSerial();

Serial3.print("AT+CMMSCURL=(antislash)"http://mms1(antislash)"(antislash)r");
delay(1000);
updateSerial();

Serial3.print("AT+CMMSCID=1(antislash)r");
delay(1000);
updateSerial();

Serial3.print("AT+CMMSPROTO=(antislash)"10.151.0.1(antislash)",8080(antislash)r");
delay(1000);
updateSerial();

Serial3.print("AT+CMMSSENDCFG=6,3,0,0,2,4,1,0(antislash)r");
delay(2000);
updateSerial();

Serial3.print("AT+SAPBR=3,1,(antislash)"CONTYPE(antislash)",(antislash)"GPRS(antislash)"(antislash)r");
delay(1000);
updateSerial();

Serial3.print("AT+SAPBR=3,1,(antislash)"APN(antislash)",(antislash)"sl2sfr(antislash)"(antislash)r");
delay(1000);
updateSerial();

Serial3.print("AT+SAPBR=1,1(antislash)r");
delay(2000);
updateSerial();

Serial3.print("AT+SAPBR=2,1(antislash)r");
delay(1000);
updateSerial();

Serial3.print("AT+CMMSEDIT=0(antislash)r");
delay(1000);
updateSerial();

Serial3.print("AT+CMMSEDIT=1(antislash)r");
delay(1000);
updateSerial();

Serial3.print("AT+CMMSDOWN=(antislash)"PIC(antislash)","+ taillephoto + ",50000,(antislash)"image7.jpg(antislash)"(antislash)r");

delay(1000);
updateSerial();

dataFile=SD.open("image7.jpg");
a=0;
if(dataFile)
{
while(dataFile.available())
{
data=dataFile.read();
if(data<0x10) Serial.print("0");
Serial.print(data,HEX);
a++;
if((a%40)==0) Serial.println();
Serial3.write(data);
}
dataFile.close();

}
else
{
Serial.println("erreur de fichier");
}

delay(1000);
Serial3.print("AT+CMMSRECP=(antislash)"+33641363164(antislash)"(antislash)r");
delay(1000);
En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
updateSerial();
9.7
permettent de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
/10
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis
Serial3.print("AT+CMMSVIEW(antislash)r");
delay(1000);
updateSerial(); J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 13/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino

Serial3.print("AT+CMMSSEND(antislash)r");
delay(1000);
updateSerial();

Serial3.print("AT+CMMSEDIT=0(antislash)r");
delay(100);
updateSerial();

Serial3.print("AT+CMMSTERM(antislash)r");
delay(1000);
updateSerial();

}
void SendResetCmd() // reset de la caméra
{
Serial2.write(0x56);
Serial2.write(ZERO);
Serial2.write(0x26);
Serial2.write(ZERO);
}

/*************************************/
/* réglage taille de l'image :
/* <1> 0x22 : 160*120
/* <2> 0x11 : 320*240
/* <3> 0x00 : 640*480
/* <4> 0x1D : 800*600
/* <5> 0x1C : 1024*768
/* <6> 0x1B : 1280*960
/* <7> 0x21 : 1600*1200
/************************************/
void SetImageSizeCmd(byte Size) // résolution de l'image
{
Serial2.write(0x56);
Serial2.write(ZERO);
Serial2.write(0x54);
Serial2.write(0x01);
Serial2.write(Size);
}

/*************************************/
/* Set BaudRate :
/* <1>¡¡0xAE : 9600
/* <2>¡¡0x2A : 38400
/* <3>¡¡0x1C : 57600
/* <4>¡¡0x0D : 115200
/* <5>¡¡0xAE : 128000
/* <6>¡¡0x56 : 256000
/*************************************/
void SetBaudRateCmd()
{
Serial2.write(0x56);
Serial2.write(ZERO);
Serial2.write(0x31);
Serial2.write(0x06);
Serial2.write(0x04);
Serial2.write(0x02);
Serial2.write(ZERO);
Serial2.write(0x08);
Serial2.write(0X2A);
Serial2.write(0xF2);
}

void SendTakePhotoCmd()// Prise de photo


{
Serial2.write(0x56);
Serial2.write(ZERO);
Serial2.write(0x36);
Serial2.write(0x01);
Serial2.write(ZERO);
}

void SendReadDataCmd()
{
MH=i/0x100;
ML=i%0x100;
Serial2.write(0x56);
Serial2.write(ZERO);
Serial2.write(0x32);
Serial2.write(0x0c);
En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
Serial2.write(ZERO);
9.7
permettent de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
Serial2.write(0x0a);
/10
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis
Serial2.write(ZERO);
Serial2.write(ZERO);
Serial2.write(MH); J'accepte
Serial2.write(ML);

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 14/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino
Serial2.write(ZERO);
Serial2.write(ZERO);
Serial2.write(ZERO);
Serial2.write(0x20);
Serial2.write(ZERO);
Serial2.write(0x0a);
i+=0x20;
}

void StopTakePhotoCmd()
{
Serial2.write(0x56);
Serial2.write(ZERO);
Serial2.write(0x36);
Serial2.write(0x01);
Serial2.write(0x03);
}

void updateSerial()
{

delay(500);
while (Serial.available())
{
Serial3.write(Serial.read());
}
while(Serial3.available())
{
Serial.write(Serial3.read());
}
}

5 - SYSTEME D'ALARME AVEC LE SIM900


Nous allons maintenant créer un système basé sur le module HC-SR01, lequel est un détecteur de présence. Il est tout à fait possible de le faire aussi avec un capteur
de niveau d'eau pour prévenir des inondations, un capteur de lumière pour prévenir  d'une défaillance sur une machine en captant le clignotement ou l'allumage d'une
Led ou lampe sur la machine(oui oui nous l'avons déjà fait!) , un capteur de CO2 pour prévenir en cas de présence de Co2, un capteur de température pour prévenir par
SMS en cas de température anormale dans un frigo de restaurant ou de magasin, ou encore n'importe quel type de capteur fonctionnant avec les cartes Arduino. 

Notre système d'alarme s'active et se désactive par SMS et il envoi un message d'alerte par SMS toutes les 40 à 60 secondes en cas de détection d'anomalie, jusqu'à
ce qu'il soit désactivé. 

En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
9.7
permettent de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
/10
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis

J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 15/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino

Le Programme ci-dessous s'execute en plusieurs phases:

1. Le système envoi un message de Bienvenue à l'utilisateur avec des instructions


2. Le système est en attente du mot "Activation pour autoriser la détection de mouvements.
3. L'utilisateur envoi le mot "Activation" pour activer le système et autoriser la détection de mouvements
4. Le système reçoit et inspecte le SMS. Si le bon message et le bon numéro sont identifiés, alors le système active le détecteur de mouvements, sinon le système
rejette le SMS et le détecteur reste désactivé.
5. Une fois le détecteur activé, le système peut alors faire face à 2 choix possibles: Soit l'utilisateur envoi le mot "Stop" par SMS si par exemple il veut retourner dans la
pièce parce qu'il a oublié ses clés, dans ce cas le système désactive le détecteur et retourne à l'étape 2 dans la phase d'attente du mot "Activation". Soit le détecteur
se déclenche et dans ce cas on passe à la phase 6.
6. Le message d'alerte est envoyé à l'utilisateur
7. L'utilisateur dispose de 40 à 60 secondes pour envoyer le mot "Stop" et désactiver le système, autrement le message d'alerte est renvoyé à l'utilisateur au bout de ce
temps là.
8. Dès que le mot "Stop" est reçu, le système analyse également si le SMS provient du bon numéro de téléphone, autrement le SMS est rejeté et le message d'alerte
continu d'être envoyé à l'utilisateur.
9. Si le mot "Stop" est bien reçu du bon numéro, le système désactive le détecteur de mouvements et retourne à l'étape 2.

Si vous souhaiter utiliser d'autres mots, la première phase consiste à afficher votre SMS reçu en entier et ensuite la seconde phase permet de compter le nombre de
caractères afin d'isoler le numéro entrant et le message reçu (prendre en compte les espaces aussi):

En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
9.7
permettent de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
/10
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis

J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 16/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino

Donc nous savons que le numéro de téléphone commence au 10ème caractère et se termine au 20ème caractère, tandis que le mot "Activation" commence au 50ème
caractère et se termine au 59ème caractère.  A partir de là dans notre programme, il nous suffira de dire à notre carte Arduino de concaténer (ou ajouter à la suite) tous
les caractères du 10ème au 20ème caractère dans une variable appelée "numero". Dans cet exemple, on aura donc à la fin numero = "33644757223" et on pourra
comparer cette variable de type String (ou chaine de caractères) avec le numéro que nous voulons.

Ensuite nous allons faire la même chose en mettant dans la variable "msgrecu" tous les caractères du 50ème au 59ème, et ensuite comparer avec le message que
nous attendons de recevoir. Si votre message est plus long ou plus court, il faudra compter à partir du 50ème caractère jusqu'au dernier caractère de votre message.
(pensez aussi à compter les espaces si votre message est composé de plusieurs mots).

Pour le mot "Stop" par exemple qui permet de mettre le système sur pause, nous avons compté à partir du caractère 50 au caractère n°53.

N.B: Pensez à remplacer le mot (antislash) par son symbole.


/*Projet: Alarme avec un SIM800 ou un SIM900
* Auteur: Christian Joseph
* Description: Ce Programme permet d'envoyer un SMS à un destinataire en cas d'activation d'un capteur
* Ex: PIR sensor, Water Sensor, photorésistance,etc...
* Le système s'active et se désactive par SMS
* Date: 08 Juillet 2021
* Website: https://www.eagle-robotics.com
*/
char incoming_char;
String msgrecu="";
String numero ="";
String bienvenue = "Bonjour, envoyez Activation pour mettre en route ou Stop pour mettre en pause";
String alerte = "Alerte, erreur sur la machine";
String alerteStop = "systeme mis en pause";
String activer = "systeme mis en route";
int a = 0;
int t = 0;
int r = 1;
int sensorPin = 2;// Broche de notre capteur de mouvement
void setup()
{ En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
9.7
permettent de suivre
/10
pinMode(sensorPin, votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
INPUT);
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis
Serial.begin(9600);
Serial2.begin(9600);// Liaison SIM900 sur le tx2 et rx2 de la carte Arduino Mega
message(bienvenue);// Envoi du message de Bienvenue du système J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 17/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino
delay(2000);
}

void loop()
{
actif: delay(10);
configuration();// Activation du mode reception de sms
while(1){ // Boucle infinie d'attente d'activation: le système attent de recevoir un sms avec le mot "Activation"
//(Respecter les majuscules et minuscules et pas d'espace derrière)
activation(); // Attente du SMS avec le mot Activation pour autoriser le système à detecter des mouvements
if( r == 1){//la variable r = 1 si le SMS d'activation est valide
attachInterrupt(digitalPinToInterrupt(sensorPin), etat, HIGH);//Activation de l'autorisation d'interrution lorsque la broche de détecteur (sensorPin) passe à l'état HAUT
// les autres états possibles sont LOW (broche à l'état BAS), CHANGE(sur un changement d'état)
//RISING (état BAS vers état HAUT), FALLING(état HAUT vers état BAS)
// Choisissez l'état désiré en fonction de votre capteur
// Ici on choisi HAUT pour notre capteur de présence, mais on aurait pu choisir BAS
//pour un capteur de lumière pour indiquer que le capteur est exposé à la lumière.
message(activer); //Envoi du SMS de confirmation de mise en route du système
goto process;
}
}
process: // Dans cette boucle, on attend: 1)soit le SMS "Stop" pour désactiver le système. Imaginez vous oubliez vos clés de voiture dans la pièce
// et que vous ayez besoin d'y retourner. Dans ce cas vous envoyez "Stop" pour désactiver le système.
//2) soit notre détecteur se déclenche et le système envoi un message d'alerte. Là aussi il faut envoyer "Stop" pour tout désactiver.
configuration();
msgrecu=""; //On réinitialise les variable numero et msgrecu
numero ="";
desactivation1(); // Ceci est la désactivation si je veux entrer dans la pièce lorsque j'ai oublié mes clés par exemple.
if(r==2){ // Dans ce cas la variable r = 2
detachInterrupt(digitalPinToInterrupt(sensorPin));// on arrête toute interruption, sinon le sous-programme d'interruption s'executera sans fin
message(alerteStop); // on envoi le SMS indiquant que le système est mis en Pause
configuration(); //on efface tous les SMS reçus
goto actif;// on retourne au debut du programme en attente du mot "Activation" pour relancer le système
}
while(r == 3){ //la variable r = 3 en cas de détection d'un mouvement (ou de présence de lumière pour un capteur photosensible)
// Tant que r = 3 et SMS "Stop" non reçu, alors le SMS d'alerte est envoyé à l'utilisateur toutes les minutes environs

message(alerte); // Envoi du SMS d'alerte


//delay(2000);
while (Serial2.available() >0 ) {
Serial.print(Serial2.read());
}
configuration();
desactivation();// Attente du sms permettant la désactivation avec le mot "Stop"
//(Respecter les majuscules et minuscules et pas d'espace derrière).
}
message(alerteStop); //Envoi du SMS de mise en pause du système. Le système est désactivé.
while (Serial2.available() >0 ) {
Serial.print(Serial2.read());
}
delay(2000);
goto actif; // retour vers l'attente d'activation du système

}
void etat(){ // Sous-Programme d'interruption en cas de détection
if(digitalRead(sensorPin) == HIGH){ // Broche du capteur à l'état HAUT - Mouvement détecté
Serial.println("Mouvement detecte");
r = 3;
detachInterrupt(digitalPinToInterrupt(sensorPin));// Fin d'autorisation d'interruption
Serial.println("fin interruption");
 }
}

void message(String a){ //Envoi du message à l'utilisateur


Serial2.println("AT");
delay(500);
updateSerial();
Serial2.print("AT+CMGF=1(antislash)r"); //Activation mode Texte
delay(500);
updateSerial();
Serial2.println("AT+CMGS=(antislash)"+33644757223(antislash)""); //Numéro du destinataire
delay(500);
updateSerial();
Serial2.print(a); //Message à envoyer
delay(500);
Serial2.write((char)26); //Envoi du message
delay(1000);
while (Serial2.available() > 0 ) { // On vide le Buffer de l'Arduino
Serial.print(Serial2.read());
}
En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
delay(1000);
} 9.7
permettent de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
/10
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis

J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 18/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino

void updateSerial()
{

delay(500);
while (Serial.available())
{
Serial2.write(Serial.read());
}
while(Serial2.available())
{
Serial.write(Serial2.read());
}
}

void desactivation1(){// Desactivation de l'alarme sans détection de mouvement


while(1){ //on fait une boucle infini
reception2:
if (r == 3){ //Si le capteur se déclenche, r est mis à 3 dans le sous programme d'interruption
goto sortie2; // on sort de la boucle infinie et du sous-programme desactivation1
}
if(Serial2.available() > 0) {
incoming_char=Serial2.read();
if (a > 9 && a < 21){ // récupération du numéro de l'emetteur du SMS
numero += incoming_char; //on récupère le numéro caractère par caractère et on le stocke dans la variable numero
Serial.println(numero);
}
else if (a > 49 && a < 54){ // récupération du message de l'emetteur du SMS
msgrecu += incoming_char; //on récupère le message caractère par caractère et on le stocke dans la variable msgrecu
Serial.println(msgrecu);
}
if (a >= 54){ //Fin de reception et d'exploration du SMS (le sms entier fait 54 caractères)
goto compare2;
}
a++;
}
}
compare2:
if(numero == "33644757223" && msgrecu == "Stop"){ //Test si bon numéro entrant et bon message
//autrement n'importe qui pourrait désactiver le système
// Serial.println("Systeme inactif,reussi merci");
numero = ""; //On réinitialise les variable numero et msgrecu
msgrecu = "";
a = 0;
r = 2;
t = 0;
incoming_char = 0;
configuration();
delay(2000);
goto sortie2;
}
else{
// Serial.println("mauvais numéro ou mauvaise commande");
numero = "";//On réinitialise les variable numero et msgrecu
msgrecu = "";
a = 0;
t = 0;
r = 1;
incoming_char = 0;
configuration();
goto reception2;
}
sortie2: delay(10);
}

void desactivation(){// Desactivation de l'alarme en cas de détection de mouvement


while(t < 400){ //On fait une boucle qui dure en réalité entre 40s et 1 minute, pour attendre le mot "Stop", sinon on ressort
reception2: //Attente du mot "Stop" par le bon numéro de téléphone
if(Serial2.available() > 0) {
incoming_char=Serial2.read();
if (a > 9 && a < 21){ // récupération du numéro de l'emetteur du SMS
numero += incoming_char; //on récupère le numéro caractère par caractère et on le stocke dans la variable numero
Serial.println(numero);
}
else if (a > 49 && a < 54){ // récupération du message de l'emetteur du SMS
msgrecu += incoming_char; //on récupère le message caractère par caractère et on le stocke dans la variable msgrecu
Serial.println(msgrecu);
}
a++;
if (a >= 54){ //Fin de reception et d'exploration du SMS (le sms entier fait 54 caractères)
goto compare2;
En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
}
} 9.7
permettent de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
/10
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis
delay(100);
t++;
} J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 19/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino
compare2:
if(numero == "33644757223" && msgrecu == "Stop"){ //Test si bon numéro entrant et bon message
//autrement n'importe qui pourrait désactiver le système
Serial.println("Systeme inactif,reussi merci");
numero = ""; //On réinitialise les variable numero et msgrecu
msgrecu = "";
a = 0;
r = 0;
t = 0;
incoming_char = 0;
configuration();
delay(2000);
}
else{
Serial.println("mauvais numéro ou mauvaise commande");
numero = ""; //On réinitialise les variable numero et msgrecu
msgrecu = "";
a = 0;
t = 0;
incoming_char = 0;
configuration();
}
}

void activation(){ // Activation de l'alarme


while(1){

reception:
if(Serial2.available() > 0) {
incoming_char=Serial2.read();
if (a > 9 && a < 21){ // récupération du numéro de l'emetteur du SMS
numero += incoming_char; //on récupère le numéro caractère par caractère et on le stocke dans la variable numero
Serial.println(numero);
}
else if (a > 49 && a < 60){ // récupération du message de l'emetteur du SMS
msgrecu += incoming_char; //on récupère le message caractère par caractère et on le stocke dans la variable msgrecu
Serial.println(msgrecu);
}

a++;
if (a >= 60){ //Fin de reception et d'exploration du SMS(le sms entier fait 60 caractères)
goto compare;
}
}
}
compare:
if(numero == "33644757223" && msgrecu == "Activation"){ //Test si bon numéro entrant et bon message
//autrement n'importe qui pourrait activer le système
// Serial.println("Systeme actif,reussi merci");
numero = ""; //On réinitialise les variable numero et msgrecu
msgrecu = "";
a = 0;
r = 1;
incoming_char = 0;
configuration();//Efface le SMS reçu
goto sortie;
}
else{
// Serial.println("mauvais numéro ou mauvaise commande");
numero = ""; //On réinitialise les variable numero et msgrecu
msgrecu = "";
a = 0;
configuration();//Efface le SMS reçu
goto reception;
}
sortie: delay(10);
}

void configuration(){ // Activation mode reception de sms


Serial2.println("AT");
updateSerial();
Serial2.println("AT+CMGF=1"); // Mode Texte
updateSerial();
Serial2.println("AT+CMGD=1,4"); // Efface tous les SMS en mémoire
updateSerial();
Serial2.println("AT+CNMI=1,2,0,0,0"); // Activation de notification textos entrants
updateSerial();
delay(1000);
while (Serial2.available() >0 ) {
Serial.print(Serial2.read());
}
En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
}
9.7
permettent de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
/10
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis

J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 20/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino

Pour toutes questions, remarques ou suggestions relatives à ce tutoriel, n'hésitez pas à nous contacter à projet@eagle-robotics.com. N'oubliez pas les flatteries
habituelles: "Oh Grand maître de la robotique"," Noble chevalier de la Technologie ",etc etc... sinon votre requête ne sera pas traitée! 

Products Related To This Post

Lettre d'informations Saisissez votre adresse e-mail 

  
Catégories 
NOS PRODUITS

Informations 
Nouveaux produits

Meilleures ventes
Livraison
Mentions légales
CGV
Paiement sécurisé

Projets Sur Mesure


sitemap

Mon compte 
Mes commandes
Mes avoirs

Mes adresses
Mes informations personnelles
Mes bons de réduction

Informations sur votre boutique 

 EAGLE ROBOTICS ®, 21 rue de Gravelines 86100 Châtellerault France - 512 550 039 00089 R.C.S. POITIERS - TVA non applicable - article 293 B du CGI
 Appelez-nous au : 05 16 17 86 92 ou 06 44 75 72 23
 E-mail : contact@eagle-robotics.com

En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
9.7
permettent de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
/10
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis

J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 21/22
09/05/2023 12:11 https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino

 
9.7/10
i
e Matériel en service,


servos sont super b
programme Arduino
commenté.
126 avis
el S. ACHETEUR ROBERT P.
1/12/2022 à 08h31 AUTHENTIFIÉ Le 24/04/2023 à 09h

Marchand approuvé par la Société des Avis Garantis, cliquez ici pour vérifier.

En poursuivant votre navigation sur ce site, vous devez accepter l’utilisation et l'écriture de Cookies sur votre appareil connecté. Ces Cookies (petits fichiers texte)
9.7
permettent de suivre votre navigation, actualiser votre panier, vous reconnaitre lors de votre prochaine visite et sécuriser votre connexion. Pour en savoir plus et
/10
paramétrer les traceurs: http://www.cnil.fr/vos-obligations/sites-web-cookies-et-autres-traceurs/que-dit-la-loi/
126 avis

J'accepte

https://www.eagle-robotics.com/blog/1-appels-sms-et-mms-avec-le-module-sim900-et-arduino 22/22

Vous aimerez peut-être aussi