Circuits4you.com

o modem GSM, telefones fornece um baixo custo, longo alcance, canal de comunicação sem fio para incorporado, aplicações baseadas em microcontrolador que precisam de conectividade em vez de altas taxas de dados. Máquinas como refrigeradores industriais, freezers, HVAC, monitoramento e máquinas de venda automática, serviço de veículos, sistema de aviso, sistema de Segurança, Controle Remoto etc. pode se beneficiar de estar conectado a um modem GSM.

este tutorial descreve como usar um AVR para controlar um modem GSM usando comandos AT. A interface entre modem e host é um protocolo textual chamado AT-Commands. Esses comandos permitem a configuração do modem GSM, Discagem, Mensagens de texto etc. Esta aplicação particular conecta um AVR ATmega8 e SIM300, módulo SIM900 usando uma conexão RS232. A maioria dos modems GSM tem os mesmos comandos AT.

Conteúdo

• Tipos de Modem GSM
• Pontos a considerar ao escolher o modem GSM
• Interface para modems GSM.
• implementação do conjunto de comandos AT.
• compressão e descompressão de string PDU.
* transmissão SMS, como enviar e receber.

tipos de Modems GSM

existem muitos modems GSM disponíveis no mercado Simcom SIM300, SIM900 e Quectel M10. vamos rever em suas características

Pontos a considerar ao escolher o Modem GSM

Há de maio de modems GSM disponíveis no mercado, estes são SIM300, SIM900 e SIM900A, Quectel M10 é muito confiável e um pouco caro. SIM300 é um modem mais antigo agora está se tornando absoluto.

  1. exigência de Alimentação
  2. Disponível interface UART TTL () ou RS232
  3. Tamanho
  4. Preço
  5. interface de Áudio (MIC/SPK)

Exigência de alimentação

Mais de modem GSM exigir 4.2 V para operar e que eles são compatíveis com 5 V e 3,3 V alguns modems são também disponíveis em 3,3 V. dependendo do seu microcontrolador requisito escolha correta do modem. O modem GSM requer mais corrente ao enviar SMS, fazer chamadas e durante o registro na rede. Lembre – se sempre usar 2 Amp Fonte de alimentação. A maioria das novas pessoas comete erros na seleção da fonte de alimentação correta, o que causará problemas ou redefinição do modem durante o envio de SMS.

Interface Disponível UART (TTL) ou RS232

como estamos usando AVR ATmega8 preferimos a interface TTL UART. A maioria dos Modem GSM tem interface RS232 e UART (TTL).

poucos Modem GSM vem com Interface USB também, quando você está fazendo interface Modem GSM com PC Usar Interface USB. Ele elimina a necessidade de conversor USB para serial e alguns modems são alimentados por USB, portanto, não há necessidade de fonte de alimentação externa.

Tamanho, preço

o tamanho e o preço de cada modem variam de acordo com o uso do fabricante de componentes externos.

Interface De Áudio(MIC / SPK)

a interface de áudio é necessária se você estiver usando o Modem GSM para fazer chamadas ou fazer interface com o decodificador DTMF para fazer o sistema IVRS.

interface de Modem GSM

Antes de nos conectarmos ao ATmega8 com modem GSM, vamos dar uma olhada em vários Modems GSM. Estes todos os modem GSM têm capacidade GPRS não há necessidade de modem GPRS separado.

como você vê neste modem GSM Quectel M10, não temos acesso à conexão TTL (Rx, Tx) precisamos de conversor de nível RS232 construído usando MAX232.

Quectel M10
Quectel M10

SIM300 é absoluto podemos não conseguir isso no mercado. Ele usa o regulador linear LM317 para fazer sua fonte de alimentação, é melhor ter conversor DC-DC ou regulador de comutação para melhores resultados.

SIM300 Modem
SIM300 Modem

Vamos usar este modem GSM. Ele está tendo TTL Rx, Tx saída . A interface do Modem GSM com microcontrolador é apenas conectar essas linhas Rx, Tx com microcontroladores UART.

SIM900A modem GSM
SIM900A modem GSM

Modem GSM Conexões com o ATmega8

Modem GSM Interface
Modem GSM Interface

Comandos

O protocolo utilizado pelo GSM modems para configuração e controle é baseado em um conjunto de Comandos. Os comandos específicos do modem GSM são adaptados aos serviços oferecidos por um modem GSM, como: mensagens de texto, ligar para um determinado número de telefone, excluir locais de memória etc. Como o objetivo principal deste tutorial é mostrar como enviar e receber mensagens de texto, apenas um subconjunto do conjunto de comandos AT precisa ser implementado. O European Telecommunication Standard Institute (ETSI) GSM 07.05 define a interface AT-Command para modems compatíveis com GSM. Neste tutorial, alguns comandos selecionados são escolhidos e apresentados brevemente nesta seção. Este subconjunto de comandos permitirá que o modem envie e receba mensagens SMS.

os comandos podem ser experimentados conectando um modem GSM a uma das portas COM do PC. Use o hyper terminal ou qualquer software de Terminal Serial para dar comandos AT ao Modem GSM.

