Comment envoyer et recevoir des SMS à l'aide d'un modem GSM

Essayez Notre Instrument Pour Éliminer Les Problèmes





Dans cet article, nous allons apprendre comment envoyer et recevoir des SMS à l'aide d'un modem GSM contrôlé par Arduino. Voyons ce qu'est le modem GSM, comment l'interfacer avec Arduino, comment envoyer des SMS avec la configuration.

Nous allons également explorer quelles sont toutes les applications que nous pouvons réaliser avec un modem GSM autre que l'envoi de SMS par un humain.



Qu'est-ce qu'un modem GSM?

GSM signifie Global System for Mobile communications, c'est une norme qui a été développée par l'ETSI (European Telecommunications Standard Institute) qui a décrit les protocoles de communication 2G.

Il s'agit du premier protocole numérique de communication mobile optimisé pour la communication vocale en duplex intégral. En un mot, la communication en duplex intégral signifie que les deux parties peuvent envoyer / recevoir des données (ou de la voix) simultanément.



Le protocole GSM permet également le transfert de données par paquets, telles que GPRS et EDGE.

Modem GSM SIM800:

Le modem GSM est un matériel qui accepte une carte SIM valide (Subscriber Identity Module), essentiellement n'importe quelle carte SIM fonctionnera, qui prend en charge le protocole GSM et avec un abonnement réseau.

C'est comme un téléphone portable sans écran ni clavier. Il dispose de quatre broches d'E / S selon le modèle que vous choisissez.

Deux pour TX et RX (émission et réception), deux autres broches pour VCC et GND, ce qui est commun à tous.

Il comprend également un port RS232 pour la communication série entre le modem et l'ordinateur, mais nous n'allons pas l'utiliser dans ce projet.

Il dispose d'une prise d'alimentation CC standard, qui peut être alimentée à partir de sources d'alimentation externes telles que des adaptateurs de tension.

Il a une tension de fonctionnement allant de 5 à 12 V sur prise CC, selon le modèle. Il dispose de 3 indicateurs LED pour l'alimentation, l'état et le réseau.

Le voyant d'alimentation indique la présence d'alimentation, le voyant d'état indique si le modem GSM fonctionne ou non, le voyant réseau indique l'établissement du réseau mobile.

Initialement, le voyant du réseau clignote toutes les secondes lors de la recherche du réseau, une fois le réseau mobile établi, il clignote toutes les 3 secondes.

Vous devez appuyer sur le bouton d'alimentation pendant 2 à 3 secondes pour activer le modem GSM, une fois que vous avez terminé, il se verrouille sur le réseau mobile.

Pour vérifier que votre modem GSM fonctionne, il vous suffit d'appeler le numéro dont vous avez inséré la carte SIM. Vous devriez recevoir une tonalité de rappel. Si c'est le cas, votre module fonctionne correctement.

Nous allons utiliser le modem GSM SIM800 qui prend en charge la quadri-bande 850/900/1800/1900 MHz. si vous possédez un modem SIM900, ne vous inquiétez pas, le programme et le circuit sont compatibles dans ce projet.

Maintenant, vous auriez eu une idée du modem GSM, apprenons maintenant à l’interfacer avec Arduino.

Schéma:

Comme vous pouvez le déduire du diagramme, la connexion du circuit est extrêmement simple. Vous avez juste besoin de 3 broches mâles à femelles. Un câble USB est obligatoire dans ce projet, car nous allons communiquer via un moniteur série.

Alimentez toujours le modem GSM avec un adaptateur externe. La puissance d'arduino est insuffisante pour le modem GSM il pourrait même surcharger le régulateur de tension de l'arduino.

Tout est question de partie matérielle. Passons maintenant au codage.

Programme:

//-------------Program developed by R.Girish---------------//
#include
#define rxPin 9 // gsm TX------> arduino 9
#define txPin 8 //gsm RX--------> arduino 8
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin)
char text[150]
String message=''
int x
void setup()
{
Serial.begin(9600)
while (!Serial){}
mySerial.begin(9600)
delay(1000)
Serial.println('Write your message (with dot at end):')
}
void loop()
{
x=0
while( Serial.available()>0 )
{
text[x] = Serial.read()
message += text[x]
x++
if (text[x-1]==46)
{
Serial.println('Your message is sending......')
SendTextMessage()
ShowSerialData()
delay(1000)
Serial.println('r')
Serial.println('Success')
message=''
x=0
}}}
void SendTextMessage()
{
mySerial.print('AT+CMGF=1r')
delay(1000)
mySerial.print('AT+CMGS='+91xxxxxxxxxx'r') // Replace x with your 10 digit phone number
delay(1000)
mySerial.println(message)
mySerial.print('r')
delay(1000)
mySerial.println((char)26)
mySerial.println()
}
void ShowSerialData()
{
while(mySerial.available()!=0)
Serial.write(mySerial.read())
}
//-------------Program developed by R.Girish---------------//

N'oubliez pas le point (.) À chaque extrémité du message , sinon il n’enverra pas le message au numéro prescrit dans le programme. Remplacez x par votre numéro de téléphone numérique 10 dans le programme. Assurez-vous d'avoir un plan SMS fonctionnel sur votre carte SIM.

Si vous n'êtes pas de l'Inde, veuillez changer le code du pays dans le programme.

Par exemple:

