Circuits4you.com

GSM modem, telefony poskytuje nízkonákladový, dlouhý dosah, bezdrátový komunikační kanál pro vestavěné aplikace založené na mikrokontrolérech, které vyžadují připojení spíše než vysokou rychlost přenosu dat. Stroje, jako jsou průmyslové chladničky, mrazničky, HVAC, monitorovací a prodejní automaty, servis vozidel, varovný systém, bezpečnostní systém, dálkové ovládání atd. může mít prospěch z připojení k GSM modemu.

tento tutoriál popisuje, jak používat AVR k ovládání GSM modemu pomocí příkazů AT. Rozhraní mezi modemem a hostitelem je textový protokol nazvaný AT-příkazy. Tyto příkazy umožňují nastavení GSM modemu, vytáčení, textové zprávy atd. Tato konkrétní aplikace připojuje modul AVR ATmega8 a sim300, SIM900 pomocí připojení RS232. Většina GSM modemů má stejné AT příkazy.

obsah

* typy GSM modemu
* body, které je třeba zvážit při výběru GSM modemu
* rozhraní s GSM modemy•
* implementace sady příkazů AT.
* komprese a dekomprese řetězce PDU.
• přenos SMS, jak odesílat a přijímat.

typy GSM modemů

existuje mnoho GSM modemů jsou k dispozici na trhu Simcom SIM300, SIM900 a Quectel M10. umožňuje přehled o jeho funkcích

body, které je třeba zvážit při výběru GSM modemu

na trhu jsou k dispozici modemy may GSM, jedná se o SIM300, SIM900 a SIM900A, Quectel M10 je mnohem spolehlivý a trochu nákladný. SIM300 je starší modem nyní se stává absolutní.

  1. požadavek na napájení
  2. dostupné rozhraní UART (TTL) nebo RS232
  3. Velikost
  4. Cena
  5. zvukové rozhraní (MIC / SPK)

požadavek na napájení

většina GSM modemu vyžaduje provoz 4.2 V a jsou kompatibilní s 5V a 3.3 V některé modemy jsou k dispozici také v 3.3 V. V závislosti na požadavku mikrokontroléru zvolte správný modem. GSM modem vyžaduje více proudu při odesílání SMS, volání a při registraci v síti. Nezapomeňte vždy používat 2 Amp napájení. Většina nových lidí dělá chyby při výběru správného napájení, což způsobí problém nebo reset modemu při odesílání SMS.

dostupné rozhraní UART (TTL) nebo RS232

vzhledem k tomu, že používáme AVR ATmega8, preferujeme rozhraní TTL UART. Většina GSM modemu má rozhraní RS232 a UART (TTL).

několik GSM Modem je dodáván s rozhraním USB také, když jste propojení GSM Modem s PC pomocí rozhraní USB. Eliminuje potřebu USB na sériový převodník a několik modemů je napájeno USB, takže není potřeba externího napájení.

Velikost, Cena

velikost a cena každého modemu se liší v závislosti na použití externích komponent výrobcem.

Audio Interface (MIC/SPK)

Audio interface je vyžadováno, pokud používáte GSM Modem pro volání nebo rozhraní s DTMF dekodérem pro výrobu IVRS systému.

rozhraní GSM modemu

než se připojíme ATmega8 s GSM modemem, podívejme se na různé GSM modemy. Tyto všechny GSM modem mají schopnost GPRS není potřeba samostatného GPRS modemu.

jak vidíte v tomto GSM modemu Quectel M10, nemáme přístup k TTL (Rx, Tx) připojení potřebujeme převodník úrovně RS232 konstruovaný pomocí MAX232.

 Quectel M10
Quectel M10

SIM300 je absolutní, že to na trhu nemusíme získat. Používá LM317 lineární regulátor, aby jeho napájení, je lepší mít DC-DC převodník nebo spínací regulátor pro dosažení nejlepších výsledků.

Sim300 Modem
SIM300 Modem

budeme používat tento GSM modem. Má TTL Rx,Tx výstup . Propojení GSM modemu s mikrokontrolérem je právě spojením těchto RX, TX linek s mikrokontroléry UART.

 SIM900A GSM modem
