Hogyan küldhetünk és fogadhatunk SMS-t a GSM modem használatával

Próbálja Ki A Műszerünket A Problémák Kiküszöbölésére





Ebben a cikkben megtudjuk, hogyan küldhetünk és fogadhatunk SMS-t az Arduino által vezérelt GSM modem használatával. Lássuk, mi a GSM modem, hogyan lehet interfészt adni az Arduinóval, hogyan lehet SMS-t küldeni a beállítással.

Azt is meg fogjuk vizsgálni, hogy mik azok az alkalmazások, amelyeket a GSM-modemmel el tudunk érni, kivéve az ember által küldött szöveges üzeneteket.



Mi a GSM modem?

A GSM a globális mobil kommunikációs rendszert jelenti. Ez egy szabvány, amelyet az ETSI (Európai Telekommunikációs Standard Intézet) fejlesztett ki, és leírta a 2G kommunikáció protokolljait.

Ez az első digitális protokoll a mobil kommunikációhoz, amelyet a teljes duplex hangkommunikációra optimalizáltak. Dióhéjban a teljes duplex kommunikáció azt jelenti, hogy mindkét fél egyszerre küldhet / fogadhat adatokat (vagy hangot).



A GSM protokoll lehetővé teszi a csomagkapcsolt adatok, például GPRS és EDGE átvitelét is.

SIM800 GSM modem:

A GSM modem olyan hardver, amely érvényes SIM-kártyát (Subscriber Identity Module) fogad el, alapvetően bármelyik SIM-kártya működni fog, amely támogatja a GSM-protokollt és hálózati előfizetéssel.

Olyan, mint egy mobiltelefon, képernyő és billentyűzet nélkül. Négy I / O tűvel rendelkezik, a választott típustól függően.

Kettő a TX-hez és az RX-hez (adás és vétel), a másik két csap a VCC-hez és a GND-hez, ami mindenütt közös.

Ez a modem és a számítógép közötti soros kommunikáció RS232 portjából is áll, azonban ebben a projektben nem fogjuk használni.

Normál DC tápcsatlakozóval rendelkezik, amely külső áramforrásokból, például feszültségadapterekből táplálható.

Üzemi feszültsége 5 és 12 V között van a DC aljzaton, típustól függően. 3 LED-jelzővel rendelkezik, az áramellátás, az állapot és a hálózat számára.

A tápellátás LED jelzi az áramellátást, az állapotjelző LED azt jelzi, hogy a GSM modem működik-e vagy sem, a hálózati LED pedig a mobil hálózat létrehozását jelzi.

Kezdetben a hálózati LED másodpercenként villog a hálózat keresése közben, miután létrehozta a mobil hálózatot, 3 másodpercenként villog.

A bekapcsológombot 2-3 másodpercig kell lenyomnia a GSM-modem aktiválásához, miután végzett, a mobil hálózathoz reteszelődik.

A GSM modem működésének ellenőrzéséhez egyszerűen hívja fel azt a számot, amelybe behelyezte a SIM-kártyát. Csengőhangot kell kapnia. Ha mégis, akkor a modulja jól működik.

SIM800 GSM modemet fogunk használni, amely támogatja a négysávos 850/900/1800/1900 MHz-et. Ha SIM900 modemje van, ne aggódjon, a program és az áramkör kompatibilis ebben a projektben.

Most már kapott némi ötletet a GSM modemről, most megtanuljuk, hogyan kell összekapcsolni az arduino-val.

Kördiagramm:

Amint következtethetünk a diagramra, az áramköri kapcsolat rendkívül egyszerű. Csak 3 hím-nő fejléc csapra van szüksége. Az USB kábel kötelező ebben a projektben, mivel soros monitoron keresztül fogunk kommunikálni.

A GSM modemet mindig külső adapterrel táplálja. Az arduino tápellátása nem elegendő a GSM modem számára, sőt túlterhelheti az arduino feszültségszabályozóját.

Ez csak a hardver részről szól. Most térjünk át a kódolásra.

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 felejtse el az üzenet minden végén található pontot (.) , különben nem küldi el az üzenetet az előírt számra a programban. Cserélje x-et a 10 digitális telefonszámára a programban. Győződjön meg arról, hogy a SIM-kártyáján működik egy működő SMS-csomag.

Ha nem Indiából származik, kérjük, változtassa meg az ország kódját a programban.

Például:

Egyesült Királyság esetében: +44
USA számára: +1
Kanada esetében: +1
Oroszország esetében: +7