Pour le Royaume-Uni: +44
Pour nous: +1
Pour le Canada: +1
Pour la Russie: +7

Vous pouvez également automatiser le message envoyé par le modem GSM en codant Arduino de manière appropriée. Vous pouvez recevoir des alertes de message automatisées sur votre téléphone telles que: alerte antivol, alerte d'alarme incendie, alerte météo sur votre région, etc.

Vous pouvez même vous connecter à internet avec GPRS dans un modem GSM, mais cela fait l'objet d'un autre article.

Dans l'un des prochains articles, nous apprendrons Comment recevoir des SMS en utilisant un modem GSM et Arduino

Si vous avez d'autres questions concernant l'envoi de SMS à l'aide d'un modem GSM, n'hésitez pas à les poser dans la section des commentaires.

Comment recevoir des SMS à l'aide d'un modem GSM

Dans la discussion ci-dessus, nous avons appris comment envoyer un message texte en utilisant un modem GSM et avons également discuté des bases du modem GSM.

Dans cette section, nous discuterons de la façon de recevoir des SMS via le moniteur série de l'IDE arduino. Nous allons non seulement recevoir des SMS, mais également envoyer des SMS en appuyant sur différentes touches. Pendant un instant, appuyez sur «s» pour envoyer un message texte de pré-saisie, appuyez sur «r» pour recevoir un SMS en temps réel.

Voici le prototype de l'auteur:

Comment ça fonctionne

Le circuit pour recevoir des SMS en utilisant un moden GSM est très simple, il vous suffit de 3 broches mâles à femelles. Le TX du modem GSM est connecté à la broche n ° 9 d'arduino et le RX du modem GSM est connecté à la broche n ° 8 d'arduino et la connexion terre-terre est également donnée entre GSM et arduino.

Utilisez toujours une alimentation externe pour le modem GSM, ne connectez pas 5Vcc d'arduino au modem GSM, car il y a de bonnes chances de surcharger le régulateur de tension d'arduino.

N'oubliez pas de mettre en œuvre un coupe-tarif SMS ou quelque chose de similaire sur votre abonnement SMS pour réduire vos dépenses SMS.

Sinon, le solde de votre compte sera vide après l'envoi de plusieurs SMS, car il n'y aura aucun accusé de réception de votre fournisseur de téléphonie mobile après chaque SMS envoyé, car la carte SIM est dans le modem GSM.

Le seul accusé de réception que vous recevez est un SMS d'avertissement, concernant votre compte vide, alors soyez prudent avec vos dépenses. Passons maintenant au codage de ce projet.

Programme:

//-----------------Program developed by R.Girish-------------//
#include
SoftwareSerial gsm(9,8)
void setup()
{
gsm.begin(9600) // Setting the baud rate of GSM Module
Serial.begin(9600) // Setting the baud rate of Serial Monitor (Arduino)
delay(100)
}
void loop()
{
if (Serial.available()>0)
switch(Serial.read())
{
case 's':
Send()
break
case 'r':
Recieve()
break
case 'S':
Send()
break
case 'R':
Recieve()
break
}
if (gsm.available()>0)
Serial.write(gsm.read())
}
void Send()
{
gsm.println('AT+CMGF=1')
delay(1000)
gsm.println('AT+CMGS='+91xxxxxxxxxx'r') // Replace x with mobile number
delay(1000)
gsm.println('Hello I am GSM modem!!!')// The SMS text you want to send
delay(100)
gsm.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
void Recieve()
{
gsm.println('AT+CNMI=2,2,0,0,0') // AT Command to receive a live SMS
delay(1000)
}
//-----------------Program developed by R.Girish-------------//

Saisie des numéros de téléphone

Entrez le numéro de téléphone du destinataire sur «xxxxxxxxxxx» dans le programme avec l'indicatif de votre pays au début.

Entrez le texte que vous souhaitez envoyer dans le programme entre guillemets: gsm.println ('Hello I am GSM modem !!!') // Le texte SMS que vous souhaitez envoyer

Compilez le programme et téléchargez-le sur arduino.

Insérez la carte SIM et alimentez le modem GSM avec une alimentation externe et appuyez sur le bouton d'alimentation pendant 3 secondes (selon le modèle), attendez 10 à 20 secondes pour établir le réseau mobile, le voyant du réseau doit clignoter une fois toutes les 3 secondes. Si tout est fait ci-dessus, nous sommes prêts à passer à l'étape suivante.

Ouvrez maintenant le moniteur série et appuyez sur «r», le modem GSM est prêt à recevoir des SMS. Envoyez maintenant un message texte depuis n'importe quel téléphone mobile au numéro de la carte SIM insérée sur le modem GSM.
Le message texte devrait apparaître sur le moniteur série, quelque chose de similaire à celui illustré ci-dessous:

Le «Hello world» est le message envoyé au modem GSM et le numéro à partir duquel le message texte est envoyé est également affiché.

Maintenant, laissez envoyer un SMS au numéro pré-entré dans le programme avec un message pré-entré. Appuyez sur «s» et vous verrez quelque chose de similaire illustré ci-dessous: Le SMS envoyé est «Bonjour, je suis un modem GSM».

Désormais, vous savez comment envoyer et recevoir des SMS avec un modem GSM.




Précédent: Circuit de contrôleur de moteur Bluetooth Un article: Comment concevoir un circuit de chauffage par induction