Sådan sendes og modtages SMS ved hjælp af GSM-modem

Prøv Vores Instrument Til At Fjerne Problemer





I denne artikel vil vi lære, hvordan man sender og modtager SMS ved hjælp af GSM-modem, som styres af Arduino. Lad os se, hvad GSM-modem er, hvordan man bruger det til Arduino, hvordan man sender SMS med opsætningen.

Vi skal også undersøge, hvad der er alle applikationer, vi kan opnå med GSM-modem, bortset fra at sende tekstbesked fra et menneske.



Hvad er GSM-modem?

GSM står for Global System for Mobile communication det er en standard, der blev udviklet af ETSI (European Telecommunications Standard Institute), der beskrev protokollerne til 2G-kommunikation.

Det er den første digitale protokol til mobilkommunikation, der er optimeret til fuld duplex stemmekommunikation. I en nøddeskal betyder fuld duplexkommunikation, at begge parter kan sende / modtage data (eller tale) samtidigt.



GSM-protokollen tillader også overførsel af pakkedata, såsom GPRS og EDGE.

SIM800 GSM-modem:

GSM-modem er en hardware, der accepterer et gyldigt SIM-kort (Subscriber Identity Module), stort set ethvert SIM-kort fungerer, som understøtter GSM-protokol og med et netværksabonnement.

Det er som en mobiltelefon uden skærm og tastatur. Den har fire I / O-ben, afhængigt af hvilken model du vælger.

To til TX og RX (sende og modtage), yderligere to ben til VCC og GND, hvilket er almindeligt i alle.

Den består også af RS232-port til seriel kommunikation mellem modemet og computeren, men vi vil ikke bruge i dette projekt.

Det har standard jævnstrømsstik, som kan drives fra eksterne strømkilder såsom spændingsadaptere.

Den har arbejdsspænding fra 5 til 12V på jævnstrømsstik, afhængigt af modellen. Den har 3 LED-indikatorer til strøm, status og netværk.

Strøm-LED indikerer tilstedeværelsen af ​​strøm, status-LED indikerer, om GSM-modemet fungerer eller ej, Netværks-LED indikerer oprettelsen af ​​mobilnetværk.

Indledningsvis blinker netværks-LED hvert andet sekund, mens du søger efter netværk, når det opretter mobilnetværket, blinker det hvert 3. sekund.

Du skal trykke på tænd / sluk-knappen i 2 til 3 sekunder for at aktivere GSM-modemet, når du er færdig, låses det fast til mobilnetværket.

For at kontrollere, at dit GSM-modem fungerer, skal du bare ringe til det nummer, du har indsat SIM-kortet i. Du skal få ringetone. Hvis det gør det, fungerer dit modul fint.

Vi skal bruge SIM800 GSM-modem, som understøtter quad-band 850/900/1800/1900 MHz. Hvis du ejer et SIM900-modem, behøver du ikke bekymre dig, programmet og kredsløbet er kompatibelt i dette projekt.

Nu ville du have fået en idé om GSM-modem. Lad os nu lære at interface det med arduino.

Kredsløbsdiagram:

Som du kan udlede fra diagrammet, er kredsløbsforbindelsen død let. Du har bare brug for 3 mandlige til kvindelige headernåle. Et USB-kabel er obligatorisk i dette projekt, da vi skal kommunikere via seriel skærm.

Tænd altid for GSM-modemet med en ekstern adapter. Strømmen fra arduino er utilstrækkelig til GSM-modemet, det kan endda overbelaste spændingsregulatoren på arduinoen.

Det handler kun om hardware-del. Lad os nu gå til kodning.

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

Glem ikke prikken (.) I hver ende af meddelelsen , ellers sender den ikke beskeden til det foreskrevne nummer i programmet. Udskift x med dit 10 digitale telefonnummer i programmet. Sørg for, at du har et fungerende SMS-abonnement på dit SIM-kort.

Hvis du ikke er fra Indien, skal du ændre landekoden i programmet.

For eksempel:

For Storbritannien: +44
For USA: +1
For Canada: +1
For Rusland: +7

