Bouclier SIM900 GSM GPRS avec Arduino

Bouclier SIM900 GSM GPRS avec Arduino

Cet article est un guide complet du bouclier SIM900 GSM GPRS avec l’Arduino. Apprenez comment envoyer et recevoir des SMS et comment passer et recevoir des appels téléphoniques avec Arduino.

Bouclier SIM900 GSM GPRS avec ArduinoDans ce guide, nous couvrirons :

  • Présentation du bouclier SIM900 GSM GPRS
  • Matériel de blindage SIM900 GSM GPRS
  • Commandes SIM900 AT
  • Test du bouclier
  • Envoi et réception de SMS – exemple
  • Passer et répondre à des appels téléphoniques – exemple

Présentation du bouclier SIM900 GSM GPRS

Le bouclier SIM900 GSM GPRS est illustré dans la figure ci-dessous.

Bouclier SIM900 GSM GPRS avec Arduino

GSM signifie gglobal Ssystème pour Mobile Communications et est la norme mondiale pour les communications mobiles.

GPRS signifie ggénéral Paccuser Raudio Sservice. GPRS est un service mobile sur la communication cellulaire 2G et 3G.

Applications:

Le shield GSM GPRS est particulièrement utile car il permet de :

  • Se connecter à Internet via le réseau GPRS
  • Envoyer et recevoir des SMS
  • Passer et recevoir des appels téléphoniques

Ses capacités le rendent parfait pour les projets avec Arduino comme :

  • Contrôle à distance des appareils électroniques – envoi d’un SMS pour allumer quelque chose ;
  • Recevez des notifications – envoyez des SMS à votre téléphone portable si un mouvement est détecté dans votre maison ;
  • Recevez les données du capteur – envoyez des SMS périodiques à votre téléphone portable avec des données météorologiques quotidiennes.

Caractéristiques

Voici quelques-unes des caractéristiques les plus importantes du bouclier :

  • Compatible avec Arduino et clones
  • Basé sur le module SIM900 de SIMCOM
  • Vous permet d’envoyer des SMS, MMS, GPRS et audio via UART en utilisant les commandes AT.
  • Il dispose de 12 GPIO, 2 PWM et ADC intégré du module SIM900
  • Quadri-bande : 850 ; 900 ; 1800 et 1900 MHZ, il devrait donc fonctionner dans tous les pays avec des réseaux GSM (2G)
  • Contrôle via les commandes AT
  • Prend en charge RTC (horloge en temps réel) – il a un support pour une pile 3V CR1220 à l’arrière

1641877927 119 Bouclier SIM900 GSM GPRS avec Arduino

  • Possède des prises microphone et casque pour les appels téléphoniques

1641877927 486 Bouclier SIM900 GSM GPRS avec Arduino

Où acheter?

1641877927 915 Bouclier SIM900 GSM GPRS avec Arduino

Vous pouvez vérifier le Bouclier SIM900 GSM GPRS sur Maker Advisor et trouvez le meilleur prix.

Vous pouvez utiliser les liens précédents ou aller directement sur MakerAdvisor.com/tools pour trouver toutes les pièces pour vos projets au meilleur prix !

1641877927 721 Bouclier SIM900 GSM GPRS avec Arduino

Étapes préliminaires

Avant de commencer avec votre module SIM900 GSM GPRS, vous devez considérer certains aspects concernant la carte SIM et l’alimentation du shield.

Couverture GSM

Assurez-vous d’avoir une couverture sur un réseau GSM 850 MHz, GSM 900 MHz, DCS 1800 MHz ou PCS 1900 MHz. Par GSM, nous entendons 2G.

Carte SIM prépayée

Nous vous recommandons d’utiliser un forfait prépayé ou un forfait avec SMS illimités à des fins de test. Sinon, si quelque chose ne va pas, vous devrez peut-être payer une facture énorme pour des centaines de messages texte SMS envoyés par erreur. Dans ce tutoriel, nous utilisons un forfait prépayé avec SMS illimités.

