Kako pošiljati in prejemati SMS s pomočjo modema GSM

Preizkusite Naš Instrument Za Odpravo Težav





V tem članku se bomo naučili, kako pošiljati in prejemati SMS z modemom GSM, ki ga nadzoruje Arduino. Poglejmo, kaj je GSM modem, kako ga povezati z Arduino, kako poslati SMS z nastavitvijo.

Prav tako bomo raziskali, katere vse aplikacije lahko dosežemo z modemom GSM, razen pošiljanja besedilnih sporočil s strani človeka.



Kaj je GSM modem?

GSM pomeni Globalni sistem za mobilne komunikacije, to je standard, ki ga je razvil ETSI (Evropski inštitut za telekomunikacijske standarde) in opisal protokole za komunikacijo 2G.

To je prvi digitalni protokol za mobilno komunikacijo, ki je optimiziran za polno dupleksno glasovno komunikacijo. Na kratko, dupleksna komunikacija pomeni, da lahko obe strani hkrati pošljeta / sprejmeta podatke (ali glas).



Protokol GSM omogoča tudi prenos paketnih podatkov, kot sta GPRS in EDGE.

SIM800 GSM modem:

GSM modem je strojna oprema, ki sprejema veljavno kartico SIM (Subscriber Identity Module), v bistvu bo delovala katera koli SIM, ki podpira protokol GSM in z omrežno naročnino.

Je kot mobilni telefon brez zaslona in tipkovnice. Ima štiri I / O nožice, odvisno od izbranega modela.

Dva za TX in RX (oddajanje in sprejemanje), druga dva zatiča za VCC in GND, kar je skupno pri vseh.

Vsebuje tudi vrata RS232 za serijsko komunikacijo med modemom in računalnikom, vendar tega projekta ne bomo uporabili.

Ima standardni vtič za enosmerni tok, ki se lahko napaja iz zunanjih virov napajanja, kot so napetostni adapterji.

Ima delovno napetost od 5 do 12V na vtičnici DC, odvisno od modela. Ima 3 LED indikatorje za napajanje, stanje in omrežje.

LED za napajanje označuje prisotnost moči, LED za stanje prikazuje, ali GSM modem deluje ali ne, LED za omrežje pa opozarja na vzpostavitev mobilnega omrežja.

Med iskanjem omrežja na začetku utripa vsako sekundo, ko vzpostavi mobilno omrežje, utripa vsake 3 sekunde.

Za aktiviranje modema GSM morate za 2 do 3 sekunde pritisniti gumb za vklop, ko končate, se zaskoči v mobilno omrežje.

Če želite preveriti, ali GSM modem deluje, pokličite številko, na katero ste vstavili kartico SIM. Morali bi dobiti zvonjenje. V nasprotnem primeru vaš modul deluje v redu.

Uporabili bomo SIM800 GSM modem, ki podpira štiripasovni 850/900/1800/1900 MHz. če imate modem SIM900, vas ni treba skrbeti, program in vezje sta v tem projektu združljiva.

Zdaj bi dobili nekaj idej o modemu GSM, zdaj pa se naučimo, kako ga povezati z arduinom.

Shema vezja:

Kot lahko sklepate iz diagrama, je vezje vezja preprosto. Potrebujete le 3 zatiči za moške in ženske. Pri tem projektu je obvezen kabel USB, saj bomo komunicirali prek serijskega monitorja.

GSM modem vedno napajajte z zunanjim adapterjem. Moč iz arduina je za GSM modem nezadostna, lahko celo preobremeni napetostni regulator arduina.

To je vse o delu strojne opreme. Zdaj pa pojdimo na kodiranje.

Program:

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

Ne pozabite na piko (.) Na vsakem koncu sporočila , sicer sporočila ne bo poslal na predpisano številko v programu. V programu zamenjajte x z vašo 10 digitalno telefonsko številko. Prepričajte se, da imate na kartici SIM delujoč paket SMS.

Če niste iz Indije, v programu spremenite kodo države.

Na primer:

Za Združeno kraljestvo: +44
Za ZDA: +1
Za Kanado: +1
Za Rusijo: +7

