Cum să trimiteți și să primiți SMS-uri folosind modemul GSM

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





În acest articol vom învăța cum să trimitem și să primim SMS folosind modemul GSM care este controlat de Arduino. Să vedem, ce este modemul GSM, cum să-l interfațăm cu Arduino, cum să trimitem SMS-uri cu configurarea.

De asemenea, vom explora care sunt toate aplicațiile pe care le putem realiza cu modemul GSM, altele decât trimiterea de mesaje text de către un om.



Ce este modemul GSM?

GSM înseamnă Global System for Mobile Communications, este un standard care a fost dezvoltat de ETSI (European Telecommunications Standard Institute) care a descris protocoalele pentru comunicațiile 2G.

Este primul protocol digital pentru comunicații mobile optimizat pentru comunicații vocale full duplex. Pe scurt, comunicarea full duplex înseamnă că ambele părți pot trimite / primi date (sau voce) simultan.



Protocolul GSM permite, de asemenea, transferul de date de pachete, cum ar fi GPRS și EDGE.

Modem SIM800 GSM:

Modemul GSM este un hardware care acceptă o cartelă SIM validă (modul de identitate a abonatului), practic orice SIM va funcționa, care acceptă protocolul GSM și cu un abonament de rețea.

Este ca un telefon mobil fără ecran și tastatură. Are patru pini I / O în funcție de modelul pe care îl alegeți.

Doi pentru TX și RX (transmis și recepționat), alți doi pini pentru VCC și GND, ceea ce este comun în toate.

De asemenea, este format din port RS232 pentru comunicarea serială între modem și computer, totuși nu vom folosi în acest proiect.

Are mufă de alimentare DC standard, care poate fi alimentată din surse de alimentare externe, cum ar fi adaptoare de tensiune.

Are o tensiune de lucru cuprinsă între 5 și 12V pe mufa DC, în funcție de model. Are 3 indicatoare LED, pentru alimentare, stare și rețea.

LED-ul de alimentare indică prezența puterii, LED-ul de stare indică dacă modemul GSM funcționează sau nu, LED-ul de rețea indică stabilirea rețelei mobile.

Inițial, LED-ul de rețea clipește la fiecare secundă în timp ce căutați rețeaua, după ce a stabilit rețeaua mobilă, clipește la fiecare 3 secunde.

Trebuie să apăsați butonul de alimentare timp de 2-3 secunde pentru activarea modemului GSM, după ce ați terminat, acesta se blochează la rețeaua mobilă.

Pentru a verifica dacă modemul dvs. GSM funcționează, trebuie doar să apelați numărul la care ați introdus cartela SIM. Ar trebui să primiți ton de apel. Dacă da, modulul dvs. funcționează bine.

Vom folosi modemul SIM800 GSM care acceptă quad-band 850/900/1800/1900 MHz. dacă dețineți un modem SIM900, nu trebuie să vă faceți griji, programul și circuitul sunt compatibile în acest proiect.

Acum, ați fi avut o idee despre modemul GSM, acum să învățăm cum să-l interfațați cu arduino.

Diagrama circuitului:

După cum puteți deduce din diagramă, conexiunea la circuit este ușoară. Aveți nevoie doar de 3 pini antet de la mascul la feminin. Un cablu USB este obligatoriu în acest proiect, deoarece vom comunica prin intermediul monitorului serial.

Alimentați întotdeauna modemul GSM cu adaptor extern. Puterea de la arduino este insuficientă pentru modemul GSM, ar putea chiar suprasolicita regulatorul de tensiune al arduino-ului.

Totul este despre partea hardware. Acum, să trecem la codare.

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

Nu uitați punctul (.) La fiecare capăt al mesajului , altfel nu va trimite mesajul la numărul prescris în program. Înlocuiți x cu numărul dvs. de telefon digital 10 din program. Asigurați-vă că aveți un plan SMS funcțional pe cartela SIM.

Dacă nu sunteți din India, vă rugăm să modificați codul țării din program.

De exemplu:

Pentru Marea Britanie: +44
Pentru SUA: +1
Pentru Canada: +1
Pentru Rusia: +7

