Kaip siųsti ir gauti SMS naudojant GSM modemą

Išbandykite Mūsų Instrumentą, Kaip Pašalinti Problemas





Šiame straipsnyje mes sužinosime, kaip siųsti ir priimti SMS naudojant „Arduino“ valdomą GSM modemą. Pažiūrėkime, kas yra GSM modemas, kaip jį susieti su „Arduino“, kaip siųsti SMS su sąranka.

Mes taip pat ketiname ištirti visas programas, kurias galime pasiekti naudodami GSM modemą, išskyrus žmogaus teksto pranešimų siuntimą.



Kas yra GSM modemas?

GSM reiškia pasaulinę judriojo ryšio sistemą. Tai standartas, kurį sukūrė ETSI (Europos telekomunikacijų standartų institutas), aprašęs 2G ryšio protokolus.

Tai pirmasis skaitmeninis mobiliojo ryšio protokolas, optimizuotas visapusiškam dvipusiam balso ryšiui. Trumpai tariant, visas dvipusis ryšys reiškia, kad abi šalys gali siųsti / gauti duomenis (arba balsą) vienu metu.



GSM protokolas taip pat leidžia perduoti paketinius duomenis, tokius kaip GPRS ir EDGE.

SIM800 GSM modemas:

GSM modemas yra aparatinė įranga, priimanti galiojančią SIM kortelę („Subscriber Identity Module“). Iš esmės veiks bet kuri SIM kortelė, palaikanti GSM protokolą ir su tinklo prenumerata.

Tai tarsi mobilusis telefonas be ekrano ir klaviatūros. Priklausomai nuo pasirinkto modelio, jis turi keturis įvesties / išvesties kaiščius.

Du TX ir RX (perduoti ir priimti), dar du VCC ir GND kaiščiai, kurie yra įprasti visiems.

Jį taip pat sudaro RS232 prievadas, skirtas nuosekliam ryšiui tarp modemo ir kompiuterio, tačiau mes nenaudosime šiame projekte.

Jame yra standartinis nuolatinės srovės lizdas, kurį galima maitinti iš išorinių maitinimo šaltinių, tokių kaip įtampos adapteriai.

Priklausomai nuo modelio, ji turi įtampą nuo 5 iki 12 V nuolatinės srovės lizde. Jame yra 3 šviesos diodų indikatoriai, rodantys maitinimą, būseną ir tinklą.

Maitinimo šviesos diodas rodo, kad yra maitinimas, būsenos šviesos diodas rodo, ar veikia GSM modemas, ar ne, tinklo šviesos diodas rodo mobiliojo ryšio tinklo įkūrimą.

Iš pradžių tinklo šviesos diodas mirksi kas sekundę ieškodamas tinklo, kai tik jis nustato mobilųjį tinklą, jis mirksi kas 3 sekundes.

Norėdami suaktyvinti GSM modemą, 2–3 sekundes turite paspausti maitinimo mygtuką, kai tai padarysite, jis užsifiksuos mobiliajame tinkle.

Norėdami patikrinti, ar jūsų GSM modemas veikia, tiesiog paskambinkite numeriu, į kurį įdėjote SIM kortelę. Turėtumėte gauti skambėjimo toną. Jei taip, tada jūsų modulis veikia gerai.

Mes ketiname naudoti SIM800 GSM modemą, kuris palaiko keturių dažnių juostų 850/900/1800/1900 MHz. jei turite SIM900 modemą, nereikia jaudintis, programa ir grandinė yra suderinami šiame projekte.

Dabar jūs būtumėte įgiję idėją apie GSM modemą, dabar sužinokime, kaip jį susieti su „Arduino“.

Grandinės schema:

Kaip galite padaryti išvadą iš diagramos, grandinės jungtis yra labai lengva. Jums tiesiog reikia 3 vyriškos ir moteriškos antraštės kaiščių. USB laidas šiame projekte yra privalomas, nes mes ketiname bendrauti per nuoseklųjį monitorių.

Visada maitinkite GSM modemą naudodamiesi išoriniu adapteriu. „Arduino“ maitinimas yra nepakankamas GSM modemui, jis netgi gali perkrauti „Arduino“ įtampos reguliatorių.

Viskas apie aparatinę dalį. Dabar pereikime prie kodavimo.

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---------------//

Nepamirškite taško (.) Kiekviename pranešimo gale , priešingu atveju jis neišsiųs pranešimo nurodytu programos numeriu. Programoje x pakeiskite 10 skaitmeninių telefono numerių. Įsitikinkite, kad SIM kortelėje turite veikiantį SMS planą.

Jei nesate iš Indijos, programoje pakeiskite šalies kodą.

Pavyzdžiui:

JK: +44
JAV: +1
Kanadai: +1
Rusijai: +7

