Circuits4you.com

modemul GSM, Telefoane oferă un cost redus, rază lungă, canal de comunicare fără fir pentru aplicații încorporate, bazate pe microcontroler care au nevoie de conectivitate, mai degrabă decât rate ridicate de date. Mașini precum frigidere industriale, congelatoare, HVAC, mașini de monitorizare și vending, service pentru vehicule, sistem de avertizare, sistem de securitate, telecomandă etc. ar putea beneficia de a fi conectat la un modem GSM.

acest tutorial descrie modul de utilizare a unui AVR pentru a controla un modem GSM folosind comenzile AT. Interfața dintre modem și gazdă este un protocol textual numit at-comenzi. Aceste comenzi permit configurarea modemului GSM, apelarea, mesageria text etc. Această aplicație specială conectează un modul AVR ATmega8 și SIM300, SIM900 utilizând o conexiune RS232. Majoritatea modemurilor GSM au aceleași comenzi AT.

cuprins

• tipuri de modem GSM
• puncte de luat în considerare în timp ce alegeți modem GSM
• interfață cu modemurile GSM.• compresie și decompresie șir PDU.
• transmisie SMS, cum să trimiteți și să primiți.

tipuri de modemuri GSM

există multe modemuri GSM sunt disponibile în piață Simcom SIM300, SIM900 și Quectel M10. permite revizuire pe caracteristicile sale

puncte să ia în considerare în timp ce alegerea GSM Modem

există mai GSM modemuri disponibile în piață acestea sunt SIM300, SIM900 și SIM900A, Quectel M10 este mult mai fiabile și un pic costisitoare. SIM300 este modem mai vechi acum devine absolut.

  1. cerința de alimentare cu energie electrică
  2. interfață disponibilă UART (TTL) sau RS232
  3. Dimensiune
  4. Preț
  5. Interfață Audio (MIC / SPK)

cerința de alimentare

majoritatea modemului GSM necesită 4.2 V pentru a funcționa și sunt compatibile cu 5V și 3.3 V unele modemuri sunt de asemenea disponibile în 3.3 V. în funcție de cerința dvs. de microcontroler alegeți modemul corect. Modemul GSM necesită mai mult curent în timp ce trimiteți SMS-uri, efectuați apeluri și în timpul înregistrării în rețea. Amintiți-vă întotdeauna utilizați sursa de alimentare de 2 amperi. Majoritatea oamenilor noi fac greșeli în selectarea sursei de alimentare corecte acest lucru va cauza resetarea problemei sau a modemului în timpul trimiterii SMS-urilor.

interfață disponibilă UART(TTL) sau RS232

pe măsură ce folosim AVR ATmega8, preferăm interfața TTL UART. Cele mai multe modem GSM au RS232 și UART (TTL) interfață.

câteva modem GSM vine cu interfata USB de asemenea, atunci când sunt interfațare modem GSM cu PC-ul Utilizați interfața USB. Se elimină nevoia de USB la Convertor serial și câteva modemuri sunt USB alimentat astfel încât nu este nevoie de alimentare externă.

Dimensiune, Preț

dimensiunea și prețul fiecărui modem variază în funcție de utilizarea de către producător a componentelor externe.

Interfață Audio (MIC/SPK)

interfață Audio este necesară dacă utilizați modem GSM pentru a efectua apeluri sau pentru a interfață cu decodor DTMF pentru a face sistemul IVRS.

GSM modem interfațare

înainte de a ne conecta ATmega8 cu modem GSM vă permite să aruncăm o privire la diferite modemuri GSM. Acestea toate modem GSM au capacitatea de GPRS nu este nevoie de modem GPRS separat.

după cum vedeți în acest modem QUECTEL M10 GSM, nu avem acces la conexiunea TTL (Rx, Tx), avem nevoie de convertor de nivel RS232 construit folosind MAX232.

Quectel M10
Quectel M10

SIM300 este absolut nu putem obține acest lucru în piață. Utilizează regulatorul liniar LM317 pentru a-și face sursa de alimentare, este mai bine să aveți convertor DC-DC sau regulator de comutare pentru cele mai bune rezultate.

Modem SIM300
Modem SIM300

