Paano Magpadala at Makatanggap ng SMS Gamit ang GSM Modem

Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema





Sa artikulong ito matututunan natin, kung paano magpadala at makatanggap ng SMS gamit ang GSM modem na kinokontrol ng Arduino. Tingnan natin, kung ano ang modem ng GSM, kung paano ito i-interface sa Arduino, kung paano magpadala ng SMS gamit ang pag-setup.

Susuriin din namin kung ano ang lahat ng mga application na maaari naming makamit sa GSM modem bukod sa pagpapadala ng text message ng isang tao.



Ano ang modem ng GSM?

Ang GSM ay nangangahulugang Global System for Mobile na komunikasyon ito ay isang pamantayan na binuo ng ETSI (European Telecommunications Standard Institute) na inilarawan ang mga protocol para sa komunikasyon ng 2G.

Ito ang unang digital protocol para sa komunikasyon sa mobile na na-optimize para sa buong komunikasyon sa boses na duplex. Sa maikling salita ang buong duplex na komunikasyon ay nangangahulugang kapwa ang mga partido ay maaaring magpadala / makatanggap ng data (o boses) nang sabay-sabay.



Pinapayagan din ng GSM protocol ang paglipat ng data ng packet, tulad ng GPRS at EDGE.

SIM800 GSM modem:

Ang GSM modem ay isang hardware na tumatanggap ng isang wastong SIM card (Subscriber Identity Module), karaniwang gagana ang anumang SIM, na sumusuporta sa GSM protocol at sa isang subscription sa network.

Ito ay tulad ng isang mobile phone na walang Screen at keypad. Mayroon itong apat na I / O na pin depende sa modelo na pinili mo.

Dalawa para sa TX at RX (magpadala at tumanggap), isa pang dalawang pin para sa VCC at GND, na karaniwan sa lahat.

Binubuo din ito ng port ng RS232 para sa serial na komunikasyon sa pagitan ng modem at computer, subalit hindi namin gagamitin sa proyektong ito.

Mayroon itong karaniwang DC power jack, na maaaring pinalakas mula sa mga panlabas na mapagkukunan ng kuryente tulad ng mga adaptor ng boltahe.

Mayroon itong boltahe na nagtatrabaho mula 5 hanggang 12V sa DC jack, depende sa modelo. Mayroon itong 3 mga tagapagpahiwatig ng LED, para sa lakas, katayuan, at network.

Ipinapahiwatig ng power LED ang pagkakaroon ng lakas, ipinapahiwatig ng LED ng katayuan kung ang modem ng GSM ay tumatakbo o hindi, ipinahiwatig ng Network LED ang pagtatatag ng mobile network.

Pauna sa network LED blinks bawat isang segundo habang naghahanap para sa network, sa sandaling maitataguyod nito ang mobile network ay kumikislap ito bawat 3 segundo.

Kailangan mong pindutin ang power button para sa 2 hanggang 3 segundo para sa pag-aktibo ng GSM modem, sa sandaling tapos ka na, ito ay dumidikit sa mobile network.

Upang ma-verify na gumagana ang iyong modem ng GSM, tawagan lamang ang bilang kung saan mo naipasok ang SIM card. Dapat kang makakuha ng ring ring tone. Kung gagawin ito, ang iyong module ay gumagana nang maayos.

Gagamitin namin ang modem na SIM800 GSM na sumusuporta sa quad-band 850/900/1800/1900 MHz. kung nagmamay-ari ka ng isang modem na SIM900, hindi kailangang magalala, ang programa at circuit ay tugma sa proyektong ito.

Ngayon, nakakuha ka ng ideya tungkol sa modem ng GSM, ngayon ay alamin natin kung paano ito i-interface sa arduino.

Diagram ng Circuit:

Tulad ng mahihinuha mong mabuo ang diagram, ang koneksyon sa circuit ay patay madali. Kailangan mo lamang ng 3 lalaki hanggang babaeng mga header pin. Ang isang USB cable ay sapilitan sa proyektong ito, dahil makikipag-usap kami sa pamamagitan ng serial monitor.

