Circuits4you.com

Il modem GSM, telefoni fornisce un basso costo, a lungo raggio, canale di comunicazione wireless per embedded, applicazioni basate su microcontrollore che hanno bisogno di connettività piuttosto che ad alta velocità di trasmissione dati. Macchinari come frigoriferi industriali, congelatori, HVAC, monitoraggio e distributori automatici, servizio del veicolo, sistema di allarme, sistema di sicurezza, telecomando ecc. potrebbe beneficiare di essere collegato a un modem GSM.

Questo tutorial descrive come utilizzare un AVR per controllare un modem GSM utilizzando i comandi AT. L’interfaccia tra modem e host è un protocollo testuale chiamato AT-Commands. Questi comandi consentono la configurazione del modem GSM, la composizione, la messaggistica di testo, ecc. Questa particolare applicazione collega un modulo AVR ATmega8 e SIM300, SIM900 utilizzando una connessione RS232. La maggior parte dei modem GSM hanno stessi comandi AT.

Contenuto

• Tipi di modem GSM
• Punti da considerare mentre si sceglie modem GSM
• Interfaccia per modem GSM.
• Implementazione del set di comandi AT.
• Compressione e decompressione delle stringhe PDU.
* Trasmissione SMS, come inviare e ricevere.

Tipi di modem GSM

Ci sono molti modem GSM sono disponibili nel mercato Simcom SIM300, SIM900 e Quectel M10. consente di rivedere le sue caratteristiche

Punti da considerare mentre la scelta Modem GSM

Ci sono maggio modem GSM disponibili nel mercato questi sono SIM300, SIM900 e SIM900A, Quectel M10 è molto affidabile e un po ‘ costoso. SIM300 è il modem più vecchio ora sta diventando assoluto.

  1. requisito di Alimentazione
  2. Disponibile con interfaccia UART TTL) o RS232
  3. Dimensione
  4. Prezzo
  5. interfaccia Audio (MIC/SPK)

Requisito di alimentazione

la Maggior parte dei modem GSM richiedono 4.2 V per funzionare e sono compatibili con 5V e 3.3 V alcuni modem sono disponibili anche in 3.3 V. a seconda del vostro microcontrollore requisito di scegliere il modem corretto. Modem GSM richiede più corrente durante l’invio di SMS, effettuare chiamate e durante la registrazione sulla rete. Ricordate sempre utilizzare 2 Amp di alimentazione. La maggior parte delle nuove persone commettono errori nella selezione corretta alimentazione questo causerà problema o modem reset durante l’invio di SMS.

Disponibile interfaccia UART (TTL) o RS232

Come stiamo usando AVR ATmega8 preferiamo TTL interfaccia UART. La maggior parte dei modem GSM hanno RS232 e UART (TTL) interfaccia.

Pochi Modem GSM viene fornito con interfaccia USB anche, quando si sta interfacciando Modem GSM con PC utilizzare l’interfaccia USB. Elimina la necessità di convertitore da USB a seriale e pochi modem sono alimentati via USB, quindi non c’è bisogno di alimentazione esterna.

Dimensioni, Prezzo

Dimensioni e prezzo di ogni modem varia in base al suo uso produttore di componenti esterni.

Interfaccia audio (MIC / SPK)

Interfaccia audio è necessario se si utilizza Modem GSM per effettuare chiamate o per interfacciarsi con DTMF decoder per fare sistema IVRS.

Modem GSM Interfacciamento

Prima di collegare ATmega8 con modem GSM consente di dare un’occhiata a vari modem GSM. Questi tutti i modem GSM hanno capacità GPRS non c’è bisogno di modem GPRS separato.

Come si vede in questo modem GSM Quectel M10, non abbiamo accesso alla connessione TTL (Rx, Tx) abbiamo bisogno di convertitore di livello RS232 costruito utilizzando MAX232.

Quectel M10
Quectel M10

SIM300 è assoluto non possiamo ottenere questo nel mercato. Utilizza LM317 regolatore lineare per rendere la sua alimentazione, è meglio avere convertitore DC-DC o regolatore di commutazione per i migliori risultati.

SIM300 Modem
SIM300 Modem