Sporočilo, ki ga pošlje modem GSM, lahko avtomatizirate tudi tako, da ustrezno kodirate Arduino. Na telefon lahko prejmete samodejna opozorila o sporočilih, na primer opozorilo proti kraji, požarni alarm, vremensko opozorilo na vašem območju itd.

Na internet se lahko celo povežete z GPRS v modemu GSM, vendar je to predmet drugega članka.

V enem od prihodnjih člankov se bomo naučili Kako prejemati SMS s pomočjo modema GSM in Arduino

Če imate dodatna vprašanja o tem, kako poslati SMS s pomočjo modema GSM, vas prosimo, da vprašate v oddelku za komentarje.

Kako prejemati SMS s pomočjo modema GSM

V zgornji razpravi smo se naučili pošiljanja besedilnih sporočil z uporabo modema GSM in razpravljali tudi o osnovah modema GSM.

V tem poglavju bomo razpravljali o tem, kako prejemati SMS prek serijskega monitorja arduino IDE. Ne samo, da bomo prejemali SMS, ampak tudi pošiljali besedilna sporočila s pritiskom na različne tipke. Za trenutek s pritiskom na “s” pošljete besedilno sporočilo s predhodnim vnosom, s pritiskom na “r” boste prejeli sporočilo SMS v realnem času.

Tu je avtorjev prototip:

Kako deluje

Vezje za prejemanje sporočil SMS z uporabo modema GSM je zelo preprosto, potrebujete le 3 zatiči za moške in ženske. Modem TX GSM je povezan s pinom št. 9 arduina, RX modema GSM pa s pinom št. 8 arduina, povezava med tlemi in tlemi pa je podana tudi med GSM in arduino.

Vedno uporabljajte zunanje napajanje za modem GSM, ne povezujte 5Vcc iz arduina na modem GSM, saj obstaja velika verjetnost, da bo napetost regulatorja arduina preobremenjena.

Ne pozabite v naročnino na SMS vstaviti rezalnika tarif za SMS ali kaj podobnega za zmanjšanje stroškov SMS.

V nasprotnem primeru boste po pošiljanju več sporočil SMS izpraznili stanje računa, saj po vsakem poslanem sporočilu mobilnega operaterja ne bo potrdil, ker je kartica SIM v modemu GSM.

Edino potrdilo, ki ga prejmete, je opozorilno sporočilo SMS glede praznega računa, zato bodite previdni pri stroških. Zdaj pa pojdimo na kodiranje dela tega projekta.

Program:

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

Vnos telefonskih številk

V program vnesite telefonsko številko prejemnika na »xxxxxxxxxxx« s kodo države na začetku.

Besedilo, ki ga želite poslati v program, vnesite pod narekovajem: gsm.println ('Pozdravljeni, sem modem GSM !!!') // Besedilo SMS, ki ga želite poslati

Sestavite program in naložite v arduino.

Vstavite kartico SIM in vklopite modem GSM z zunanjim napajanjem in pritisnite gumb za vklop za 3 sekunde (odvisno od modela), počakajte 10 do 20 sekund, da vzpostavite mobilno omrežje, omrežna lučka mora utripati enkrat v 3 sekundah. Če je vse zgoraj navedeno končano, smo pripravljeni na naslednji korak.

Zdaj odprite serijski monitor in pritisnite “r”, modem GSM je pripravljen za prejemanje sporočil SMS. Zdaj pošljite besedilno sporočilo s katerega koli mobilnega telefona na številko kartice SIM, ki je vstavljena v modem GSM.
Sporočilo SMS bi se moralo pojaviti na serijskem monitorju, podobno kot je prikazano spodaj:

'Hello world' je sporočilo, poslano na modem GSM, in prikazana je tudi številka, s katere je poslano besedilno sporočilo.

Zdaj naj pošlje SMS na vnaprej vneseno številko v programu s predhodno vnesenim sporočilom. Pritisnite “s” in nekaj podobnega bo prikazano spodaj: Poslani SMS je “Hello, am GSM modem”.

Zdaj veste, kako pošiljati in kako prejemati SMS z modemom GSM.




Prejšnja: Vezje krmilnika motorja Bluetooth Naprej: Kako oblikovati vezje indukcijskega grelca