Programação RPi Python 21: Os comandos SIM900A AT

Programação RPi Python 21: Os comandos SIM900A AT

No tutorial anterior, abordamos como fazer a interface de um modem SIM900A GSM-GPRS com Raspberry Pi, Arduino e computadores desktop. SIM900A pode comunicar dados com o dispositivo de controle através do receptor/transmissor assíncrono universal (UART), protocolo I2C ou SPI.

O modem é um equipamento móvel com número IMEI capaz de realizar todas as operações do celular (chamadas de voz, SMS, MMS, fax e Internet). Ele “compreende” comandos AT e pode ser configurado e operado passando esses comandos para ele.

Houve um tempo em que os telefones celulares (como os aparelhos Nokia) eram construídos conectando diretamente uma tela, teclado, alto-falantes, microfone e sistema de bateria a esses modems. Agora, os smartphones são construídos com processadores de última geração que executam sistemas operacionais móveis complexos (iOS, Android, Windows).

Um processador de plataforma móvel faz interface com o seguinte para construir um computador portátil completo que é um smartphone.:

  • BATER
  • ROM
  • Uma tela sensível ao toque
  • Uma unidade de processamento gráfico (GPU) dedicada
  • Microfone e alto-falantes
  • Câmera e sensores
  • Uma unidade de processamento neural (NPU) para inteligência artificial
  • Um sistema de bateria e um modem sem fio, como um modem 4G/5G. (Mesmo em smartphones, existe o modem sem fio que oferece uma solução celular completa.)

Os modems sem fio se comunicam através dos comandos AT, que são uma abreviatura de “atenção”. Esses comandos servem como instruções que controlam o modem sem fio. Módulos sem fio, como o SIM900A, são essencialmente equipamentos móveis com acesso ao console.

O console se comunica e responde aos comandos AT, que podem ser trocados com um modem usando o interface serial (UART), I2C ou SPI. O dispositivo de controle pode ser qualquer microcontrolador ou computador. Muito parecido com o tutorial anterior – onde discutimos como fazer a interface do SIM900A com Raspberry PiArduino ou outros microcontroladores, incluindo computadores desktop que usam placas seriais USB — o modem também pode ser controlado por todos esses dispositivos.

Compreendendo os comandos AT
Os comandos AT são instruções para um modem sem fio. Os comandos AT básicos são um subconjunto do comando Hayes. Existem também comandos AT que são implementados em conformidade com a solução celular (como GSM-GPRS, GSM-GPRS+GNSS, WCDMA/HSPA/HSPA+, 4G/LTE e CAT/NB-IoT).

O fabricante do modem também pode implementar um subconjunto de comandos AT em um modem específico. Por exemplo, a forma como os comandos AT básicos e estendidos são implementados em um modem podem diferir de um fornecedor para outro.

Cada modem possui e responde ao seu próprio conjunto de instruções. Os comandos AT são os mesmos para um modem sem fio ou telefônico. Semelhante a um processador que recebe instruções e gera resultados por meio de portas paralelas (ou, em alguns casos, por meio de portas seriais), um modem recebe comandos e responde a eles por meio de interfaces seriais padrão (como UART, SPI e I2C).

O modem SIM900A suporta comandos AT em conformidade com:

  • A UIT-T (União Internacional de Telecomunicações, setor de Telecomunicações)
  • O documento V.25TER
  • O ETSI GSM07.07 (ou seja, o comando AT padrão ETSI é definido para equipamentos móveis GSM)
  • O ETSI GSM07.05 (ou seja, o padrão ETSI é para serviço de mensagens curtas ou SMS)
  • Serviço de transmissão celular (ou CBS)

Ele também implementa os comandos AT para o kit de ferramentas de aplicativos SIM, suporte GPRS, kit de ferramentas de aplicativos TCP/IP e aplicativos IP, HTTP e FTP – e possui comandos AT adicionais implementados por seu fornecedor SIMCOM.

No entanto, o modem pode não suportar todos os comandos AT sob as especificações ITU-T e ETSI e apenas um subconjunto deles. Os comandos AT suportados podem ser usados ​​para configurar um modem e acessar serviços, como chamadas de voz, SMS, MMS, faxes e link de dados através dos protocolos TCP/IP, IP, HTTP e FTP.

Os tipos de comandos AT
Os comandos AT básicos são um subconjunto dos Comandos Hayes. Os outros são chamados de comandos AT estendidos.

Existem quatro tipos de comandos AT básicos:

1. Comandos de teste: usado para testar a compatibilidade de um comando com um modem e para confirmar se um comando foi implementado ou é suportado pelo modem. O modem pode responder com um OK ou uma configuração suportada do comando em resposta ao comando de teste. Esses comandos estão no formato AT+=? onde é o comando.

2. Leia os comandos: usado para conhecer as configurações do telefone celular ou modem. Esses comandos estão no formato AT+? onde é o comando.

3. Defina comandos: usado para modificar as configurações do telefone celular ou modem. Esses comandos incluem parâmetros que devem ser definidos para alterar uma configuração específica de telefone/modem. Eles estão no formato AT+= onde é o comando e são os argumentos opcionais. Se os argumentos não forem passados ​​no comando, o modem assume o modo padrão.