Du kan også automatisere den besked, der sendes af GSM-modem ved at kode Arduino korrekt. Du kan modtage automatiske beskedalarmer på din telefon, såsom: tyverialarm, brandalarmalarm, vejralarm i dit lokale område osv.

Du kan endda oprette forbindelse til internettet med GPRS i GSM-modem, men det er genstand for en anden artikel.

I en af ​​de kommende kommende artikler vil vi lære Sådan modtages sms ved hjælp af GSM-modem og Arduino

Hvis du har yderligere spørgsmål vedrørende, hvordan du sender SMS ved hjælp af GSM-modem, er du velkommen til at spørge i kommentarsektionen.

Sådan modtages SMS ved hjælp af GSM-modem

I ovenstående diskussion lærte vi, hvordan man sender en tekstbesked ved hjælp af GSM-modem, og diskuterede også det grundlæggende om GSM-modemet.

I dette afsnit vil vi diskutere, hvordan man modtager SMS via seriel skærm af arduino IDE. Vi modtager ikke kun SMS, men sender også sms ved at trykke på forskellige taster. Et øjeblik vil et tryk på “s” sende en præ-indtastet tekstbesked, og ved at trykke på “r” modtages SMS i realtid.

Her er forfatterens prototype:

Hvordan det virker

Kredsløbet til modtagelse af SMS ved hjælp af et GSM-moden er meget simpelt, du skal bare bruge 3 mandlige til kvindelige header-ben. TX af GSM-modem er forbundet til pin nr. 9 i arduino, og RX fra GSM-modem er forbundet med pin nr. 8 i arduino, og jord-til-jord-forbindelsen gives også mellem GSM og arduino.

Brug altid ekstern strømforsyning til GSM-modem, tilslut ikke 5Vcc fra arduino til GSM-modem, da der er god chance for at overbelaste spændingsregulatoren på arduino.

Glem ikke at implementere SMS-satskutter eller noget lignende på dit SMS-abonnement for at reducere dine SMS-udgifter.

Ellers ender du med en tom kontosaldo efter at have sendt flere SMS, da der ikke vil være nogen bekræftelse fra din mobiludbyder efter hver sendt SMS, da SIM-kortet er i GSM-modemet.

Den eneste kvittering, du får, er advarsels-SMS angående din tomme konto, så vær forsigtig med dine udgifter. Lad os nu gå til kodning af dette projekt.

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

Indtastning af telefonnumre

Indtast modtagerens telefonnummer på “xxxxxxxxxxx” i programmet med din landekode i starten.

Indtast den tekst, du vil sende i programmet, inden for anførselstegnet: gsm.println ('Hej jeg er GSM-modem !!!') // SMS-teksten, du vil sende

Kompilér programmet, og upload det til arduino.

Indsæt SIM-kortet, og tænd for GSM-modemet med ekstern strømforsyning, og tryk på tænd / sluk-knappen i 3 sekunder (afhængigt af modellen), vent i 10 til 20 sekunder for at oprette mobilnetværk, netværks-LED'en skal blinke en gang hvert 3. sekund. Hvis alt er angivet ovenfor, er gjort, er vi klar til næste trin.

Åbn nu seriel skærm, og tryk på “r” GSM-modemmet er klar til at modtage SMS. Send nu en tekstbesked fra enhver mobiltelefon til nummeret på SIM-kortet, der er indsat på GSM-modemet.
Tekstmeddelelsen skal dukke op på den serielle skærm, noget der ligner illustreret nedenfor:

“Hej verden” er den meddelelse, der sendes til GSM-modem, og det nummer, hvorfra tekstbeskeden sendes, vises også.

Lad nu sende SMS til det forudindtastede nummer i programmet med forudindtastet besked. Tryk på “s” og du vil se noget lignende illustreret nedenfor: Den sendte SMS er “Hej jeg er GSM-modem”.

Nu ved du, hvordan du sender og hvordan du modtager SMS ved hjælp af GSM-modem.




Forrige: Bluetooth Motor Controller Circuit Næste: Sådan designer du et kredsløb til en induktionsvarmer