Com enviar i rebre SMS mitjançant mòdem GSM

Proveu El Nostre Instrument Per Eliminar Problemes





En aquest article aprendrem com enviar i rebre SMS mitjançant un mòdem GSM controlat per Arduino. Vegem, què és el mòdem GSM, com s’interfata amb Arduino, com s’envia SMS amb la configuració.

També explorarem quines són totes les aplicacions que podem aconseguir amb el mòdem GSM que no siguin l’enviament de missatges de text per un ésser humà.



Què és el mòdem GSM?

GSM significa Global System for Mobile Communications, és un estàndard que va ser desenvolupat per ETSI (European Telecommunications Standard Institute) que va descriure els protocols per a la comunicació 2G.

És el primer protocol digital de comunicació mòbil optimitzat per a la comunicació de veu full duplex. En poques paraules, la comunicació dúplex completa significa que totes dues parts poden enviar / rebre dades (o veu) simultàniament.



El protocol GSM també permet la transferència de dades de paquets, com GPRS i EDGE.

Mòdem GSM SIM800:

El mòdem GSM és un maquinari que accepta una targeta SIM vàlida (mòdul d'identitat de subscriptor), bàsicament qualsevol SIM funcionarà, que admeti el protocol GSM i amb una subscripció de xarxa.

És com un telèfon mòbil sense pantalla ni teclat. Té quatre pins d'E / S segons el model que trieu.

Dos per a TX i RX (transmissió i recepció), altres dos pins per a VCC i GND, que és habitual en tots.

També consta de port RS232 per a la comunicació en sèrie entre el mòdem i l'ordinador, però no el farem servir en aquest projecte.

Té una presa de corrent continu estàndard, que es pot alimentar des de fonts d’alimentació externes, com ara adaptadors de tensió.

Té una tensió de treball que oscil·la entre els 5 i els 12V a la presa de corrent continu, segons el model. Té 3 indicadors LED per a l'alimentació, l'estat i la xarxa.

El LED d'alimentació indica la presència d'alimentació, el LED d'estat indica si el mòdem GSM funciona o no, el LED de xarxa indica l'establiment de la xarxa mòbil.

Inicialment, el LED de xarxa parpelleja cada segon mentre es cerca la xarxa; un cop estableix la xarxa mòbil, parpelleja cada 3 segons.

Heu de prémer el botó d’engegada entre 2 o 3 segons per activar el mòdem GSM; un cop hàgiu acabat, es fixarà a la xarxa mòbil.

Per verificar que el vostre mòdem GSM funcioni, només cal que truqueu al número al qual heu inserit la targeta SIM. Haureu de rebre un to de trucada. Si ho fa, el vostre mòdul funciona bé.

Utilitzarem el mòdem SIM800 GSM que admet quadribanda 850/900/1800/1900 MHz. si teniu un mòdem SIM900, no us preocupeu, el programa i el circuit són compatibles amb aquest projecte.

Ara, hauríeu tingut alguna idea sobre el mòdem GSM; ara anem a aprendre a relacionar-lo amb arduino.

Esquema de connexions:

Com es pot deduir del diagrama, la connexió del circuit és fàcil. Només necessiteu 3 passadors de capçalera masculins a femenins. Un cable USB és obligatori en aquest projecte, ja que ens comunicarem mitjançant un monitor sèrie.

Sempre alimenteu el mòdem GSM amb un adaptador extern. La potència d'arduino és insuficient per al mòdem GSM, fins i tot podria sobrecarregar el regulador de voltatge de l'arduino.

Tot això és part de maquinari. Ara passem a la codificació.

Programa:

//-------------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---------------//

No oblideu el punt (.) A tots els extrems del missatge , en cas contrari, no enviarà el missatge al número prescrit al programa. Substituïu x pel vostre número de telèfon digital 10 del programa. Assegureu-vos que teniu un pla d’SMS a la vostra targeta SIM.

Si no sou de l’Índia, canvieu el codi de país del programa.

Per exemple:

Per al Regne Unit: +44
Per als EUA: +1
Per al Canadà: +1
Per a Rússia: +7

També podeu automatitzar el missatge que envia el mòdem GSM codificant adequadament Arduino. Podeu rebre alertes automàtiques de missatges al telèfon, com ara: alerta antirobatori, alerta contra incendis, alerta meteorològica a la vostra zona local, etc.

Fins i tot podeu connectar-vos a Internet amb GPRS en mòdem GSM, però és objecte d’un altre article.

En un dels propers articles que veurem, aprendrem Com rebre SMS mitjançant mòdem GSM i Arduino

Si teniu més preguntes sobre com enviar SMS mitjançant el mòdem GSM, no dubteu a fer-ho a la secció de comentaris.

Com rebre SMS mitjançant el mòdem GSM

En la discussió anterior, vam aprendre a enviar un missatge de text mitjançant un mòdem GSM i també vam discutir els conceptes bàsics sobre el mòdem GSM.

En aquesta secció parlarem de com rebre SMS mitjançant un monitor sèrie de l’IDE ​​arduino. No només rebrem SMS, sinó que també enviarem missatges de text prement diferents tecles. Per un instant, en prémer 's' s'enviarà un missatge de text introduït prèviament, en prémer 'r' es rebrà un SMS en temps real.

Aquí teniu el prototipus de l'autor:

Com funciona

El circuit per rebre SMS mitjançant un mòdem GSM és molt senzill, només necessiteu 3 pins de capçalera masculins a femenins. El TX del mòdem GSM està connectat al pin número 9 d’arduino i el RX del mòdem GSM està connectat al pin número 8 d’arduino i la connexió terra-terra també es dóna entre GSM i arduino.

Utilitzeu sempre una font d’alimentació externa per al mòdem GSM, no connecteu 5Vcc d’arduino al mòdem GSM, ja que hi ha bones possibilitats de sobrecarregar el regulador de voltatge de l’arduino.

No oblideu implementar una reducció de tarifa d’SMS o alguna cosa similar a la vostra subscripció a SMS per reduir les despeses de SMS.

En cas contrari, acabareu el saldo del compte buit després d’enviar diversos SMS, ja que no hi haurà cap confirmació del vostre proveïdor de telefonia mòbil després de cada SMS enviat, ja que la targeta SIM es troba al mòdem GSM.

L’únic reconeixement que rebeu és un SMS d’advertència pel que fa al vostre compte buit, així que tingueu cura de les vostres despeses. Passem ara a la part de codificació d’aquest projecte.

Programa:

//-----------------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-------------//

Introducció dels números de telèfon

Introduïu el número de telèfon del destinatari a 'xxxxxxxxxxx' al programa amb el codi de país al principi.

Introduïu el text que voleu enviar al programa dins de les cometes: gsm.println ('Hola sóc mòdem GSM !!!') // El text SMS que voleu enviar

Compileu el programa i pengeu-lo a arduino.

Introduïu la targeta SIM i enceneu el mòdem GSM amb font d'alimentació externa i premeu el botó d'engegada durant 3 segons (segons el model), espereu entre 10 i 20 segons per establir la xarxa mòbil; el LED de la xarxa hauria de parpellejar una vegada cada 3 segons. Si es fa tot el que s’indica més amunt, estem disposats a seguir el següent pas.

Ara obriu el monitor sèrie i premeu 'r' el mòdem GSM està a punt per rebre SMS. Ara envieu un missatge de text des de qualsevol telèfon mòbil al número de la SIM que s’insereix al mòdem GSM.
El missatge de text hauria d'aparèixer al monitor sèrie, una cosa similar a la que es mostra a continuació:

El 'Hello world' és el missatge enviat al mòdem GSM i també es mostra el número des del qual s'envia el missatge de text.

Ara, deixeu enviar SMS al número pre-introduït al programa amb el missatge pre-introduït. Premeu 's' i veureu una cosa similar il·lustrada a continuació: L'SMS enviat és 'Hello I am GSM modem'.

Ara ja sabeu com enviar i rebre SMS mitjançant mòdem GSM.




Anterior: Circuit de controlador de motor Bluetooth Següent: Com dissenyar un circuit d'escalfament per inducció