Palagi, paganahin ang GSM modem na may panlabas na adapter. Ang lakas mula sa arduino ay hindi sapat para sa modem ng GSM na maaari pa itong mag-overload ng voltage regulator ng arduino.

Iyon lang ang tungkol sa bahagi ng hardware. Ngayon, lumipat tayo sa pag-coding.

Programa:

//-------------Program developed by R.Girish---------------//
#include
#define rxPin 9 // gsm TX------> arduino 9
#define txPin 8 //gsm RX--------> arduino 8
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin)
char text[150]
String message=''
int x
void setup()
{
Serial.begin(9600)
while (!Serial){}
mySerial.begin(9600)
delay(1000)
Serial.println('Write your message (with dot at end):')
}
void loop()
{
x=0
while( Serial.available()>0 )
{
text[x] = Serial.read()
message += text[x]
x++
if (text[x-1]==46)
{
Serial.println('Your message is sending......')
SendTextMessage()
ShowSerialData()
delay(1000)
Serial.println('r')
Serial.println('Success')
message=''
x=0
}}}
void SendTextMessage()
{
mySerial.print('AT+CMGF=1r')
delay(1000)
mySerial.print('AT+CMGS='+91xxxxxxxxxx'r') // Replace x with your 10 digit phone number
delay(1000)
mySerial.println(message)
mySerial.print('r')
delay(1000)
mySerial.println((char)26)
mySerial.println()
}
void ShowSerialData()
{
while(mySerial.available()!=0)
Serial.write(mySerial.read())
}
//-------------Program developed by R.Girish---------------//

Huwag kalimutan ang tuldok (.) Sa bawat dulo ng mensahe , kung hindi man ay hindi ito magpapadala ng mensahe sa iniresetang numero sa programa. Palitan x ng iyong 10 digital na numero ng telepono sa programa. Tiyaking mayroon kang isang gumaganang plano sa SMS sa iyong SIM card.

Kung hindi ka mula sa India, mangyaring baguhin ang country code sa programa.

Halimbawa:

Para sa UK: +44
Para sa US: +1
Para sa Canada: +1
Para sa Russia: +7

Maaari mo ring i-automate ang mensahe na ipinadala ng modem ng GSM sa pamamagitan ng angkop na pag-coding sa Arduino. Maaari kang makatanggap ng mga awtomatikong alerto ng mensahe sa iyong telepono tulad ng: alerto laban sa pagnanakaw, alerto sa alarma ng sunog, alerto sa panahon sa iyong lokal na lugar atbp.

Maaari ka ring kumonekta sa internet gamit ang GPRS sa moda ng GSM, ngunit paksa ito ng isa pang artikulo.

Sa isa sa mga darating na artikulo malalaman natin Paano Makakatanggap ng SMS Gamit ang GSM Modem at Arduino

Kung mayroon kang mga karagdagang katanungan tungkol sa kung paano magpadala ng SMS gamit ang GSM Modem, huwag mag-atubiling magtanong sa seksyon ng komento.

Paano Makakatanggap ng SMS Gamit ang GSM Modem

Sa talakayan sa itaas natutunan namin kung paano magpadala ng isang text message gamit ang GSM modem at tinalakay din ang mga pangunahing kaalaman sa modem ng GSM.

Sa seksyong ito tatalakayin namin tungkol sa kung paano makatanggap ng SMS sa pamamagitan ng serial monitor ng arduino IDE. Hindi lamang kami makakatanggap ng SMS ngunit, magpapadala din ng text message sa pamamagitan ng pagpindot sa iba't ibang mga key. Para sa isang iglap, ang pagpindot sa 's' ay magpapadala ng paunang pagpasok ng text message, ang pagpindot sa 'r' ay makakatanggap ng real time SMS.

Narito ang prototype ng may-akda:

Paano ito gumagana

Ang circuit para sa pagtanggap ng SMS gamit ang isang GSM modern ay napaka-simple, kailangan mo lamang ng 3 lalaki sa mga babaeng pin ng header. Ang TX ng GSM modem ay konektado sa pin # 9 ng arduino at RX ng GSM modem ay konektado sa pin # 8 ng arduino at ang ground to ground na koneksyon ay ibinibigay din sa pagitan ng GSM at arduino.

