Circuits4you.com

GSM-modemet, telefoner ger en låg kostnad, Lång räckvidd, trådlös kommunikationskanal för inbäddade, mikrokontroller baserade applikationer som behöver anslutning snarare än höga datahastigheter. Maskiner som industriella kylskåp, frysar, HVAC, övervakning och automater, fordonsservice, varningssystem, säkerhetssystem, fjärrkontroll etc. kan dra nytta av att vara ansluten till ett GSM-modem.

denna handledning beskriver hur man använder en ljud – / videomottagare för att styra ett GSM-modem med AT-kommandon. Gränssnittet mellan modem och värd är ett textprotokoll som kallas AT-kommandon. Dessa kommandon möjliggör GSM-modeminställning, uppringning, textmeddelanden etc. Denna speciella applikation ansluter en AVR ATmega8 och SIM300, SIM900-modul med en RS232-anslutning. De flesta GSM-Modem har samma AT-kommandon.

innehåll

• typer av GSM-Modem
• poäng att tänka på när du väljer GSM-modem
• gränssnitt till GSM-modem.
• implementering av AT-kommandouppsättning.

typer av GSM-modem

det finns många GSM-modem finns på marknaden Simcom SIM300, SIM900 och Quectel M10. låt oss granska dess funktioner

poäng att tänka på när du väljer GSM-Modem

det finns maj GSM-modem tillgängliga på marknaden dessa är SIM300, SIM900 och SIM900A, Quectel M10 är mycket pålitlig och lite dyr. SIM300 är äldre modem nu blir det absolut.

  1. Strömförsörjningskrav
  2. tillgängligt gränssnitt UART (TTL) eller RS232
  3. storlek
  4. pris
  5. ljudgränssnitt (MIC / SPK)

Strömförsörjningskrav

de flesta GSM-modem kräver 4.2 V för att fungera och de är kompatibla med 5V och 3.3 V vissa modem finns också i 3.3 V. beroende på ditt mikrokontroller krav Välj rätt modem. GSM-modem kräver mer ström när du skickar SMS, ringer och under registrering i nätverket. Kom ihåg att alltid använda 2 Amp strömförsörjning. De flesta nya människor gör misstag i att välja rätt strömförsörjning detta kommer att orsaka problem eller modem återställning när du skickar SMS.

tillgängligt gränssnitt UART (TTL) eller RS232

eftersom vi använder avr ATmega8 föredrar vi TTL UART-gränssnitt. De flesta GSM-Modem har RS232 och UART (TTL) gränssnitt.

få GSM-Modem levereras med USB-gränssnitt också, när du ansluter GSM-Modem med PC använder USB-gränssnitt. Det eliminerar behovet av USB till seriell omvandlare och få Modem är USB-drivna så inget behov av extern strömförsörjning.

storlek, pris

storlek och pris för varje modem varierar beroende på tillverkarens användning av externa komponenter.

ljudgränssnitt (MIC/SPK)

ljudgränssnitt krävs om du använder GSM-Modem för att ringa samtal eller gränssnitt med DTMF-avkodare för att göra IVRS-system.

GSM-Modem gränssnitt

innan vi ansluter ut ATmega8 med GSM-modem kan ta en titt på olika GSM-modem. Dessa alla GSM-modem har GPRS-kapacitet det finns inget behov av separat GPRS-modem.

som du ser i detta Quectel M10 GSM-modem har vi inte tillgång till TTL (Rx, Tx) – anslutning vi behöver RS232-nivåomvandlare konstruerad med MAX232.

Quectel M10
Quectel M10

SIM300 är absolut vi kanske inte får detta på marknaden. Den använder LM317 linjär regulator för att göra sin strömförsörjning, det är bättre att ha DC-DC-omvandlare eller omkopplingsregulator för bästa resultat.

 SIM300 Modem
SIM300 Modem