vom folosi acest modem GSM. Are TTL Rx, ieșire Tx . Interfațarea modemului GSM cu microcontrolerul este doar conectarea acestor linii Rx, Tx cu microcontrolere UART.

SIM900A GSM modem
SIM900A GSM modem

GSM modem conexiuni cu ATmega8

GSM modem interfațare
GSM modem interfațare

at comenzi

protocolul utilizat de modemurile GSM pentru configurare și control se bazează pe setul de comenzi at. Comenzile specifice modemului GSM sunt adaptate la serviciile oferite de un modem GSM, cum ar fi: mesaje text, apelarea unui anumit număr de telefon, ștergerea locațiilor de memorie etc. Deoarece obiectivul principal al acestui tutorial este de a arăta cum să trimiteți și să primiți mesaje text, trebuie implementat doar un subset al setului de comenzi AT. European Telecommunication Standard Institute (ETSI) GSM 07.05 definește interfața AT-Command pentru modemurile compatibile GSM. În acest tutorial sunt alese câteva comenzi selectate și prezentate pe scurt în această secțiune. Acest subset de comandă va permite modemului să trimită și să primească mesaje SMS.

comenzile pot fi încercate prin conectarea unui modem GSM la unul dintre porturile COM ale PC-ului. Utilizați Hyper terminal sau orice software terminal Serial pentru a da comenzi AT modemului GSM.

comanda descriere
la verificați dacă interfața serială și modemul GSM funcționează.
ATE0 opriți ecoul, mai puțin trafic pe linia serială.
AT + CMTI afișarea noilor SMS-uri primite.
AT + CPMS selectarea memoriei SMS.
AT + CMGF format șir SMS, modul în care acestea sunt comprimate.
AT + CMGR citiți un mesaj nou dintr-o anumită locație de memorie.
AT + CMGS trimite un mesaj la un anumit destinatar.
AT + CMGD ștergeți mesajul.

stare (AT)

comanda „AT” este o solicitare de stare utilizată pentru testarea dacă este conectat un modem compatibil și dacă interfața serială funcționează corect.

comandă: „AT”
răspuns:”OK”
conectat și funcțional
răspuns: „Eroare”
eroare Modem OK linie serială

Echo off (ATE0)

comanda „ATE0” este utilizată pentru a configura comunicarea. În mod implicit, modemurile GSM sunt setate să ecou orice comandă primită înapoi cu o confirmare.

cu echo off, „ATE0”, modemul ar fi răspuns „OK” la executarea „AT”. Comanda echo off va reduce traficul pe linia serială. Comanda” ATE1 ” va activa din nou echo.

ATE0

păstrați întotdeauna echo off „ATE0” pentru a simplifica comunicarea serială cu controlerul.

AT+CMGF Selectați formatul mesajului SMS

comanda „AT+CMGF” este utilizată pentru a seta formatul de intrare și ieșire al mesajelor SMS. Sunt disponibile două moduri:

• mod PDU: citirea și trimiterea SMS-urilor se face într-un format codificat special.

• mod Text: citirea și trimiterea SMS-urilor se face în text simplu.

setați-l întotdeauna la modul Text pentru simplitate

AT+CMGF=1

0 este modul PDU, 1 este modul text.

citiți Mesajul(AT+CMGR)

comanda „AT+CMGR” este utilizată pentru a citi un mesaj dintr-o anumită locație de memorie. Executarea „AT + CMGR” returnează un mesaj la din memoria selectată .

de exemplu citirea din locația 1

AT+CMGR=1

scrierea mesajului în memorie(AT+CMGW)

această comandă permite utilizatorului să trimită mesaje SMS.

AT+CMGW=1 //scrie mesaj în locația 1

Trimite mesaj SMS din Stocare (AT+CMS)

trimite sms-uri stocate.

AT+CMS=1 //Trimite SMS-uri de la locație 1

SMS trimiterea folosind AVR microcontroler Cod

în principal() subrutina inițializa SendSMS de serie și de apel() pentru a trimite SMS-uri

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);}

trimiterea SMS folosind 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);}

acum este clar că acum putem trimite SMS folosind Arduino și AVR microcontroler cu interfață serială simplă cu modem GSM.

Lasă un răspuns

Adresa ta de email nu va fi publicată.