Circuits4you.com

a GSM modem, a telefonok alacsony költségű, nagy hatótávolságú, vezeték nélküli kommunikációs csatornát biztosítanak beágyazott, mikrokontroller alapú alkalmazásokhoz, amelyek nem nagy adatátviteli sebességet igényelnek. Gépek, például ipari hűtőszekrények, fagyasztók, HVAC, ellenőrző és automaták, járműszerviz, figyelmeztető rendszer, biztonsági rendszer, távirányító stb. hasznos lehet, ha csatlakozik egy GSM modemhez.

ez az oktatóanyag leírja, hogyan lehet AVR-t használni a GSM modem vezérléséhez AT parancsok segítségével. A modem és a host közötti interfész egy Szöveges protokoll, az AT-Commands. Ezek a parancsok lehetővé teszik a GSM modem beállítását, tárcsázást, szöveges üzenetküldést stb. Ez az alkalmazás egy AVR ATmega8 és SIM300, SIM900 modult csatlakoztat egy RS232 kapcsolaton keresztül. A legtöbb GSM modem azonos AT parancsokkal rendelkezik.

tartalom

• a GSM Modem típusai
• a GSM modem kiválasztásakor figyelembe veendő pontok
• interfész a GSM modemekhez. * SMS átvitel, hogyan kell küldeni és fogadni.

típusú GSM modemek

sok GSM modemek állnak rendelkezésre a piacon Simcom SIM300, SIM900 és Quectel M10. lehetővé teszi, hogy vizsgálja felül a funkciók

pontokat kell figyelembe venni, míg választotta GSM Modem

vannak május GSM modemek elérhető a piacon ezek SIM300, SIM900 és SIM900A, Quectel M10 sokkal megbízható és egy kicsit költséges. A SIM300 régebbi modem, most abszolút lesz.

  1. tápegység követelmény
  2. elérhető interfész UART(TTL) vagy RS232
  3. méret
  4. Ár
  5. Audio interfész (MIC/SPK)

tápellátási követelmény

a legtöbb GSM modem működéséhez 4,2 V szükséges, és kompatibilisek az 5 V-os és 3,3 V-os modemekkel. A GSM modemnek több áramra van szüksége SMS küldés, Hívás kezdeményezése és hálózati regisztráció közben. Ne feledje, hogy mindig használja 2 Amp tápegység. A legtöbb új ember hibázik a megfelelő tápegység kiválasztásában, ez problémát vagy modem visszaállítást okoz SMS küldése közben.

elérhető interfész UART(TTL) vagy RS232

mivel AVR ATmega8-at használunk, a TTL UART interfészt részesítjük előnyben. A legtöbb GSM Modem RS232 és UART (TTL) interfésszel rendelkezik.

néhány GSM Modem USB interfésszel is rendelkezik, ha a GSM modemet PC-vel köti össze, használjon USB interfészt. Ez kiküszöböli az USB-soros átalakító szükségességét, és kevés modem van USB-tápellátással, így nincs szükség külső tápegységre.

méret, ár

az egyes modemek mérete és ára attól függ, hogy a gyártó milyen külső alkatrészeket használ.

Audio interfész (MIC/SPK)

Audio interfész szükséges, ha GSM modemet használ hívások kezdeményezéséhez vagy DTMF dekóderrel való interfészhez IVRS rendszer készítéséhez.

GSM Modem interfész

mielőtt csatlakozunk ki ATmega8 GSM modem lehetővé teszi, hogy egy pillantást a különböző GSM modemek. Ezek mind GSM modem GPRS képesség nincs szükség külön GPRS modem.

amint látja ebben a Quectel M10 GSM modemben, nincs hozzáférésünk a TTL (Rx, Tx) kapcsolathoz, amire szükségünk van rs232 szintátalakító MAX232 használatával.

Quectel M10
Quectel M10

a SIM300 abszolút lehet, hogy ezt nem kapjuk meg a piacon. Ez használ LM317 lineáris szabályozó, hogy a tápegység, akkor jobb, ha DC-DC átalakító vagy kapcsoló szabályozó a legjobb eredmény.

SIM300 Modem
SIM300 Modem

ezt a GSM modemet fogjuk használni. TTL Rx, Tx kimenettel rendelkezik . A GSM Modem mikrokontrollerrel való összekapcsolása csak ezeket az Rx, Tx vonalakat köti össze az UART Mikrokontrollerekkel.

