Kako slati i primati SMS koristeći GSM modem

Isprobajte Naš Instrument Za Uklanjanje Problema





U ovom ćemo članku naučiti kako slati i primati SMS poruke koristeći GSM modem kojim upravlja Arduino. Pogledajmo što je GSM modem, kako ga povezati s Arduinom, kako poslati SMS s postavkom.

Također ćemo istražiti koje sve aplikacije možemo postići s GSM modemom, osim slanja SMS-a od strane čovjeka.



Što je GSM modem?

GSM je skraćenica od Globalni sustav za mobilne komunikacije, to je standard koji je razvio ETSI (Europski institut za telekomunikacijske standarde) koji je opisao protokole za 2G komunikaciju.

To je prvi digitalni protokol za mobilnu komunikaciju koji je optimiziran za full duplex glasovnu komunikaciju. Ukratko, full duplex komunikacija znači da obje strane mogu istovremeno slati / primati podatke (ili glas).



GSM protokol također omogućuje prijenos paketnih podataka, kao što su GPRS i EDGE.

SIM800 GSM modem:

GSM modem je hardver koji prihvaća valjanu SIM karticu (Subscriber Identity Module), u osnovi će raditi bilo koji SIM koji podržava GSM protokol i s mrežnom pretplatom.

To je poput mobitela bez zaslona i tipkovnice. Ima četiri I / O pinova, ovisno o odabranom modelu.

Dvije za TX i RX (odašiljaj i prijem), još dvije pinove za VCC i GND, što je uobičajeno za sve.

Sastoji se i od RS232 porta za serijsku komunikaciju između modema i računala, no nećemo koristiti u ovom projektu.

Ima standardnu ​​utičnicu za istosmjernu struju koja se može napajati iz vanjskih izvora napajanja, poput naponskih ispravljača.

Ima radni napon u rasponu od 5 do 12V na DC priključnici, ovisno o modelu. Ima 3 LED indikatora za napajanje, status i mrežu.

LED za napajanje označava prisutnost napajanja, status LED prikazuje radi li GSM modem ili ne, mrežni LED pokazuje uspostavu mobilne mreže.

U početku mrežna LED lampica trepće svake sekunde dok traži mrežu, nakon što uspostavi mobilnu mrežu trepće svake 3 sekunde.

Za aktiviranje GSM modema trebate pritisnuti tipku za napajanje 2 do 3 sekunde, a nakon što se završi, zakvači se za mobilnu mrežu.

Da biste provjerili radi li vaš GSM modem, samo nazovite broj čiji ste umetnuli SIM karticu. Trebali biste dobiti povratni ton zvona. Ako se dogodi, tada vaš modul radi u redu.

Koristit ćemo SIM800 GSM modem koji podržava četveropojasne 850/900/1800/1900 MHz. ako posjedujete SIM900 modem, ne brinite, program i sklop su kompatibilni u ovom projektu.

Sad biste stekli neku ideju o GSM modemu, a sada naučimo kako ga povezati s arduinom.

Kružni dijagram:

Kao što možete zaključiti iz dijagrama, spoj kruga je vrlo lagan. Trebate samo 3 muške i ženske zaglavlja. U ovom je projektu obavezan USB kabel jer ćemo komunicirati putem serijskog monitora.

Uvijek napajajte GSM modem vanjskim adapterom. Snaga iz arduina nije dovoljna za GSM modem, čak bi mogao preopteretiti regulator napona arduina.

To je sve o hardverskom dijelu. Prijeđimo 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 zaboravite točku (.) Na svakom kraju poruke , inače neće poslati poruku na propisani broj u programu. Zamijenite x s vašim 10 digitalnih telefonskih brojeva u programu. Provjerite imate li na SIM kartici važeći SMS plan.

Ako niste iz Indije, promijenite pozivni broj države u programu.

Na primjer:

Za Veliku Britaniju: +44
Za SAD: +1
Za Kanadu: +1
Za Rusiju: ​​+7