Automatizálhatja azt az üzenetet is, amelyet a GSM modem küld, az Arduino megfelelő kódolásával. Automatikus üzenetjelzéseket kaphat telefonján, például lopásgátló, tűzjelző, időjárási riasztás stb.

Akár GPRS-mel is csatlakozhat az internethez a GSM modemben, de erről egy másik cikk szól.

Az elkövetkező cikkek egyikében megtudjuk Hogyan fogadhat SMS-t a GSM modem és az Arduino használatával

Ha további kérdése van az SMS küldésével kapcsolatban a GSM modem használatával, kérdezzen bátran a megjegyzés részben.

Hogyan fogadhat SMS-t a GSM modem használatával

A fenti megbeszélés során megtanultuk, hogyan küldhetünk szöveges üzenetet GSM modem használatával, és megvitattuk a GSM modem alapjait is.

Ebben a szakaszban megvitatjuk, hogyan lehet SMS-t fogadni az arduino IDE soros monitorján keresztül. Nem csak SMS-t fogunk kapni, hanem szöveges üzenetet is küldünk a különböző gombok megnyomásával. Az „s” megnyomásával egy pillanatra előre beírt szöveges üzenetet küldhetünk, az „r” megnyomásával pedig valós idejű SMS-t kapunk.

Íme a szerző prototípusa:

Hogyan működik

Az SMS-ek GSM moden keresztül történő fogadásának kapcsolata nagyon egyszerű, csak 3 hím-nő fejléc-csapra van szükség. A GSM modem TX-je az arduino 9. számú csatlakozójához, a GSM-modem RX-je pedig az arduino 8. számú csatlakozójához van csatlakoztatva, és a föld-föld kapcsolat is megadatik a GSM és az arduino között.

Mindig külső tápegységet használjon a GSM modemhez, ne csatlakoztasson 5Vcc-t az arduinóról a GSM-modemre, mivel jó eséllyel túlterheli az arduino feszültségszabályozóját.

Ne felejtse el az SMS-díjcsökkentőt vagy hasonlót bevezetni az SMS-előfizetésébe az SMS-költségek csökkentése érdekében.

Ellenkező esetben több SMS elküldése után a számlaegyenlege üres marad, mivel minden elküldött SMS után nem érkezik nyugtázás a mobilszolgáltatótól, mivel a SIM-kártya a GSM modemben van.

Az egyetlen nyugtázás, ha figyelmeztető SMS-t kapsz az üres számláddal kapcsolatban, ezért légy óvatos a kiadásokkal kapcsolatban. Most térjünk át a projekt egy részének kódolására.

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

A telefonszámok megadása

Írja be a címzett telefonszámát a program „xxxxxxxxxxx” rovatába, az elején az országkóddal.

Írja be az idézőjelbe a programba küldeni kívánt szöveget: gsm.println ('Hello, GSM modem vagyok !!!') // Az elküldeni kívánt SMS-szöveg

Fordítsd le a programot és töltsd fel az arduino-ra.

Helyezze be a SIM-kártyát, és kapcsolja be a külső tápegységgel ellátott GSM-modemet, majd nyomja meg a bekapcsológombot 3 másodpercig (típustól függően), várjon 10-20 másodpercet a mobilhálózat létrehozásához, a hálózati LED-nek 3 másodpercenként egyszer villognia kell. Ha minden a fentiekben leírtak megtörtént, készen állunk a következő lépésre.

Most nyissa meg a soros monitort és nyomja meg az „r” gombot. A GSM modem készen áll az SMS fogadására. Most küldjön szöveges üzenetet bármely mobiltelefonról a SIM-számra, amely be van helyezve a GSM-modembe.
A szöveges üzenetnek fel kell pattannia a soros monitorra, ami hasonló az alábbiakhoz:

A „Hello world” a GSM modemre küldött üzenet, és megjelenik az a szám is, ahonnan a szöveges üzenetet elküldjük.

Most hagyja, hogy SMS-t küldjön a programban előre megadott számra, előre beírt üzenettel. Nyomja meg az „s” gombot, és valami hasonlót lát az alábbiakban: Az elküldött SMS „Hello, GSM modem vagyok”.

Most már tudja, hogyan kell SMS-t küldeni és hogyan fogadni az SMS-t a GSM modem használatával.




Előző: Bluetooth motorvezérlő áramkör Következő: Indukciós fűtő áramkör megtervezése