1641877927 876 Bouclier SIM900 GSM GPRS avec Arduino

Le bouclier utilise la taille de la carte SIM d’origine, pas micro ou nano. Si vous avez un micro ou un nano, vous pouvez envisager d’obtenir un Adaptateur de taille de carte SIM.

Désactiver le verrouillage PIN

Pour utiliser la carte SIM avec le bouclier, vous devez désactiver le verrouillage des broches. Le moyen le plus simple de le faire est d’insérer la carte SIM dans votre smartphone et de désactiver le verrouillage des broches dans les paramètres de sécurité du téléphone.

Dans mon cas, je devais passer par : Réglages > Avancée Réglages > Sécurité > Verrouillage SIM et éteignez la carte sim de verrouillage avec la broche.

1641877927 994 Bouclier SIM900 GSM GPRS avec Arduino

Obtenir la bonne alimentation

Le blindage a une prise CC pour l’alimentation, comme illustré dans la figure ci-dessous.

1641877928 935 Bouclier SIM900 GSM GPRS avec Arduino

À côté de la prise d’alimentation, il y a un interrupteur à bascule pour sélectionner la source d’alimentation. À côté de l’interrupteur à bascule sur la carte, il y a une flèche indiquant la position à bascule pour utiliser une alimentation externe – déplacez l’interrupteur à bascule pour utiliser l’alimentation externe comme indiqué ci-dessus.

Pour alimenter le shield, il est conseillé d’utiliser une alimentation 5V pouvant fournir 2A comme celle illustrée ci-dessous. Il peut également être alimenté en 9V 1A, ou 12V 1A.

1641877928 125 Bouclier SIM900 GSM GPRS avec Arduino

Vous pouvez trouver le bon adaptateur d’alimentation pour ce bouclier ici. Assurez-vous de sélectionner le modèle avec 5V et 2A.

Matériel de blindage SIM900 GSM GPRS

La figure ci-dessous montre l’arrière du bouclier. Il possède un support pour la carte SIM et pour une pile 3V CR1220 pour le RTC (horloge temps réel).

1641877928 822 Bouclier SIM900 GSM GPRS avec Arduino

La figure ci-dessous montre les composants les plus importants de la carte auxquels vous devez prêter attention.

1641877928 358 Bouclier SIM900 GSM GPRS avec Arduino

Commencer

1) Insérez la carte SIM dans le support de carte SIM – assurez-vous d’avoir lu les étapes préliminaires de la section précédente.1641877928 747 Bouclier SIM900 GSM GPRS avec Arduino2) Assurez-vous que l’antenne est bien connectée.

3) Sur la sélection du port série, assurez-vous que le capuchon du cavalier est connecté comme indiqué dans la figure ci-dessous pour utiliser la série logicielle.

1641877928 715 Bouclier SIM900 GSM GPRS avec Arduino4) Alimentez le blindage à l’aide d’une alimentation externe 5V. Assurez-vous de sélectionner la source d’alimentation externe avec l’interrupteur à bascule à côté de la prise CC.

1641877928 386 Bouclier SIM900 GSM GPRS avec Arduino

5) Pour allumer/éteindre le bouclier, appuyez sur la touche d’alimentation pendant environ 2 secondes.

1641877928 684 Bouclier SIM900 GSM GPRS avec Arduino6) Ensuite, la LED d’état s’allumera et la LED NetLight clignotera toutes les 800 ms jusqu’à ce qu’elle trouve le réseau. Lorsqu’il trouve le réseau, le voyant NetLight commence à clignoter toutes les trois secondes.

Noter: vous pouvez activer automatiquement le bouclier via le logiciel. Voyez comment faire cela dans le Activer automatiquement le bouclier section, après les exemples de code.