4. Comandos de execução: usado para executar uma operação celular, como fazer ou atender uma chamada de voz, ler, enviar ou excluir um SMS, etc. Esses comandos estão no formato AT+ onde é o comando.

A sintaxe dos comandos AT

Todos os comandos AT começam com o prefixo “AT” ou “at” e terminam com uma entrada de linha de comando . É por isso que esses comandos são chamados de comandos AT.

A resposta do modem vem no formato .

Os comandos AT do SIM900A podem ser divididos em três subconjuntos:

1. Sintaxe básica: estão no formato “AT” onde é o comando e são os argumentos opcionais. Se os argumentos não forem passados, os argumentos padrão serão automaticamente usados ​​pelo modem.

2. Sintaxe do parâmetro S: estão no formato “ATS=” onde é o índice do registro S a ser definido e é o valor a ser atribuído a ele. O é opcional e caso o valor não seja passado os valores padrão são assumidos pelo modem.

3. Sintaxe estendida: são sintaxe para comandos AT estendidos. A sintaxe para comandos de teste, leitura, configuração e execução é mencionada acima.

Portanto, os comandos básicos utilizam uma sintaxe de parâmetro básica ou S e os comandos AT estendidos utilizam uma sintaxe diferente, de acordo com seu tipo.

O buffer de linha de comando do modem SIM900 pode aceitar no máximo 556 caracteres. É possível passar um único ou vários comandos em uma linha. Se a linha exceder 556 caracteres, entretanto, nenhum dos comandos será executado e o modem retornará “ERRO”.

Se um único comando for passado em uma linha, outro comando não poderá ser passado até que a resposta do modem seja recebida. Se vários comandos forem passados ​​em uma linha, o “AT” ou “at” deve ser prefixado no início da linha.

Os comandos de sintaxe básicos e de parâmetro s não devem ser delimitados, mas todos os comandos AT estendidos devem ser delimitados por ponto e vírgula (;) na linha. A linha também deve terminar com a linha de comando enter para passar todos os comandos ao modem.

Os comandos SIM900 AT são padronizados para o conjunto de caracteres IRA. Os outros conjuntos de caracteres suportados pelo modem SIM900 incluem:

  • Formato GSM
  • UCS2
  • HEX
  • PCCP
  • PCDN
  • 8859-1

O conjunto de caracteres afeta o SMS, as mensagens de difusão de células SMS, as entradas da agenda telefônica e as sequências alfa do kit de ferramentas do aplicativo SIM. O conjunto de caracteres em uso pelo modem pode ser interrogado usando o comando AT “AT+CSCS”.

A lista de comandos AT
O modem SIM900 suporta os seguintes comandos AT básicos:

Esta lista é relativamente curta e apresenta apenas alguns dos comandos mais comuns. O modem SIM900 suporta centenas de comandos AT de acordo com diferentes especificações.

Os comandos AT para chamadas de voz
Estes comandos AT são úteis para fazer e receber chamadas de voz usando um modem SIM900:

Os comandos AT para mensagens SMS

Estes comandos AT são úteis para enviar e receber mensagens SMS usando um modem SIM900:

Os comandos AT para link de dados através de um protocolo HTTP
Em um protocolo HTTP, os dados podem ser comunicados usando dois métodos:

1. Método GET – usado para obter dados do servidor
2. Método POST – usado para postar dados no servidor

Mas primeiro, o modem deve conectar-se a um GPRS configurando um perfil de portador.

Esses comandos AT podem ajudar:

Estes comandos AT são úteis para obter dados do servidor usando o método HTTP GET:

Estes comandos AT são úteis para obter dados do servidor usando o método HTTP GET:

Os comandos AT para um link de dados através do protocolo TCP/IP
O modem SIM900 também suporta um link de dados através do protocolo TCP/IP. O modem pode conectar-se através do protocolo TCP/IP em dois modos:

1. Modo de conexão única – apenas uma conexão pode ser estabelecida
2. Modo multi-conexão – um máximo de oito conexões podem ser estabelecidas

A aplicação TCP/IP também pode ter dois modos: transparente e não transparente. No modo multiconexão, o SIM900A funciona apenas no modo de aplicação não transparente.

Estes comandos AT são úteis para comunicação como cliente TCP do modem para um servidor:

Como enviar comandos AT de um programa de usuário
Os comandos AT podem ser enviados para um modem sem fio através de um programa de usuário, como um script Python e como bytes. Uma linguagem de programação pode usar uma sequência de escape para a entrada da linha de comando.

Por exemplo, em Python3, a linha de comando enter pode ser passada serialmente usando um retorno de carro, para o qual '\r' é a sequência de escape. No Python2, para a entrada da linha de comando, o '\r\n' é a sequência de escape.

Em um programa de usuário, as funções de manipulação de strings podem ser usadas para codificar e decodificar adequadamente os comandos AT e suas respostas. As funções de manipulação de strings são particularmente úteis quando caracteres, como CTRL+Z (substituto), devem ser passados ​​junto com o comando AT.

Por exemplo, em Python3, a função str.encode pode ser usada para codificar os comandos AT em um script (programa do usuário). CTRL+Z pode ser passado usando a função char com 26 como argumento — como char(26) ou char(0x1A).

No próximo tutorial, aprenderemos como fazer e receber chamadas e como enviar e receber SMS no Raspberry Pi e em um computador desktop usando o modem SIM900A.

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.