O módulo GSM é usado em muitos dispositivos de comunicação baseados na tecnologia GSM (Global System for Mobile Communications). Ele é usado para interagir com a rede GSM usando um computador. O módulo GSM só entende comandos AT e pode responder de acordo. O comando mais básico é “AT”, se o GSM responder OK então está funcionando bem, caso contrário, responde com “ERROR”. Existem vários comandos AT como ATA para atender uma chamada, ATD para discar uma chamada, AT + CMGR para ler a mensagem, AT + CMGS para enviar o sms, etc. Os comandos AT devem ser seguidos por Retorno de carro ie \ r (0D em hexadecimal), como “AT + CMGS \ r”. Podemos usar o módulo GSM usando esses comandos.
Interface GSM com 8051
Em vez de usar o PC, podemos usar microcontroladores para interagir com o módulo GSM e LCD para obter a resposta do módulo GSM. Portanto, faremos a interface do GSM com um microcontrolador 8051 (AT89S52). É muito fácil fazer a interface do GSM com o 8051, só precisamos enviar comandos AT do microcontrolador e receber a resposta do GSM e exibi-la no LCD. Podemos usar a porta serial do microcontrolador para se comunicar com o GSM, meio usando o PIN 10 (RXD) e 11 (TXD).
Primeiro, precisamos conectar o LCD ao 8051, você pode aprender aqui: Interface do LCD com o microcontrolador 8051. Então precisamos conectar o módulo GSM ao 8051, agora aqui devemos prestar atenção. Primeiro, você precisa verificar se o seu módulo GSM é capaz de funcionar na lógica TTL ou apenas com RS232. Basicamente, se o seu módulo tiver pinos RX e TX (com GND) na placa, ele pode funcionar na lógica TTL. E se não tiver nenhum pino RX, TX e tiver apenas uma porta RS232 (porta serial com 9), você precisará usar o CI MAX232 para conectar a porta serial ao microcontrolador. Basicamente MAX232usado para converter dados seriais em lógica TTL porque o microcontrolador só pode funcionar na lógica TTL. Mas se o módulo GSM tiver pinos RX, TX, então você não precisa usar MAX232 ou qualquer conversor serial, você pode conectar diretamente RX de GSM para TX (PIN 11) de 8051 e TX de GSM para RX (PIN 10) de 8051 No nosso caso, usei o módulo SIM900A e ele tem pinos RX, TX, então não usei o MAX232.
O diagrama de circuito para interface GSM com microcontrolador AT89S52 é mostrado na figura acima. Agora, após a conexão, precisamos apenas escrever um programa para enviar comandos AT para o GSM e receber sua resposta no LCD. Existem muitos comandos AT conforme descrito acima, mas nosso escopo deste artigo é apenas fazer a interface do GSM com 8051, portanto, enviaremos apenas o comando “AT” seguido por “\ r” (0D em hex). Isso nos dará uma resposta “OK”. Mas você pode estender este programa para usar todas as facilidades do GSM.
Explicação do código
Além de todas as funções relacionadas ao LCD, aqui usamos a porta serial e o registro do modo do temporizador (TMOD). Você pode aprender sobre as funções do LCD e outros códigos passando por nossa seção de projetos do 8051, aqui estou explicando sobre as funções de código relacionadas à comunicação serial:
Função GSM_init ():
Esta função é usada para definir a taxa de transmissão do microcontrolador. A taxa de transmissão nada mais é do que os bits / segundo transmitidos ou recebidos. E precisamos combinar a taxa de transmissão de 8051 com a taxa de Baud do módulo GSM, ou seja, 9600. Usamos o Timer 1 no Modo 2 (modo de recarga automática de 8 bits) configurando o registro TMOD para 0X20 e byte mais alto do Timer 1 (TH1) para 0XFD para obter a taxa de transmissão de 9600. Também o registro SCON é usado para definir o modo de comunicação serial, usamos o Modo 1 (UART de 8 bits) com o recebimento habilitado.
Função GSM_write:
SBUF (registro de função especial de buffer serial) é usado para comunicação serial, sempre que quisermos enviar qualquer byte para um dispositivo serial, colocamos esse byte no registro SBUF, quando o byte completo foi enviado, o bit TI é definido pelo hardware. Precisamos redefini-lo para enviar o próximo byte. É um sinalizador que indica que o byte foi enviado com sucesso. TI é o segundo bit do registro SCON. Enviamos “AT” usando esta função.
Função GSM_read:
Da mesma forma que o envio, sempre que recebermos algum byte de um dispositivo externo esse byte for colocado no registro SBUF, só precisamos lê-lo. E sempre que o byte completo for recebido, o bit RI é definido pelo hardware. Precisamos redefini-lo para receber o próximo byte. RI é o primeiro bit do registro SCON. Lemos a resposta “OK” usando esta função.