Ginagamit ang module ng GSM sa maraming mga aparato sa komunikasyon na nakabatay sa teknolohiyang GSM (Global System for Mobile Communications). Ginagamit ito upang makipag-ugnay sa GSM network gamit ang isang computer. Nauunawaan lamang ng module ng GSM ang mga utos ng AT, at maaaring tumugon nang naaayon. Ang pinaka-pangunahing utos ay "AT", kung ang GSM ay tumutugon sa OK pagkatapos ito ay gumagana nang maayos kung hindi man tumugon ito sa "ERROR". Mayroong iba't ibang mga utos ng AT tulad ng ATA para sa pagsagot sa isang tawag, ATD upang i-dial ang isang tawag, AT + CMGR upang basahin ang mensahe, SA + CMGS upang ipadala ang mga sms atbp. Ang mga utos ng AT ay dapat sundin ng pagbalik ng Car ie ie r (0D sa hex), tulad ng "AT + CMGS \ r". Maaari naming gamitin ang module ng GSM gamit ang mga utos na ito.
GSM Interfacing kasama ang 8051
Sa halip na gumamit ng PC, maaari kaming gumamit ng mga microcontroller upang makipag-ugnay sa module ng GSM at LCD upang makuha ang tugon mula sa module ng GSM. Kaya pupunta kami sa interface GSM sa isang 8051 microcontroller (AT89S52). Napakadali upang i-interface ang GSM sa 8051, kailangan lamang namin magpadala ng mga AT command mula sa microcontroller at makatanggap ng tugon mula sa GSM at ipakita ito sa LCD. Maaari naming gamitin ang serial port ng microcontroller upang makipag-usap sa GSM, nangangahulugang gumagamit ng PIN 10 (RXD) at 11 (TXD).
Una kailangan naming ikonekta ang LCD sa 8051, maaari mong malaman ito mula dito: LCD Interfacing sa 8051 Microcontroller. Pagkatapos kailangan naming ikonekta ang module ng GSM sa 8051, ngayon narito dapat tayong magbayad ng pansin. Una kailangan mong suriin na kung ang iyong module ng GSM ay may kakayahang magtrabaho sa TTL na lohika o maaari lamang itong gumana sa RS232. Talaga kung ang iyong module ay may RX at TX (na may GND) Mga Pins na nakasakay pagkatapos ay maaari itong gumana sa TTL na lohika. At Kung wala itong anumang mga RX, TX pin at mayroon lamang isang RS232 port (serial port na may 9) kung gayon kailangan mong gumamit ng MAX232 IC upang ikonekta ang serial port sa microcontroller. Karaniwan MAX232ginamit upang i-convert ang serial data sa TTL na lohika dahil ang Microcontroller ay maaari lamang gumana sa TTL na lohika. Ngunit kung ang module ng GSM ay may RX, TX pin pagkatapos hindi mo kailangang gumamit ng MAX232 o anumang serial converter, maaari mong direktang ikonekta ang RX ng GSM sa TX (PIN 11) ng 8051 at TX ng GSM sa RX (PIN 10) ng 8051 Sa aming kaso nagamit ko ang module na SIM900A at mayroon itong mga RX, TX na pin kaya hindi ko nagamit ang MAX232.
Ang Circuit Diagram para sa pag-interfaced ng GSM sa AT89S52 microcontroller ay ipinapakita sa itaas na pigura. Ngayon pagkatapos ng koneksyon, kailangan lamang naming magsulat ng programa upang magpadala ng mga AT command sa GSM at matanggap ang tugon nito sa LCD. Maraming mga utos ng AT tulad ng inilarawan sa itaas, ngunit ang aming saklaw ng artikulong ito ay upang mai-interface ang GSM sa 8051, kaya magpapadala lamang kami ng utos na "AT" na sinusundan ng "\ r" (0D sa hex). Magbibigay ito sa amin ng tugon na "OK". Ngunit maaari mong pahabain ang program na ito upang magamit ang lahat ng mga pasilidad ng GSM.
Pagpapaliwanag sa code
Bukod sa lahat ng mga pag-andar na nauugnay sa LCD, ginamit namin ang Serial port at timer mode register (TMOD). Maaari mong malaman ang tungkol sa mga pagpapaandar ng LCD at iba pang code sa pamamagitan ng pagdaan sa aming seksyon ng 8051 na mga proyekto, narito ipinapaliwanag ko ang tungkol sa mga serial function na kaugnay sa code ng komunikasyon:
Pagpapaandar ng GSM_init ():
Ang pagpapaandar na ito ay ginagamit upang itakda ang Baudrate para sa microcontroller. Ang Baudrate ay walang iba kundi ang Bits / pangalawang nailipat o natanggap. At kailangan naming itugma ang baudrate ng 8051 sa rate ng Baud ng GSM module na 9600. Ginamit namin ang Timer 1 sa Mode 2 (8-bit auto-reload mode) sa pamamagitan ng pagtatakda ng rehistro ng TMOD sa 0X20 at Higher byte ng Timer 1 (TH1) sa 0XFD upang makuha ang rate ng baud na 9600. Gayundin ang rehistro ng SCON ay ginagamit upang itakda ang mode ng serial na komunikasyon, ginamit namin ang Mode1 (8-bit UART) na pinagana ang pagtanggap.
Pag-andar ng GSM_write:
Ang SBUF (serial buffer special function register) ay ginagamit para sa serial na komunikasyon, tuwing nais naming magpadala ng anumang byte sa serial device na inilalagay namin ang byte na iyon sa rehistro ng SBUF, kapag ang kumpletong byte ay naipadala pagkatapos TI bit ay itinakda ng hardware. Kailangan naming i-reset ito para sa pagpapadala ng susunod na byte. Ito ay isang watawat na nagpapahiwatig na ang byte ay matagumpay na naipadala. Ang TI ay ang pangalawang piraso ng rehistro ng SCON. Nagpadala kami ng "AT" gamit ang pagpapaandar na ito.
Pag-andar ng GSM_read:
Parehas sa pagpapadala, tuwing nakakatanggap kami ng anumang byte mula sa panlabas na aparato na byte ay inilalagay sa rehistro ng SBUF, kailangan lang namin itong basahin. At tuwing ang kumpletong byte ay natanggap RI bit ay itinakda ng hardware. Kailangan naming i-reset ito para sa pagtanggap ng susunod na byte. Ang RI ang unang piraso ng rehistro ng SCON. Nabasa namin ang tugon na "OK" gamit ang pagpapaandar na ito.