Također možete automatizirati poruku koju šalje GSM modem odgovarajućim kodiranjem Arduina. Na telefon možete primiti automatska upozorenja za poruke, kao što su: upozorenje protiv krađe, upozorenje na požar, vremensko upozorenje na vašem lokalnom području itd.

Možete se čak povezati s internetom putem GPRS-a u GSM modemu, ali to je predmet drugog članka.

U jednom od narednih članaka koji ćemo naučiti naučit ćemo Kako primiti SMS koristeći GSM modem i Arduino

Ako imate dodatnih pitanja o tome kako poslati SMS putem GSM modema, slobodno pitajte u odjeljku za komentare.

Kako primiti SMS koristeći GSM modem

U gornjoj raspravi naučili smo kako poslati tekstualnu poruku pomoću GSM modema, a također smo razgovarali o osnovama GSM modema.

U ovom ćemo odjeljku razgovarati o načinu primanja SMS-a putem serijskog monitora arduino IDE-a. Ne samo da ćemo primiti SMS, već ćemo također poslati tekstnu poruku pritiskom na različite tipke. Na trenutak će se pritiskom na „s“ poslati unaprijed unesena tekstualna poruka, pritiskom na „r“ primit će se SMS u stvarnom vremenu.

Evo autorovog prototipa:

Kako radi

Krug za primanje SMS-a pomoću GSM modena vrlo je jednostavan, trebate samo 3 muške i ženske zaglavlja. TX GSM modema spojen je na pin 9 arduina, a RX GSM modema povezan je pin 8 Arduino, a veza između zemlje i zemlje također je data između GSM i arduino.

Uvijek koristite vanjsko napajanje za GSM modem, nemojte spajati 5 Vcc s arduina na GSM modem, jer postoji velika vjerojatnost preopterećenja regulatora napona arduina.

Ne zaboravite primijeniti rezač tarife za SMS ili nešto slično na svojoj pretplati na SMS radi smanjenja troškova za SMS.

Inače ćete na kraju dobiti prazno stanje računa nakon slanja nekoliko SMS-ova, jer neće biti potvrde vašeg mobilnog davatelja usluga nakon svakog poslanog SMS-a, jer je SIM kartica u GSM modemu.

Jedino priznanje koje dobijete je upozorenje SMS-om, u vezi s vašim praznim računom, pa budite oprezni u pogledu troškova. Sada prijeđimo na kodiranje dijela ovog 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-------------//

Unos telefonskih brojeva

Telefonski broj primatelja na 'xxxxxxxxxxx' unesite u program s kodom države na početku.

Tekst koji želite poslati u program unesite pod navodnike: gsm.println ('Pozdrav, ja sam GSM modem !!!') // SMS tekst koji želite poslati

Sastavite program i prenesite ga na arduino.

Umetnite SIM karticu i napajajte GSM modem vanjskim napajanjem i pritisnite tipku za napajanje 3 sekunde (ovisno o modelu), pričekajte 10 do 20 sekundi da uspostavite mobilnu mrežu, mrežna LED lampica trebala bi treptati jednom u svake 3 sekunde. Ako je sve gore navedeno gotovo, spremni smo za sljedeći korak.

Sada otvorite serijski monitor i pritisnite “r”, GSM modem je spreman za primanje SMS-a. Sada pošaljite tekstualnu poruku s bilo kojeg mobilnog telefona na broj SIM-a koji je umetnut u GSM modem.
Tekstualna poruka trebala bi se pojaviti na serijskom monitoru, nešto slično ilustriranom u nastavku:

'Hello world' je poruka poslana na GSM modem, a prikazuje se i broj s kojeg se šalje tekstualna poruka.

Sada, pošaljite SMS na unaprijed uneseni broj u programu s unaprijed unesenom porukom. Pritisnite „s“ i vidjet ćete nešto slično prikazano u nastavku: Poslani SMS je „Pozdrav, ja sam GSM modem“.

Sada znate kako poslati i kako primiti SMS putem GSM modema.




Prethodno: Bluetooth krug upravljačkog sklopa Dalje: Kako dizajnirati krug indukcijskog grijača