Ci accingiamo a utilizzare questo modem GSM. Si sta avendo TTL Rx, uscita Tx . Interfacciamento del modem GSM con microcontrollore è solo il collegamento di questi Rx, linee Tx con microcontrollori UART.

SIM900A modem GSM
SIM900A modem GSM

Modem GSM Connessioni con ATmega8

Modem GSM Interfacciamento
Modem GSM Interfacciamento

Comandi AT

Il protocollo utilizzato dal modem GSM per l’installazione e il controllo si basa sul set di Comandi AT. I comandi specifici del modem GSM sono adattati ai servizi offerti da un modem GSM come: messaggi di testo, chiamata di un determinato numero di telefono, eliminazione di posizioni di memoria ecc. Poiché l’obiettivo principale di questo tutorial è quello di mostrare come inviare e ricevere messaggi di testo, solo un sottoinsieme del set di comandi AT deve essere implementato. L’European Telecommunication Standard Institute (ETSI) GSM 07.05 definisce l’interfaccia AT-Command per modem GSM compatibili. In questo tutorial vengono scelti alcuni comandi selezionati e presentati brevemente in questa sezione. Questo sottoinsieme di comandi consentirà al modem di inviare e ricevere messaggi SMS.

I comandi possono essere provati collegando un modem GSM a una delle porte COM del PC. Utilizzare hyper terminal o qualsiasi software terminale seriale per dare comandi AT al modem GSM.

Comando Descrizione
A Controllare se l’interfaccia seriale e modem GSM è in funzione.
ATE0 Spegnere echo, meno traffico sulla linea seriale.
AT + CMTI Visualizzazione di nuovi SMS in arrivo.
AT + CPMS Selezione della memoria SMS.
AT + CMGF Formato stringa SMS, come vengono compressi.
AT + CMGR Legge un nuovo messaggio da una determinata posizione di memoria.
AT + CMGS Invia un messaggio a un determinato destinatario.
AT + CMGD Elimina messaggio.

Status (AT)

Il comando “AT” è una richiesta di stato utilizzata per verificare se è collegato un modem compatibile e se l’interfaccia seriale funziona correttamente.

Comando: “AT”
Risposta: “OK”
Collegato e funzionante
Risposta: “ERROR”
Serial line OK modem error

Echo off (ATE0)

Il comando “ATE0” viene utilizzato per configurare la comunicazione. Per impostazione predefinita, i modem GSM sono impostati per riecheggiare qualsiasi comando ricevuto con un riconoscimento.

Con echo off, “ATE0″, il modem avrebbe risposto” OK “durante l’esecuzione di”AT”. Il comando echo off ridurrà il traffico sulla linea seriale. Il comando “ATE1” abiliterà nuovamente echo.

ATE0

Tenere sempre echo off “ATE0” per semplificare la comunicazione seriale con il controller.

AT+CMGF Selezionare Formato messaggio SMS

Il comando “AT+CMGF” viene utilizzato per impostare il formato di input e output dei messaggi SMS. Sono disponibili due modalità:

* Modalità PDU: la lettura e l’invio di SMS avviene in un formato codificato speciale.

• Modalità testo: la lettura e l’invio di SMS è fatto in testo normale.

Impostalo sempre in modalità testo per semplicità

AT + CMGF=1

0 è la modalità PDU, 1 è la modalità testo.

Leggi messaggio(AT+CMGR)

Il comando “AT+CMGR” viene utilizzato per leggere un messaggio da una determinata posizione di memoria. L’esecuzione di “AT + CMGR” restituisce un messaggio at dalla memoria selezionata .

Ad esempio leggendo dalla posizione 1

AT+CMGR=1

Scrivi messaggio in memoria(AT+CMGW)

Questo comando consente all’utente di inviare messaggi SMS.

AT + CMGW=1 / / Scrive il messaggio nella posizione 1

Invia un messaggio SMS dalla memoria (AT+CMSS)

Invia sms memorizzati.

A+CMSS=1 //Inviare SMS da posizione 1

Invio SMS tramite Microcontrollore AVR Codice

nel main() sottoprogramma inizializza seriale e chiamare sendSMS() per inviare 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);}

l’Invio di SMS tramite 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);}

Ora è chiaro che ora siamo in grado di inviare SMS utilizzando Arduino e Microcontrollore AVR con semplice interfaccia seriale con modem GSM.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.