De asemenea, puteți automatiza mesajul trimis de modemul GSM codificând în mod corespunzător Arduino. Puteți primi alerte de mesaje automate pe telefonul dvs., cum ar fi: alertă antifurt, alarmă de incendiu, alertă meteo în zona dvs. locală etc.

Vă puteți conecta chiar la internet cu GPRS în modem GSM, dar face obiectul unui alt articol.

Într-unul din următoarele articole viitoare vom învăța Cum să primiți SMS folosind modemul GSM și Arduino

Dacă aveți întrebări suplimentare cu privire la modul de trimitere a SMS-urilor utilizând modemul GSM, nu ezitați să întrebați în secțiunea de comentarii.

Cum să primiți SMS folosind modemul GSM

În discuția de mai sus am învățat cum să trimitem un mesaj text folosind modemul GSM și am discutat, de asemenea, elementele de bază ale modemului GSM.

În această secțiune vom discuta despre cum să primiți SMS prin monitorul serial al IDE arduino. Nu vom primi doar SMS-uri, ci vom trimite și mesaje text apăsând diferite taste. Pentru o clipă, apăsând pe „s” se vor trimite mesaje text de pre-introducere, apăsând pe „r” se vor primi SMS-uri în timp real.

Iată prototipul autorului:

Cum functioneaza

Circuitul pentru primirea SMS-urilor folosind un moden GSM este foarte simplu, aveți nevoie doar de 3 pini antet de la masculin la feminin. TX-ul modemului GSM este conectat la pinul # 9 al arduino și RX al modemului GSM este conectat la pinul # 8 al arduino, iar conexiunea de la masă la masă este, de asemenea, dată între GSM și arduino.

Utilizați întotdeauna sursa de alimentare externă pentru modemul GSM, nu conectați 5Vcc de la arduino la modemul GSM, deoarece există șanse mari de a supraîncărca regulatorul de tensiune al arduino.

Nu uitați să implementați reducerea tarifelor SMS sau ceva similar în abonamentul dvs. SMS pentru reducerea cheltuielilor SMS.

În caz contrar, veți ajunge la soldul contului gol după ce ați trimis mai multe SMS-uri, deoarece nu va exista nicio confirmare de la furnizorul dvs. de telefonie mobilă după fiecare SMS trimis, deoarece cartela SIM se află în modemul GSM.

Singura confirmare pe care o primiți este SMS-uri de avertizare cu privire la contul dvs. gol, deci fiți prudenți cu privire la cheltuielile dvs. Acum să trecem la partea de codificare a acestui proiect.

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

Introducerea numerelor de telefon

Introduceți numărul de telefon al destinatarului pe „xxxxxxxxxxx” în program cu codul de țară la început.

Introduceți textul pe care doriți să îl trimiteți în program în ghilimele: gsm.println („Bună ziua sunt modem GSM !!!”) // Textul SMS pe care doriți să îl trimiteți

Compilați programul și încărcați pe arduino.

Introduceți cartela SIM și alimentați modemul GSM cu sursă de alimentare externă și apăsați butonul de alimentare timp de 3 secunde (în funcție de model), așteptați 10 până la 20 de secunde pentru a stabili rețeaua mobilă, LED-ul rețelei ar trebui să clipească o dată la fiecare 3 secunde. Dacă totul este menționat mai sus este finalizat, suntem gata să mergem pentru pasul următor.

Acum deschideți monitorul serial și apăsați „r” modemul GSM este gata să primească SMS-uri. Acum trimiteți un mesaj text de pe orice telefon mobil la numărul SIM-ului care este introdus pe modemul GSM.
Mesajul text ar trebui să apară pe monitorul serial, ceva similar cu cel ilustrat mai jos:

„Hello world” este mesajul trimis modemului GSM și este afișat și numărul de la care este trimis mesajul text.

Acum, permiteți să trimiteți SMS la numărul pre-introdus în program cu mesaj pre-introdus. Apăsați „s” și veți vedea ceva similar ilustrat mai jos: SMS-ul trimis este „Hello I am GSM modem”.

Acum, știți cum să trimiteți și cum să primiți SMS folosind modemul GSM.




Precedent: Circuit controler de motor Bluetooth Următorul: Cum să proiectați un circuit de încălzire cu inducție