Taip pat galite automatizuoti pranešimą, kurį siunčia GSM modemas, tinkamai koduodami „Arduino“. Savo telefone galite gauti automatinius įspėjimus apie pranešimus, tokius kaip: apsaugos nuo vagystės, priešgaisrinės signalizacijos, orų perspėjimo jūsų vietovėje ir kt.

Jūs netgi galite prisijungti prie interneto naudodami GPRS GSM modeme, tačiau tai yra kito straipsnio tema.

Viename iš ateinančių straipsnių sužinosime Kaip gauti SMS naudojant GSM modemą ir „Arduino“

Jei turite daugiau klausimų, kaip siųsti SMS naudojant GSM modemą, klauskite komentarų skyriuje.

Kaip gauti SMS naudojant GSM modemą

Pirmiau pateiktoje diskusijoje mes sužinojome, kaip siųsti teksto pranešimą naudojant GSM modemą, taip pat aptarėme GSM modemo pagrindus.

Šiame skyriuje aptarsime, kaip gauti SMS per „Arduino IDE“ nuoseklųjį monitorių. Mes ne tik gausime SMS, bet ir išsiųsime tekstinius pranešimus paspausdami skirtingus klavišus. Akimirksniu paspaudus „s“ bus išsiųstas išankstinis tekstinis pranešimas, paspaudus „r“, bus gautos realiuoju laiku siunčiamos SMS žinutės.

Štai autoriaus prototipas:

Kaip tai veikia

Grandinė, skirta gauti SMS naudojant GSM modeną, yra labai paprasta, jums reikia tik 3 vyriškos ir moteriškos antraštės kaiščių. GSM modemo TX yra prijungtas prie „arduino“ kaiščio Nr. 9, o „GSM modemo RX“ - prie „arduino“ kontakto Nr.

Visada naudokite išorinį maitinimo šaltinį GSM modemui, nejunkite 5 Vcc iš „arduino“ į „GSM“ modemą, nes yra didelė tikimybė perkrauti „arduino“ įtampos reguliatorių.

Nepamirškite įdiegti SMS tarifų mažintuvo ar panašaus dalyko SMS abonemente, kad sumažintumėte SMS išlaidas.

Priešingu atveju išsiųsdami keletą SMS žinučių sąskaitos likutis bus tuščias, nes po kiekvieno išsiųsto mobiliojo ryšio paslaugų teikėjo patvirtinimo nebus, nes SIM kortelė yra GSM modeme.

Vienintelis patvirtinimas, kurį gaunate, yra įspėjamasis SMS pranešimas apie tuščią sąskaitą, todėl būkite atsargūs dėl savo išlaidų. Dabar pereikime prie šio projekto kodavimo.

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-------------//

Telefono numerių įvedimas

Įveskite gavėjo telefono numerį programoje „xxxxxxxxxxx“, pradžioje nurodydami savo šalies kodą.

Įveskite tekstą, kurį norite siųsti į programą, kabutėse: gsm.println („Sveiki, aš esu GSM modemas !!!“) // SMS tekstas, kurį norite siųsti

Sudarykite programą ir įkelkite į „Arduino“.

Įdėkite SIM kortelę ir įjunkite GSM modemą su išoriniu maitinimo šaltiniu ir 3 sekundes paspauskite maitinimo mygtuką (priklausomai nuo modelio), palaukite 10–20 sekundžių, kol bus sukurtas mobilusis tinklas, tinklo šviesos diodas turėtų mirksėti kartą per 3 sekundes. Jei viskas bus padaryta aukščiau, mes būsime pasirengę žengti kitą žingsnį.

Dabar atidarykite nuoseklųjį monitorių ir paspauskite „r“. GSM modemas yra paruoštas priimti SMS. Dabar siųskite teksto pranešimą iš bet kurio mobiliojo telefono į SIM modulio, įdėto į GSM modemą, numerį.
Teksto pranešimas turėtų pasirodyti serijiniame monitoriuje, panašiai kaip parodyta žemiau:

„Sveikas pasaulis“ yra pranešimas, siunčiamas į GSM modemą, taip pat rodomas numeris, iš kurio siunčiamas tekstinis pranešimas.

Dabar leiskite siųsti SMS iš anksto programoje įrašytu numeriu su iš anksto įvestu pranešimu. Paspauskite „s“ ir pamatysite ką nors panašaus, kas pavaizduota žemiau: Išsiųsta SMS yra „Hello I am GSM modem“.

Dabar jūs žinote, kaip siųsti ir kaip gauti SMS naudojant GSM modemą.




Pora: „Bluetooth“ variklio valdiklio grandinė Kitas: Kaip suprojektuoti indukcinio šildytuvo grandinę