Palaging gumamit ng panlabas na supply ng kuryente para sa GSM modem, huwag ikonekta ang 5Vcc mula sa arduino patungong GSM modem, dahil may magandang pagkakataon na labis na ma-overload ang voltage regulator ng arduino.

Huwag kalimutang ipatupad ang cutter ng rate ng SMS o katulad sa iyong subscription sa SMS para sa pagbawas sa iyong gastos sa SMS.

Kung hindi man magtatapos ka ng walang laman na balanse ng account pagkatapos magpadala ng maraming SMS, dahil hindi magkakaroon ng pagkilala mula sa iyong cellular provider pagkatapos ng bawat naipadala na SMS, dahil ang SIM card ay nasa modem ng GSM.

Ang nakilala mo lamang ay babala sa SMS, patungkol sa iyong walang laman na account, kaya mag-ingat tungkol sa iyong mga gastos. Ngayon lumipat tayo sa bahagi ng pag-coding sa proyektong ito.

Programa:

//-----------------Program developed by R.Girish-------------//
#include
SoftwareSerial gsm(9,8)
void setup()
{
gsm.begin(9600) // Setting the baud rate of GSM Module
Serial.begin(9600) // Setting the baud rate of Serial Monitor (Arduino)
delay(100)
}
void loop()
{
if (Serial.available()>0)
switch(Serial.read())
{
case 's':
Send()
break
case 'r':
Recieve()
break
case 'S':
Send()
break
case 'R':
Recieve()
break
}
if (gsm.available()>0)
Serial.write(gsm.read())
}
void Send()
{
gsm.println('AT+CMGF=1')
delay(1000)
gsm.println('AT+CMGS='+91xxxxxxxxxx'r') // Replace x with mobile number
delay(1000)
gsm.println('Hello I am GSM modem!!!')// The SMS text you want to send
delay(100)
gsm.println((char)26) // ASCII code of CTRL+Z
delay(1000)
}
void Recieve()
{
gsm.println('AT+CNMI=2,2,0,0,0') // AT Command to receive a live SMS
delay(1000)
}
//-----------------Program developed by R.Girish-------------//

Pagpasok sa Mga Numero ng Telepono

Ipasok ang tatanggap na numero ng telepono sa 'xxxxxxxxxxx' sa programa gamit ang iyong country code sa simula.

Ipasok ang teksto na nais mong ipadala sa programa sa loob ng panipi: gsm.println ('Kamusta ako GSM modem !!!') // Ang teksto ng SMS na nais mong ipadala

Tipunin ang programa at i-upload sa arduino.

Ipasok ang SIM card at i-power ang GSM modem na may panlabas na supply ng kuryente at pindutin ang power button sa loob ng 3 segundo (depende sa modelo), maghintay ng 10 hanggang 20 segundo upang maitaguyod ang mobile network, ang network LED ay dapat kumurap minsan sa bawat 3 segundo. Kung ang lahat ay nakasaad sa itaas ay tapos na, handa na kaming pumunta para sa susunod na hakbang.

Ngayon buksan ang serial monitor at pindutin ang 'r' ang modem ng GSM ay handa nang tumanggap ng SMS. Magpadala ngayon ng isang text message mula sa anumang mobile phone sa bilang ng SIM na ipinasok sa modem ng GSM.
Ang text message ay dapat na mag-pop up sa serial monitor, isang bagay na katulad ng nakalarawan sa ibaba:

Ang 'Hello world' ay ang mensahe na ipinadala sa modem ng GSM at ang bilang kung saan ipinadala ang text message ay ipinakita rin.

Ngayon, hayaang magpadala ng SMS sa paunang ipinasok na numero sa programa na may paunang mensahe na ipinasok. Pindutin ang 's' at makikita mo ang isang bagay na katulad na nakalarawan sa ibaba: Ang ipinadala na SMS ay 'Hello I am GSM modem'.

Ngayon, alam mo kung paano magpadala at kung paano makatanggap ng SMS gamit ang GSM modem.




Nakaraan: Bluetooth Motor Controller Circuit Susunod: Paano Magdisenyo ng isang Induction Heater Circuit