SIM900A GSM modem

GSM modem připojení s ATmega8

 GSM Modem Rozhraní
GSM Modem Rozhraní

AT příkazy

protokol používaný GSM modemy pro nastavení a řízení je založen na sadě příkazů AT. Specifické příkazy GSM modemu jsou přizpůsobeny službám nabízeným GSM modemem, jako jsou: textové zprávy, volání na dané telefonní číslo, mazání paměťových míst atd. Protože hlavním cílem tohoto tutoriálu je ukázat, jak odesílat a přijímat textové zprávy, je třeba implementovat pouze podmnožinu sady příkazů AT. Evropský institut telekomunikačních standardů (ETSI) GSM 07.05 definuje rozhraní AT-Command pro modemy kompatibilní s GSM. V tomto tutoriálu jsou vybrány některé vybrané příkazy a stručně prezentovány v této části. Tato podmnožina příkazů umožní modemu odesílat a přijímat SMS zprávy.

příkazy lze vyzkoušet připojením GSM modemu k jednomu z COM portů počítače. Použijte hyper terminál nebo jakýkoli software sériového terminálu, abyste dali AT příkazy GSM modemu.

příkaz popis
na zkontrolujte, zda sériové rozhraní a GSM modem funguje.
Ate0 vypněte echo, menší provoz na sériové lince.
na + CMTI Zobrazení nových příchozích SMS.
AT + CPMS výběr paměti SMS.
ve formátu + CMGF SMS string, jak jsou komprimovány.
na + CMGR Přečtěte si novou zprávu z daného umístění paměti.
na + CMGS odeslat zprávu danému příjemci.
na + CMGD Smazat zprávu.

Status (AT)

příkaz „AT“ je stavový požadavek používaný pro testování, zda je připojen kompatibilní modem a zda sériové rozhraní funguje správně.

Command: „AT“
Response: „OK“
Connected and working
Response: „ERROR“
Serial line OK modem error

Echo off (ate0)

příkaz“ ate0 “ se používá ke konfiguraci komunikace. Ve výchozím nastavení jsou GSM modemy nastaveny tak, aby odrážely jakýkoli přijatý příkaz Zpět s potvrzením.

s echo off, „ate0″, modem by odpověděl “ OK „při provádění „AT“. Příkaz echo off sníží provoz na sériové lince. Příkaz „ATE1″znovu povolí echo.

ATE0

vždy udržujte echo vypnuto „ATE0“ pro zjednodušení sériové komunikace s ovladačem.

AT + CMGF Select SMS message Format

příkaz „AT + CMGF“ se používá k nastavení vstupního a výstupního formátu SMS zpráv. K dispozici jsou dva režimy:

* režim PDU: čtení a odesílání SMS se provádí ve speciálním kódovaném formátu.

* Textový režim: čtení a odesílání SMS se provádí v prostém textu.

Vždy nastavte Textový režim pro jednoduchost

AT + CMGF=1

0 je režim PDU, 1 je textový režim.

Read Message (AT+CMGR)

příkaz „AT + CMGR“ se používá ke čtení zprávy z daného umístění paměti. Provedení „AT + CMGR“ vrátí zprávu at z vybrané paměti .

například čtení z umístění 1

AT + CMGR=1

zápis zprávy do paměti (AT+CMGW)

tento příkaz umožňuje uživateli odesílat SMS zprávy.

AT + CMGW=1 / / zapíše zprávu na místo 1

odeslat SMS zprávu z úložiště (AT+CMSS)

odešle uloženou sms.

AT + CMSS=1 / / Pošlete SMS z místa 1

odesílání SMS pomocí kódu AVR mikrokontroléru

ve vašem hlavním() podprogramu inicializujte sériové a volání sendSMS () pro odeslání 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);}

odesílání SMS pomocí 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);}

nyní je jasné, že nyní můžeme posílat SMS pomocí Arduino a AVR mikrokontroléru s jednoduchým sériovým rozhraním s GSM modemem.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.