Comando Descrição
EM Verifique se a interface serial e o modem GSM está trabalhando.
Ate0 desligue o echo, menos tráfego na linha serial.
AT + CMTI exibição de novos SMS recebidos.
AT + CPMS seleção de memória SMS.
em + CMGF formato de string SMS, como eles são compactados.
AT + CMGR leia uma nova mensagem de um determinado local de memória.
AT+CMGS Enviar mensagem para um determinado destinatário.
EM+CMGD Excluir mensagem.

Status (AT)

o comando” AT ” é uma solicitação de status usada para testar se um modem compatível está conectado e se a interface serial está funcionando corretamente.

comando: “AT”
resposta: “OK”
conectado e funcionando
resposta: “ERROR”
Serial line OK modem error

Echo off (ATE0)

o comando “ATE0” é usado para configurar a comunicação. Por padrão, os modems GSM são definidos para ecoar qualquer comando recebido de volta com uma confirmação.

com echo off, “ATE0”, o modem teria respondido “OK” ao executar “AT”. O comando echo off reduzirá o tráfego na linha serial. O comando “ATE1” ativará o echo novamente.

ATE0

mantenha sempre o echo desligado “ATE0” para simplificar a comunicação serial com o controlador.

at+CMGF selecione o formato da mensagem SMS

o comando “AT + CMGF” é usado para definir o formato de entrada e saída das mensagens SMS. Dois modos estão disponíveis:

• modo PDU: ler e enviar SMS é feito em um formato codificado especial.

* modo de texto: ler e enviar SMS é feito em texto simples.

sempre defina-o para o modo de texto para simplicidade

AT+CMGF=1

0 é o modo PDU, 1 é o modo de texto.

mensagem de leitura(AT+CMGR)

o comando “AT+CMGR” é usado para ler uma mensagem de um determinado local de memória. A execução de “AT + CMGR” retorna uma mensagem em Da memória selecionada .

por exemplo, lendo a partir do local 1

AT+CMGR=1

Escrever mensagem na memória(AT+CMGW)

este comando permite ao usuário enviar mensagens SMS.

AT + CMGW = 1 / / escreve mensagem para o local 1

enviar mensagem SMS do armazenamento (AT+CMSS)

envia SMS armazenados.

AT+CMSS=1 //Enviar SMS a partir da localização 1

Envio de SMS usando o Microcontrolador AVR Código

no seu main() sub-rotina inicializar série e chamar sendSMS() para enviar SMS

void sendSMS(){ senddata("AT+CMGD=1"); USART_Transmit(13); USART_Transmit(10); delay_ms(1000); senddata("AT+CMGF=1"); USART_Transmit(13); USART_Transmit(10); delay_ms(1000); senddata("AT+CMGW="); USART_Transmit(34); senddata("+919812345678"); //Enter Your Mobile number USART_Transmit(34); USART_Transmit(13); USART_Transmit(10); delay_ms(1000); senddata("Alert: Fire Detected"); USART_Transmit(13); USART_Transmit(10); delay_ms(1000); USART_Transmit(26); //Cntrl+Z delay_ms(1000); delay_ms(1000); senddata("AT+CMSS=1"); USART_Transmit(13); USART_Transmit(10); delay_ms(1000);}void delay_ms(unsigned int de){unsigned int rr,rr1; for (rr=0;rr<de;rr++) { for(rr1=0;rr1<30;rr1++) //395 { asm("nop"); } }}void USART_Transmit(char data ){ UDR = data; /* Wait for empty transmit buffer */ while ( !( UCSRA & (1<<UDRE)) ) ; /* Put data into buffer, sends the data */}void senddata(char string){ int len,count; len = strlen(string); for (count=0;count<len;count++) { USART_Transmit(string); }}void USART_Init(){/* Set baud rate */ UBRRH = 0x00; //12, 9600 Baud At 1MHz UBRRL =12; //Set double speed enabled UCSRA |= (1<<U2X);/* Enable receiver and transmitter */ UCSRB = (1<<RXEN)|(1<<TXEN);/* Set frame format: 8data, 2stop bit */ UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);//Set interrupt on RX// UCSRB |= (1<<RXCIE);}

Envio de SMS usando o Arduino

void setup() { Serial.begin(9600);}void loop() { sendSMS(); //Send SMS delay(5000); //Wait for few seconds}void sendSMS(){ Serial.println("AT+CMGD=1"); //Delete privious sent SMS delay(1000); Serial.println("AT+CMGF=1"); //Set SMS configuration delay(1000); Serial.print("AT+CMGW="); //Write New SMS Serial.write(34); //Double quotes ASCII Code Serial.print("+9198--------"); //Enter Your Mobile number Serial.write(34); Serial.println(); //Send Crrige return delay(1000); Serial.println("Your message here"); //SMS Message to be sent delay(1000); Serial.write(26); //Cntrl+Z character code delay(1000); delay(1000); Serial.println("AT+CMSS=1"); //Send SMS from memory location 1 delay(4000);}

Agora é claro que agora podemos enviar SMS usando o Arduino e o Microcontrolador AVR com simples interface serial com modem GSM.

Deixe uma resposta

O seu endereço de email não será publicado.