sept) Vous pouvez tester si le bouclier fonctionne correctement en envoyant des commandes AT depuis l’IDE Arduino à l’aide d’un programmeur FTDI – comme nous le montrerons plus loin dans ce guide.

Commandes SIM900 AT

  • mettez le SIM900 en mode texte : AT+CMGF=1r
  • envoyer des SMS à un numéro : AT+CMGS=NUMÉRO DE TÉLÉPHONE (au format international)
  • lire le premier SMS de la boîte de réception : AT+CMGR=1r
  • lire le deuxième SMS de la boîte de réception : AT+CMGR=2r
  • lire tous les SMS de la boîte de réception : AT+CMGR=TOUSr
  • appeler un numéro : ATDP+ NUMÉRO DE TÉLÉPHONE (au format international)
  • raccrocher un appel : ATH
  • recevoir un appel entrant : À

Pour plus d’informations, vous pouvez consulter le manuel des commandes SIM900 AT ici.

Test du Shield avec le programmeur FTDI

Pour tester si tout fonctionne correctement, vous pouvez tester le shield en envoyant des commandes AT depuis le moniteur série Arduino IDE. Pour cela, vous avez besoin d’un programmeur FTDI comme celui illustré dans la figure ci-dessous. Vous pouvez obtenir un programmeur FTDI comme celui-ci ici.

1641877928 911 Bouclier SIM900 GSM GPRS avec Arduino

1) Connectez le programmeur FTDI au blindage GSM comme indiqué dans la figure ci-dessous.

1641877928 620 Bouclier SIM900 GSM GPRS avec Arduino

2) Ouvrez l’IDE Arduino et sélectionnez le bon port COM.

3) Ouvrez le moniteur série 1641877928 621 Bouclier SIM900 GSM GPRS avec Arduino

4) Sélectionner 19200 débit en bauds – le paramètre par défaut du blindage est 19200 – et Retour chariot. Écrivez À dans la case surlignée en rouge, puis appuyez sur Entrée. Voir la figure ci-dessous. 1641877928 455 Bouclier SIM900 GSM GPRS avec Arduino

5) Le bouclier répondra avec d’accord, si tout fonctionne correctement.

1641877928 164 Bouclier SIM900 GSM GPRS avec Arduino

Connecter le Shield à Arduino

Connectez le blindage à l’Arduino comme indiqué dans les schémas ci-dessous.

1641877928 930 Bouclier SIM900 GSM GPRS avec Arduino

Envoi d’un SMS

Pour envoyer un SMS, téléchargez le code ci-dessous sur votre carte Arduino.

/*********
  Complete project details at https://www.raspberryme.com  
*********/

#include <SoftwareSerial.h>

// Configure software serial port
SoftwareSerial SIM900(7, 8); 

void setup() {
  // Arduino communicates with SIM900 GSM shield at a baud rate of 19200
  // Make sure that corresponds to the baud rate of your module
  SIM900.begin(19200);
  // Give time to your GSM shield log on to network
  delay(20000);   
  
  // Send the SMS
  sendSMS();
}

void loop() { 
  
}

void sendSMS() {
  // AT command to set SIM900 to SMS mode
  SIM900.print("AT+CMGF=1r"); 
  delay(100);

  // REPLACE THE X's WITH THE RECIPIENT'S MOBILE NUMBER
  // USE INTERNATIONAL FORMAT CODE FOR MOBILE NUMBERS
  SIM900.println("AT+CMGS="+XXXXXXXXXXXX""); 
  delay(100);
  
  // REPLACE WITH YOUR OWN SMS MESSAGE CONTENT
  SIM900.println("Message example from Arduino Uno."); 
  delay(100);

  // End AT command with a ^Z, ASCII code 26
  SIM900.println((char)26); 
  delay(100);
  SIM900.println();
  // Give module time to send SMS
  delay(5000); 
}

Afficher le code brut

