Como fazer chamadas telefônicas a partir do módulo GSM usando Arduino- (Parte 45/49)

Pode-se usar um telefone celular com qualquer rede celular ao redor do mundo se o cartão SIM adequado estiver inserido nele. Isso é possível porque existe algum dispositivo dentro do celular que segue um padrão global que permite a conexão com diferentes redes celulares. Este padrão é denominado Sistema Global para Comunicações Móveis (GSM). Os telefones celulares possuem módulos GSM integrados que podem ser utilizados pelo processador interno do telefone para fazer uma chamada, enviar ou receber mensagens ou até mesmo conectar-se à rede GPRS.

Em certas aplicações, os sistemas baseados em microcontroladores têm de estar ligados à rede GSM, o que permitirá ao utilizador controlar o sistema enviando mensagens ou fazendo uma chamada. Os sistemas também podem enviar mensagens ao usuário para alertar ou informar sobre o status do sistema em execução. Em todos estes casos é utilizado um módulo GSM separado em vez de utilizar os telemóveis. Existem módulos GSM disponíveis que podem fazer comunicação serial com sistemas baseados em microcontroladores. A comunicação é feita enviando ou recebendo Comandos AT.

Este projeto específico demonstra como fazer interface de um módulo GSM com Arduino e faça com que eles liguem para um número de celular específico. O módulo GSM neste projeto faz interface com a plataforma de prototipagem fácil Arduino, que torna o circuito de hardware simples e fácil de escrever um código usando o ambiente de programação baseado em C.

O módulo GSM utilizado neste projeto é um módulo baseado em SIM900 que pode se comunicar com outros dispositivos usando a porta de comunicação serial RS232. Funciona com fonte de alimentação de 9V e a imagem do mesmo é mostrada abaixo:

 Módulo SIM900 GSM conectado ao pino Tx do módulo da placa Arduino através de Max232

Fig. 2: Módulo GSM SIM900 conectado ao pino Tx do módulo da placa Arduino através de max232

O Arduino é um hardware de código aberto onde o esquema de hardware é aberto, qualquer pessoa pode usar esse esquema para desenvolver sua placa Arduino e distribuí-la. O Arduino IDE também é de código aberto e qualquer pessoa pode contribuir com suas bibliotecas para o Arduino. Todas as placas Arduino devem ser compatíveis com o Arduino IDE, que pode ser usado para programar as placas Arduino.

A placa Arduino usada neste projeto é a placa Arduino pro-mini e a versão IDE do Arduino é 1.0.3 para Windows. A imagem da placa Arduino pro-mini e do Arduino IDE é mostrada abaixo:

Fig. 3: Placa Arduino Pro-Mini típica

Fig. 4: Janela do software Arduino IDE

Como a placa arduino pro-mini não possui circuito para interface com a porta serial ou porta USB do PC, uma placa conversora USB para TTL externa é necessária para conectá-la ao PC. Este hardware auxilia na programação da placa Arduino e também auxilia na comunicação serial com a porta USB do PC.

5: Placa conversora USB para TTL externa para programação Arduino e comunicação serial

Presume-se que o leitor tenha passado pelo projeto de como começar a usar o arduino e experimentado todas as coisas discutidas lá.

A placa Arduino pode atuar como um sistema autônomo com capacidade de receber entradas, processar a entrada e então gerar uma saída correspondente. É através dessas entradas e saídas que o Arduino como sistema pode se comunicar com o ambiente. As placas Arduino se comunicam com outros dispositivos usando portas de comunicação padrão de entrada/saída digital, como USART, IIC e USB, etc.

Neste projeto específico, o módulo GSM é conectado à placa Arduino usando a porta de comunicação serial. Como o módulo possui porta RS232 e o Arduino pro-mini pode se comunicar usando níveis lógicos TTL, um IC max232 é usado para fazer uma conversão bidirecional entre os níveis lógicos RS232 e TTL. O pino Tx da placa Arduino é conectado ao pino Rx do módulo GSM através do max232 e o pino Rx do Arduino é conectado ao pino Tx do módulo GSM usando o próprio max232.

O código escrito no Arduino é capaz de se comunicar com o módulo GSM usando Comandos AT. O Comandos AT são enviados ou recebidos do módulo usando as funções de comunicação serial fornecidas pela biblioteca Arduino. As funções como Serial.begin que ajuda a inicializar a porta serial com uma determinada taxa de transmissão, Serial.write para enviar dados para a porta serial, funções Serial.available e Serial.read para ler dados da porta serial são usados ​​​​neste projeto e já foram discutidos em projetos anteriores sobre como fazer comunicação serial com o Arduino, como enviar e receber dados seriais usando o Arduino e como fazer depuração serial com o Arduino.

Os módulos GSM respondem “OK” quando recebem o comando “AT” e é a melhor forma de verificar a comunicação entre o módulo e o microcontrolador. O comando para fazer uma chamada para um número é “ATD”;

SINTAXE: ATD;(Enter)

Por exemplo,

ATD123456789;

Tente enviar o comando pelo PC com o auxílio de algum software de monitoramento serial e certifique-se de que o módulo está fazendo uma chamada para o número especificado. Em seguida, pode-se verificar e fazer upload do código que pode enviar os mesmos comandos para a placa Arduino conforme explicado no projeto como começar a usar o Arduino. Assim que a placa for reiniciada após o upload do código com sucesso, o Arduino envia o mesmo comando para o módulo GSM permitindo que ele faça uma chamada de voz para o número especificado no código.

Certifique-se de que o módulo GSM foi ligado pelo menos 2 minutos antes da placa Arduino começar a enviar os comandos para que o GSM estabeleça comunicação com a rede celular correspondente ao cartão SIM nele inserido.

Código fonte do projeto

###




/*============================ EG LABS ===================================//

 Demonstration on how to interface GSM module and make a call


 The circuit:

 LCD:

 * LCD RS pin to digital pin 12

 * LCD Enable pin to digital pin 11

 * LCD D4 pin to digital pin 7

 * LCD D5 pin to digital pin 6

 * LCD D6 pin to digital pin 5

 * LCD D7 pin to digital pin 4

 * LCD R/W pin to ground

 * 10K resistor:

 * ends to +5V and ground

 * wiper to LCD pin 3

 * LED anode attached to digital output 9

 * LED cathode attached to ground through a 1K resistor


 GSM:

 RX PIN OF GSM TO TX0 PIN OF ARDUINO 

 SHORT THE GROUND PINS OF ARDUINO AND GSM

============================== EG LABS ===================================*/


#include 

// initialize the library with the numbers of the interface pins

LiquidCrystal lcd(12, 11, 7, 6, 5, 4);


// give the pin a name:

int led = 9;


void setup 

{

  pinMode(9, OUTPUT);     

  lcd.begin(16, 2);

  lcd.print("ENGINEERS GARAGE");

  lcd.setCursor(0, 1);

  lcd.print("   GSM CALLING  ");

  

  // initialize the led pin as an output.

  pinMode(led, OUTPUT);  

  // start serial port at 9600 bps

  Serial.begin(9600);

  // wait for a while till the serial port is ready

  delay(100);


  Serial.print("ATD09895941988;nr"); 

}


void loop 

{

    digitalWrite(led, HIGH);       

    delay(1000);                  

    digitalWrite(led, LOW);       

    delay(1000);                

}

###

Diagramas de circuito

Diagrama de circuito para fazer chamadas telefônicas usando Arduino

Componentes do Projeto

  • Arduino ProMini
  • Capacitor
  • LCD
  • LIDERADO
  • MÁX232
  • Potenciômetro
  • Resistor

Vídeo do projeto

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.