jeudi 16 mai 2019

Arduino et GSM SIM800L :Comment envoyer et recevoir un SMS ?

Dans cet article nous allons découvrir comment connecter un module GSM à une carte Arduino. Il existe plusieurs types de modules GSM sur le marché. Ici,  nous utilisons le module le plus miniaturiser basé sur une Simcom SIM800 et Arduino Uno. L'interfaçage d'un module GSM avec une carte Arduino est assez aisée.

arduino projet utile

Un module GSM est fondamentalement un modem GSM (comme SIM 900) connecté à un circuit imprimé avec différents types de sortie provenant de la carte.

Plusieurs variétés de modem GSM et modules GSM sont disponibles sur le marché. Pour notre projet qui consiste à envoyer et de recevoir des sms en utilisant arduino - il est toujours bon de choisir un module GSM avec une sortie TTL.

SIM800L est un module cellulaire miniature qui permet la transmission GPRS, l'envoi et la réception de SMS et l'émission et la réception d'appels vocaux. Son faible coût, sa faible encombrement et sa prise en charge des fréquences quadri-bandes font de ce module la solution parfaite pour tout projet nécessitant une connectivité longue portée.

Démarrage du module GSM !

Suivez les étapes ci-dessous pour démarrer votre SIM 800L.


  1. Insérez la carte SIM dans le module GSM et verrouillez-la.
  2. Connectez l'adaptateur au module GSM et allumez-le !
  3. Attendez maintenant un certain temps (disons 1 minute) et voyez clignoter la vitesse de'LED d'état' ou'LED réseau' (le module GSM prendra un certain temps pour établir la connexion avec le réseau mobile).
  4. Une fois la connexion établie avec succès, la LED d'état/réseau clignote continuellement toutes les 3 secondes.


Vous pouvez alors essayer d'appeler le numéro de portable de la carte SIM à l'intérieur du module GSM. Si vous entendez un retour d'appel, c'est que le module gsm a réussi à établir la connexion réseau.

Le blème avec cette connexion est que, pendant la programmation, Arduino utilise des ports série pour charger le programme depuis l'EDI Arduino. Si ces broches sont utilisées pour le câblage, le programme ne sera pas chargé avec succès sur Arduino.

Vous devez donc débrancher le câblage dans Rx et Tx chaque fois que vous gravez le programme à arduino. Une fois le chargement du programme réussi, vous pouvez rétablir la connexion de ces broches et faire fonctionner votre système !

Pour éviter cette contrainte, j'utilise une méthode alternative dans laquelle deux broches numériques d'arduino sont utilisées pour la communication série. Nous devons sélectionner deux broches d'arduino (compatibles PWM) pour cette méthode.

Je choisis donc les broches 9 et 10 (qui sont deux broches compatibles PWM). Cette méthode est rendue possible grâce à la librairie SoftwareSerial d'Ardunio. SoftwareSerial est une bibliothèque Arduino qui permet la communication de données série via d'autres broches numériques d'Arduino.
La bibliothèque réplique les fonctions matérielles et prend en charge la tâche de la communication série.

Le schéma de circuit pour connecter le module gsm à arduino et utiliser ensuite le circuit pour envoyer des sms et recevoir des sms en utilisant arduino et gsm modem.



Effectuez les raccordements comme indiqué ! Penchons-nous maintenant sur le développement du code. Le programme a deux objectifs, décrits ci-dessous

1) Envoyer des SMS à l'aide d'Arduino et d'un module GSM - vers un numéro de mobile spécifié à l'intérieur du programme.

Le code pour envoyer un SMS est le suivant:

Code d'envois de message SMS.

int state = 0;
const int pin = 2;
void setup()
{
  
  Serial.begin(9600); //Régler la vitesse de transmission exacte du module GSM/GPRS.
}
void loop()
{
  if (digitalRead(pin) == HIGH && state == 0) {
    Serial.print("\r");
    delay(1000);
    Serial.print("AT+CMGF=1\r");
    delay(1000);
//Remplacer XXXXXXXXXXXXXXXX par un numéro de mobile et ZZ par un indicatif de pays
    Serial.print("AT+CMGS=\"+ZZXXXXXXXXXX\"\r");
    delay(1000);
    //Le texte du message à envoyer.
    Serial.print("HELLO WORLD");
    delay(1000);
    Serial.write(0x1A);
    delay(1000);
    state = 1;
  }
  else {
    state = 0;
  }
}


2) Recevoir des SMS à l'aide d'Arduino et du module GSM - vers la carte SIM chargée dans le module GSM.

Le code pour recevoir un SMS est le suivant:

Code de réception SMS.

#include <SoftwareSerial.h>
SoftwareSerial serial(2, 3); // RX digital pin 2, TX digital pin 3.

void setup()
{
  Serial.begin(9600);
  serial.begin(9600); //Régler la vitesse de transmission exacte du module GSM/GPRS.
  serial.println("AT+CMGF=1\r");
  serial.println("AT+CMGR=1\r");//Lire les SMS à la position 1
  delay(1000);
}
void loop()
{
  if (serial.available() > 0) {
    int    c = serial.read();
    Serial.write(c);
  }
  delay(100);
}

Parcourrez la bibliothèque de commandes AT et commencez à jouer avec votre module GSM et Arduino ! Si vous avez des doutes s'il vous plaît demander dans les commentaires.

Il s'agit donc d'interfacer le module GSM à l'Arduino. Si vous avez des soucies, n'hésitez pas à commenter.

À propos de l'auteur

Astuce PC et Mobile

AUTEUR & RÉDACTEUR

Projet Arduino de A à Z est un coin ou je partage avec le monde mes aventures. Des aventures faites avec ce joujou qu’est l’environnement Arduino.

Enregistrer un commentaire

 
Arduino 2 A à Z © 2019 - Designed by Templateism.com | Distributed By Top