Dans ce code, vous commencez par inclure le SoftwareSerial.h bibliothèque et créez un port série logiciel sur les broches 7 et 8. (La broche 7 est définie comme RX et 8 comme TX)

#include <SoftwareSerial.h>
SoftwareSerial SIM900(7, 8);

le envoyer un SMS() fonction créée est ce qui envoie réellement le SMS. Cette fonction utilise les commandes AT : AT+CMGF=1r et AT + CMGS.

Vous devez changer le numéro de portable du destinataire à : (remplacez le X‘s avec le numéro de téléphone du destinataire)

SIM900.println("AT + CMGS = "++++++++++++++"");

Le numéro de portable du destinataire doit être au format international.

Ensuite, à la ligne suivante, vous pouvez modifier le texte que vous souhaitez envoyer.

// REPLACE WITH YOUR OWN SMS MESSAGE CONTENT
SIM900.println("Message example from Arduino Uno.")

Lecture des SMS reçus

Pour lire les SMS entrants, téléchargez le code ci-dessous sur votre Arduino. Après le téléchargement, attendez 20 secondes pour que le bouclier établisse la communication. Ensuite, testez le script en envoyant un SMS au numéro de carte SIM du shield. Le SMS est affiché sur le moniteur série Arduino – débit en bauds : 19200.

/*********
  Complete project details at https://www.raspberryme.com  
*********/

#include <SoftwareSerial.h>

// Configure software serial port
SoftwareSerial SIM900(7, 8);
//Variable to save incoming SMS characters
char incoming_char=0;

void setup() {
  // Arduino communicates with SIM900 GSM shield at a baud rate of 19200
  // Make sure that corresponds to the baud rate of your module
  SIM900.begin(19200);
  // For serial monitor
  Serial.begin(19200); 
  // Give time to your GSM shield log on to network
  delay(20000);

  // AT command to set SIM900 to SMS mode
  SIM900.print("AT+CMGF=1r"); 
  delay(100);
  // Set module to send SMS data to serial out upon receipt 
  SIM900.print("AT+CNMI=2,2,0,0,0r");
  delay(100);
}

void loop() {
  // Display any text that the GSM shield sends out on the serial monitor
  if(SIM900.available() >0) {
    //Get the character from the cellular serial port
    incoming_char=SIM900.read(); 
    //Print the incoming character to the terminal
    Serial.print(incoming_char); 
  }
}

Afficher le code brut

Dans ce code, vous configurez le module pour envoyer les données SMS à la sortie série :

SIM900.print("AT+CNMI=2,2,0,0,0r");

Vous enregistrez les caractères entrants du message SMS sur le entrant_char variable. Vous lisez les caractères en utilisant le SIM900.lire() une fonction.

Passer un appel téléphonique

Pour passer un appel téléphonique, téléchargez le code suivant sur votre Arduino.

N’oubliez pas de modifier le code avec le numéro de téléphone que vous souhaitez appeler.

/*********
  Complete project details at https://www.raspberryme.com  
*********/

#include <SoftwareSerial.h>

// Configure software serial port
SoftwareSerial SIM900(7, 8); 

void setup() {
  // Arduino communicates with SIM900 GSM shield at a baud rate of 19200
  // Make sure that corresponds to the baud rate of your module
  SIM900.begin(19200);
  // Give time to your GSM shield log on to network
  delay(20000);

  // Make the phone call
  callSomeone();
}

void loop() {
  
}

void callSomeone() {
  // REPLACE THE X's WITH THE NUMER YOU WANT TO DIAL
  // USE INTERNATIONAL FORMAT CODE FOR MOBILE NUMBERS
  SIM900.println("ATD + +XXXXXXXXX;");
  delay(100);
  SIM900.println();
  
 // In this example, the call only last 30 seconds
 // You can edit the phone call duration in the delay time
  delay(30000);
  // AT command to hang up
  SIM900.println("ATH"); // hang up
}

Afficher le code brut

