Como enviar e receber SMS usando o modem GSM

Experimente Nosso Instrumento Para Eliminar Problemas





Neste artigo vamos aprender como enviar e receber SMS usando modem GSM que é controlado pelo Arduino. Vamos ver o que é modem GSM, como fazer a interface com o Arduino, como enviar SMS com o setup.

Também vamos explorar todas as aplicações que podemos alcançar com o modem GSM além do envio de mensagem de texto por um ser humano.



O que é modem GSM?

GSM significa Sistema Global para Comunicações Móveis e é um padrão desenvolvido pelo ETSI (European Telecommunications Standard Institute), que descreve os protocolos para comunicação 2G.

É o primeiro protocolo digital para comunicação móvel otimizado para comunicação de voz full duplex. Em poucas palavras, a comunicação full duplex significa que ambas as partes podem enviar / receber dados (ou voz) simultaneamente.



O protocolo GSM também permite a transferência de pacotes de dados, como GPRS e EDGE.

Modem SIM800 GSM:

O modem GSM é um hardware que aceita um cartão SIM válido (Módulo de Identidade do Assinante), basicamente qualquer SIM funcionará, que suporte o protocolo GSM e com uma assinatura de rede.

É como um celular sem tela e teclado. Possui quatro pinos de E / S, dependendo do modelo que você escolher.

Dois para TX e RX (transmitir e receber), outros dois pinos para VCC e GND, que são comuns a todos.

Também consiste em uma porta RS232 para comunicação serial entre o modem e o computador, porém não usaremos neste projeto.

Possui conector de alimentação DC padrão, que pode ser alimentado por fontes de alimentação externas, como adaptadores de tensão.

Possui tensão de trabalho variando de 5 a 12V no conector DC, dependendo do modelo. Possui 3 indicadores LED, para alimentação, status e rede.

O LED de energia indica a presença de energia, o LED de status indica se o modem GSM está operando ou não, o LED de rede indica o estabelecimento de rede móvel.

Inicialmente, o LED da rede pisca a cada segundo durante a busca pela rede, uma vez que estabelece a rede móvel, pisca a cada 3 segundos.

Você precisa pressionar o botão liga / desliga por 2 a 3 segundos para ativar o modem GSM, uma vez feito isso, ele trava na rede móvel.

Para verificar se o seu modem GSM funciona, basta ligar para o número do qual você inseriu o cartão SIM. Você deve receber um tom de retorno. Se isso acontecer, seu módulo está funcionando bem.

Vamos usar o modem SIM800 GSM que suporta quad-band 850/900/1800/1900 MHz. se você possui um modem SIM900, não precisa se preocupar, o programa e o circuito são compatíveis neste projeto.

Agora, você deve ter tido uma ideia sobre o modem GSM, agora vamos aprender como fazer a interface com o arduino.

Diagrama de circuito:

Como você pode inferir no diagrama, a conexão do circuito é extremamente fácil. Você só precisa de 3 pinos de cabeçalho macho para fêmea. Um cabo USB é obrigatório neste projeto, pois iremos nos comunicar via monitor serial.

Sempre, alimente o modem GSM com um adaptador externo. A energia do arduino é insuficiente para o modem GSM, ele pode até sobrecarregar o regulador de tensão do arduino.

Isso é tudo sobre a parte de hardware. Agora, vamos passar para a codificação.

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

Não se esqueça do ponto (.) Em cada final da mensagem , caso contrário, não enviará a mensagem para o número prescrito no programa. Substitua x pelo seu número de telefone digital 10 no programa. Certifique-se de ter um plano de SMS em funcionamento no cartão SIM.

Se você não for da Índia, altere o código do país no programa.

Por exemplo:

Para o Reino Unido: +44
Para os EUA: +1
Para o Canadá: +1
Para a Rússia: +7

Você também pode automatizar a mensagem enviada pelo modem GSM, codificando o Arduino de maneira adequada. Você pode receber alertas de mensagens automatizadas em seu telefone, como: alerta anti-roubo, alerta de alarme de incêndio, alerta meteorológico em sua área local, etc.

Você pode até se conectar a internet com GPRS em modem GSM, mas é assunto para outro artigo.

Em um dos próximos artigos, aprenderemos Como receber SMS usando modem GSM e Arduino

Se você tiver mais perguntas sobre como enviar SMS usando o modem GSM, fique à vontade para perguntar na seção de comentários.

Como receber SMS usando o modem GSM

Na discussão acima, aprendemos como enviar uma mensagem de texto usando o modem GSM e também discutimos os fundamentos do modem GSM.

Nesta seção, discutiremos como receber SMS via monitor serial do IDE arduino. Não vamos apenas receber SMS, mas também enviar mensagens de texto pressionando diferentes teclas. Por um instante, pressionar “s” enviará uma mensagem de texto pré-inserida, pressionar “r” receberá SMS em tempo real.

Aqui está o protótipo do autor:

Como funciona

O circuito para receber SMS usando um moden GSM é muito simples, você só precisa de 3 pinos de cabeçalho macho para fêmea. O TX do modem GSM é conectado ao pino # 9 do arduino e o RX do modem GSM é conectado ao pino # 8 do arduino e a conexão terra a terra também é fornecida entre o GSM e o arduino.

Sempre use fonte de alimentação externa para modem GSM, não conecte 5Vcc do arduino ao modem GSM, pois há uma boa chance de sobrecarregar o regulador de tensão do arduino.

Não se esqueça de implementar um cortador de taxa de SMS ou algo semelhante em sua assinatura de SMS para reduzir suas despesas com SMS.

Caso contrário, você acabará esvaziando o saldo da conta após o envio de vários SMS, já que não haverá nenhum reconhecimento de sua operadora de celular após cada SMS enviado, pois o cartão SIM está no modem GSM.

O único aviso que você recebe é um SMS de aviso, sobre sua conta vazia, por isso tome cuidado com suas despesas. Agora vamos passar para a parte de codificação deste projeto.

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

Digitando os números de telefone

Digite o número de telefone do destinatário em “xxxxxxxxxxx” no programa com o código do seu país no início.

Insira o texto que deseja enviar no programa entre aspas: gsm.println ('Olá, sou o modem GSM !!!') // O texto SMS que deseja enviar

Compile o programa e faça upload para o arduino.

Insira o cartão SIM e ligue o modem GSM com fonte de alimentação externa e pressione o botão liga / desliga por 3 segundos (dependendo do modelo), aguarde de 10 a 20 segundos para estabelecer a rede móvel, o LED de rede deve piscar uma vez a cada 3 segundos. Se tudo o que foi declarado acima estiver feito, estamos prontos para a próxima etapa.

Agora abra o monitor serial e pressione “r” o modem GSM está pronto para receber SMS. Agora envie uma mensagem de texto de qualquer celular para o número do SIM que está inserido no modem GSM.
A mensagem de texto deve aparecer no monitor serial, algo semelhante ao ilustrado abaixo:

O “Hello world” é a mensagem enviada para o modem GSM e o número de onde a mensagem de texto é enviada também é exibido.

Agora, vamos enviar SMS para o número pré-inserido no programa com a mensagem pré-inserida. Pressione “s” e você verá algo semelhante ilustrado abaixo: O SMS enviado é “Olá, sou o modem GSM”.

Agora você sabe enviar e receber SMS usando o modem GSM.




Anterior: Circuito Controlador de Motor Bluetooth Próximo: Como projetar um circuito de aquecimento por indução