vi kommer att använda detta GSM-modem. Det har TTL Rx, Tx-utgång . Gränssnitt av GSM-Modem med microcontroller är bara att ansluta dessa Rx, Tx linjer med Microcontrollers UART.

SIM900A GSM-modem
SIM900A GSM-modem

GSM-Modem anslutningar med ATmega8

GSM-Modem gränssnitt
GSM-Modem gränssnitt

AT-kommandon

protokollet som används av GSM-modem för installation och kontroll baseras på at-kommandouppsättningen. GSM-modemspecifika kommandon är anpassade till de tjänster som erbjuds av ett GSM-modem som: textmeddelanden, ringa ett visst telefonnummer, radera minnesplatser etc. Eftersom huvudmålet för denna handledning är att visa hur man skickar och tar emot textmeddelanden behöver endast en delmängd av AT-Kommandouppsättningen implementeras. European Telecommunication Standard Institute (ETSI) GSM 07.05 definierar AT-Command-gränssnittet för GSM-kompatibla modem. I denna handledning väljs några valda kommandon och presenteras kort i det här avsnittet. Detta kommando delmängd gör det möjligt för modemet att skicka och ta emot SMS-meddelanden.

kommandona kan testas genom att ansluta ett GSM-modem till en av datorns COM-portar. Använd hyper terminal eller någon seriell Terminal programvara för att ge AT-kommandon till GSM-Modem.

kommando beskrivning
vid kontrollera om seriellt gränssnitt och GSM-modem fungerar.
ATE0 Stäng av echo, mindre trafik på seriell linje.
AT + CMTI visning av nya inkommande SMS.
AT + CPM val av SMS-minne.
vid + CMGF SMS strängformat, hur de komprimeras.
vid + CMGR Läs nytt meddelande från en given minnesplats.
vid + CMGS Skicka meddelande till en viss mottagare.
vid + CMGD Radera meddelande.

Status (AT)

kommandot ”AT” är en statusbegäran som används för att testa om ett kompatibelt modem är anslutet och att det seriella gränssnittet fungerar korrekt.

kommando: ”AT”
svar: ”OK”
ansluten och arbetar
svar: ”ERROR”
Serial line OK modem error

Echo off (ATE0)

kommandot ”ATE0” används för att konfigurera kommunikationen. Som standard är GSM-modem inställda på att echo alla mottagna kommandon tillbaka med en bekräftelse.

med echo off,” ATE0″, skulle modemet ha svarat” OK ”när du kör”AT”. Echo off-kommandot minskar trafiken på seriell linje. Kommandot ”ATE1” aktiverar echo igen.

ATE0

håll alltid echo off ”ATE0” för att förenkla seriell kommunikation med styrenheten.

AT+CMGF välj SMS-meddelandeformat

kommandot ”AT+CMGF” används för att ställa in in-och utdataformat för SMS-meddelanden. Två lägen är tillgängliga:

Ställ alltid in det i textläge för enkelhet

AT+CMGF=1

0 är PDU-läge, 1 är textläge.

Läs meddelande(AT+CMGR)

kommandot ”AT+CMGR” används för att läsa ett meddelande från en given minnesplats. Exekvering av ”AT+CMGR” returnerar ett meddelande at från valt minne .

till exempel läsning från plats 1

AT+CMGR=1

Skriv meddelande till minnet(AT+CMGW)

detta kommando gör det möjligt för användaren att skicka SMS-meddelanden.

AT + CMGW=1 / / skriver meddelande till plats 1

skicka SMS från Lagring (AT+CMSS)

skickar lagrade sms.

AT+CMSS=1 //Skicka SMS från plats 1

SMS-sändning med AVR Microcontroller kod

i din huvudsakliga() subrutin initiera seriell och samtal sendSMS() för att skicka 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);}

skicka SMS med 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);}

nu är det dags att skicka SMS klart att vi nu kan skicka sms med Arduino och avr microcontroller med enkelt seriellt gränssnitt med GSM-modem.

Lämna ett svar

Din e-postadress kommer inte publiceras.