Pour passer l’appel, vous utilisez le Appeler quelqu’un() fonction qui utilise le ATD commander.

SIM900.println("ATD + +XXXXXXXXX;");

Vous devez remplacer le X‘s (surligné en rouge) avec le numéro de téléphone que vous souhaitez appeler.

N’oubliez pas de connecter un microphone et des écouteurs pour passer l’appel.

Dans cet exemple de code, l’appel est raccroché après 30 secondes, en utilisant le ATH commander:

SIM900.println("ATH"); 

Raccrocher après 30 secondes n’est pas très utile, mais cela fonctionne bien pour un exemple. L’idée est que vous utilisez le ATH commande lorsqu’un événement est déclenché. Par exemple, connectez un bouton-poussoir à l’Arduino, qui, lorsqu’il est enfoncé, envoie le ATH commande pour raccrocher le téléphone.

Répondre aux appels téléphoniques entrants

Le code suivant répond aux appels entrants.

/*********
  Complete project details at https://www.raspberryme.com  
*********/

#include <SoftwareSerial.h>

// Configure software serial port
SoftwareSerial SIM900(7, 8); 
char incoming_char=0;

void setup() {
  // Arduino communicates with SIM900 GSM shield at a baud rate of 19200
  // Make sure that corresponds to the baud rate of your module
  SIM900.begin(19200); // for GSM shield
  // For serial monitor
  Serial.begin(19200); 
  // Give time to log on to network.
  delay(20000); 
  
  SIM900.print("AT+CLIP=1r"); // turn on caller ID notification
  delay(100);
}

void loop() {
  // Display any text that the GSM shield sends out on the serial monitor
  if(SIM900.available() >0) {
    // Get the character from the cellular serial por
    // With an incomming call, a "RING" message is sent out
    incoming_char=SIM900.read();
    //  Check if the shield is sending a "RING" message
    if (incoming_char=='R') {
      delay(10);
      Serial.print(incoming_char);
      incoming_char=SIM900.read();
      if (incoming_char =='I') {
        delay(10);
        Serial.print(incoming_char);
        incoming_char=SIM900.read();
        if (incoming_char=='N') {
          delay(10);
          Serial.print(incoming_char);
          incoming_char=SIM900.read();
          if (incoming_char=='G') {
            delay(10);
            Serial.print(incoming_char);
            // If the message received from the shield is RING
            // Send ATA commands to answer the phone
            SIM900.print("ATAr");
          }
        }
      }
    }
  }
}

Afficher le code brut

Lorsque quelqu’un appelle le numéro SIM900, il envoie un message disant « RING ». Pour savoir si quelqu’un vous appelle, vous pouvez attendre les caractères entrants du SIM900, puis comparer s’il s’agissait d’un message RING. C’est ce qui est fait dans ce code. Lorsqu’il reçoit un message RING, vous envoyez le À commande pour répondre au téléphone.

Activer automatiquement le bouclier

Au lieu d’appuyer manuellement sur la touche « alimentation » pour allumer le bouclier, vous pouvez activer automatiquement le bouclier via le logiciel.

1) Tout d’abord, vous devez souder les connexions R13 sur le blindage comme indiqué dans la figure ci-dessous – surlignée en rouge.

1641877929 298 Bouclier SIM900 GSM GPRS avec Arduino

2) Connectez D9 sur le blindage à la broche D9 Arduino comme indiqué dans le schéma ci-dessous.

1641877929 455 Bouclier SIM900 GSM GPRS avec Arduino

3) Ajoutez l’extrait de code suivant dans la fonction setup(). C’est l’équivalent d’appuyer sur le bouton « alimentation » du bouclier.

digitalWrite(9, HIGH);
delay(1000);
digitalWrite(9, LOW);
delay(5000);

Dépannage

Le bouclier ne répond pas avec OK

Vérifiez vos connexions TX et RX à l’Arduino. Essayez de répéter le processus en changeant le TX avec les broches RX.