SIM900A GSM modem
SIM900A GSM modem

GSM Modem kapcsolatok ATmega8

GSM modem interfész
GSM modem interfész

AT parancsok

a GSM modemek által a telepítéshez és vezérléshez használt protokoll az AT parancskészleten alapul. A GSM modem-specifikus parancsok a GSM modem által kínált szolgáltatásokhoz igazodnak, például: szöveges üzenetküldés, adott telefonszám hívása, memóriahelyek törlése stb. Mivel ennek az oktatóanyagnak a fő célja a szöveges üzenetek küldésének és fogadásának bemutatása, az AT-Command készletnek csak egy részhalmazát kell végrehajtani. Az Európai Távközlési Szabványintézet (ETSI) GSM 07.05 meghatározza az AT-Command interfészt a GSM kompatibilis modemekhez. Ebben az oktatóanyagban néhány kiválasztott parancs kerül kiválasztásra, amelyeket röviden bemutatunk ebben a szakaszban. Ez a parancs részhalmaz lehetővé teszi a modem számára az SMS-üzenetek küldését és fogadását.

a parancsok kipróbálhatók egy GSM modem csatlakoztatásával a számítógép egyik COM portjához. Használja a hyper terminal vagy bármely soros terminál szoftvert, hogy AT parancsokat adjon a GSM modemnek.

parancs leírás
AT ellenőrizze, hogy a soros interfész és a GSM modem működik-e.
ATE0 kapcsolja ki az echo-t, kevesebb forgalom a soros vonalon.
AT + CMTI új bejövő SMS megjelenítése.
AT + CPMS SMS memória kiválasztása.
AT + CMGF SMS karakterlánc formátum, hogyan tömörítik őket.
AT + CMGR új üzenet olvasása egy adott memóriahelyről.
AT + CMGS üzenet küldése egy adott címzettnek.
AT + CMGD üzenet törlése.

Status (AT)

az “AT” parancs egy állapotkérés, amelyet annak tesztelésére használnak, hogy kompatibilis modem van-e csatlakoztatva, és hogy a soros interfész megfelelően működik-e.

parancs: “AT”
Válasz: “OK”
csatlakoztatva és működik
válasz: “ERROR”
soros vonal OK modem hiba

Echo off (ATE0)

az “ATE0” parancs a kommunikáció konfigurálására szolgál. Alapértelmezés szerint a GSM modemek úgy vannak beállítva, hogy a kapott parancsokat nyugtázással visszhangozzák.

ha az echo ki van kapcsolva, “ATE0”, a modem “OK” – ra válaszolt volna az “AT”végrehajtásakor. Az echo off parancs csökkenti a forgalmat a soros vonalon. Az” ATE1 ” parancs ismét engedélyezi az echo-t.

ATE0

a vezérlővel való soros kommunikáció egyszerűsítése érdekében mindig tartsa távol az echo-t az “ATE0” – től.

AT+CMGF válassza ki az SMS üzenet formátumát

az “AT+CMGF” parancs az SMS üzenetek bemeneti és kimeneti formátumának beállítására szolgál. Két mód áll rendelkezésre:

• Szöveges mód: az SMS olvasása és küldése egyszerű szövegben történik.

az egyszerűség kedvéért mindig állítsa szöveges módba

AT+CMGF=1

0 PDU mód, 1 Szöveges mód.

üzenet olvasása(AT+CMGR)

az “AT+CMGR” parancs egy adott memóriahelyről származó üzenet olvasására szolgál. Az “AT+CMGR” végrehajtása egy üzenetet ad vissza a kiválasztott memóriából .

például olvasás az 1.helyről

AT+CMGR=1

Üzenet írása a memóriába(AT+CMGW)

ez a parancs lehetővé teszi a felhasználó számára, hogy SMS-üzeneteket küldjön.

AT+CMGW=1 //üzenetet ír az 1.helyre

SMS küldése a tárolóból (AT+CMS)

tárolt sms-t küld.

AT+CMS=1 //SMS küldése a helyszínről 1

SMS küldése AVR mikrokontroller kóddal

a fő() alprogramban inicializálja a Soros és hívja a sendSMS-t() SMS küldéséhez

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

SMS küldése Arduino segítségével

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

most már világos hogy most tudunk SMS-t küldeni Arduino és AVR mikrokontroller egyszerű soros interfész GSM modem.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.