Vérifiez également si vous avez sélectionné la série du logiciel en plaçant le capuchon du cavalier à l’endroit approprié sur le sélecteur de série.

1641877928 715 Bouclier SIM900 GSM GPRS avec Arduino

Impossible de voir les messages sur le moniteur série

Pour voir les messages sur le moniteur série, le blindage et le débit en bauds du port série de l’Arduino doivent être les mêmes. Le débit en bauds par défaut du bouclier SIM900 GSM GPRS est de 19200. Sélectionnez donc le débit en bauds de l’Arduino à 19200.

Cependant, si vous devez modifier le débit en bauds du blindage, vous pouvez envoyer la commande AT suivante pour le modifier à 19 200 ou à un autre débit en bauds approprié.

AT+IPR=19200

Conclusion

Ce tutoriel vous montre comment envoyer et recevoir des SMS et passer et recevoir des appels téléphoniques avec l’Arduino. Vous pouvez appliquer les concepts appris dans ce didacticiel pour créer vos propres projets afin de communiquer sur un réseau cellulaire. Nous avons d’autres projets qui utilisent le GSM, vérifiez-les ci-dessous :

Si vous aimez les projets Arduino, assurez-vous de consulter notre dernier Arduino : Projets Arduino étape par étape – Construisez 25 projets

Nous espérons que vous avez trouvé ce guide utile.

Merci d’avoir lu.

  • TECNOIOT SIM900 GPRS/GSM Shield Development Board Quad-Band Module with Antenna + Gift | Module Quadri-Bande de Carte de développement de Bouclier de SIM900 GPRS/GSM avec l'antenne + Cadeau
    【Module GSM GPRS SIM900 】 avec quatre bandes 850/900/1800/1900 MHz (GSM et GPRS disponible dans tout le monde) 【Pied d'appels et SMS 】 (connexions de casque et microphones disponibles) - la communication s'effectue à l'aide de commandes AT 【excellente compatibilité 】 se contrôle à l'aide d'un (100% pin compatible) et Mega2560 et facile programmation par moyen de les bibliothèques Arduino de source ouverte 【Livraison rapide et livraison rapide 】 de haute qualité depuis Espagne en achetant en tecnoiot 【Remarque importante】 Attention: insérez la carte SIM dans le support de la carte SIM en appuyant doucement sur le support de la carte SIM! Ne forcez pas vers le haut, sinon vous risquez d'endommager la fente pour carte! Si la fente pour carte est endommagée, veuillez nous contacter, nous vous fournirons la solution.
  • TECNOIOT SIM900 GPRS/GSM Shield Development Board Quad-Band Module with Antenna | Module Quadri-Bande de Carte de développement de Bouclier de SIM900 GPRS/GSM avec l'antenne
    【Module GSM GPRS SIM900 】 avec quatre bandes 850/900/1800/1900 MHz (GSM et GPRS disponible dans tout le monde) 【Pied d'appels et SMS 】 (connexions de casque et microphones disponibles) - la communication s'effectue à l'aide de commandes AT 【excellente compatibilité 】 se contrôle à l'aide d'un (100% pin compatible) et Mega2560 et facile programmation par moyen de les bibliothèques Arduino de source ouverte 【Livraison rapide et livraison rapide 】 de haute qualité depuis Espagne en achetant en tecnoiot
  • TECNOIOT 2pcs SIM900 GPRS/GSM Shield Development Board Quad-Band Module with Antenna + Gift
    【GSM Module GPRS SIM900】 with four bands 850/900/1800/1900 MHz (GSM and GPRS available worldwide) 【Support for calls and SMS】 (connections of headphones and microphones available) - the communication is made using AT commands 【Excellent Compatibility】 Controlled through UNO (100% compatible pin) and MEGA2560 and easy programming through open-source Arduino libraries 【Fast delivery】 Fast and high quality delivery from Spain buying at TECNOIOT