Jak wysyłać i odbierać wiadomości SMS za pomocą modemu GSM

Wypróbuj Nasz Instrument Do Eliminowania Problemów





W tym artykule dowiemy się, jak wysyłać i odbierać SMS-y za pomocą modemu GSM sterowanego przez Arduino. Zobaczmy, czym jest modem GSM, jak go połączyć z Arduino, jak wysłać SMS-a z konfiguracją.

Zamierzamy również zbadać, jakie są wszystkie aplikacje, które możemy osiągnąć za pomocą modemu GSM, inne niż wysyłanie wiadomości tekstowych przez człowieka.



Co to jest modem GSM?

GSM to skrót od Global System for Mobile communication. Jest to standard opracowany przez ETSI (Europejski Instytut Norm Telekomunikacyjnych), który opisał protokoły komunikacji 2G.

Jest to pierwszy cyfrowy protokół komunikacji mobilnej zoptymalizowany do komunikacji głosowej w trybie pełnego dupleksu. Krótko mówiąc, komunikacja w trybie pełnego dupleksu oznacza, że ​​obie strony mogą jednocześnie wysyłać / odbierać dane (lub głos).



Protokół GSM umożliwia również przesyłanie danych pakietowych, takich jak GPRS i EDGE.

Modem GSM SIM800:

Modem GSM to sprzęt akceptujący ważną kartę SIM (Subscriber Identity Module), w zasadzie będzie działać każda karta SIM, która obsługuje protokół GSM i posiada abonament sieciowy.

To jest jak telefon komórkowy bez ekranu i klawiatury. Posiada cztery piny I / O w zależności od wybranego modelu.

Dwa dla TX i RX (nadawanie i odbiór), kolejne dwa piny dla VCC i GND, co jest wspólne dla wszystkich.

Zawiera również port RS232 do komunikacji szeregowej pomiędzy modemem a komputerem, jednak nie będziemy go używać w tym projekcie.

Posiada standardowe gniazdo zasilania DC, które może być zasilane z zewnętrznych źródeł zasilania, takich jak adaptery napięcia.

Ma napięcie robocze od 5 do 12 V na gnieździe DC, w zależności od modelu. Posiada 3 wskaźniki LED wskazujące zasilanie, stan i sieć.

Dioda LED zasilania wskazuje obecność zasilania, dioda stanu LED wskazuje, czy modem GSM działa, czy nie, dioda LED sieci wskazuje ustanowienie sieci komórkowej.

Początkowo dioda sieci miga co jedną sekundę podczas wyszukiwania sieci, po ustanowieniu sieci komórkowej miga co 3 sekundy.

Musisz nacisnąć przycisk zasilania przez 2 do 3 sekund, aby aktywować modem GSM, po zakończeniu podłącza się do sieci komórkowej.

Aby sprawdzić, czy Twój modem GSM działa, wystarczy zadzwonić pod numer, na który włożyłeś kartę SIM. Powinieneś dostać oddzwonienie. Jeśli tak, Twój moduł działa poprawnie.

Będziemy używać modemu SIM800 obsługującego czterozakresowe częstotliwości 850/900/1800/1900 MHz. Jeśli posiadasz modem SIM900, nie musisz się martwić, program i obwód są kompatybilne w tym projekcie.

Teraz miałbyś pewne pojęcie o modemie GSM, teraz nauczmy się, jak połączyć go z arduino.

Schemat obwodu:

Jak można wywnioskować ze schematu, połączenie obwodu jest bardzo łatwe. Potrzebujesz tylko 3 szpilek męskich do żeńskich. Kabel USB jest obowiązkowy w tym projekcie, ponieważ będziemy komunikować się przez monitor szeregowy.

Zawsze zasilaj modem GSM za pomocą zewnętrznego adaptera. Moc z arduino jest niewystarczająca dla modemu GSM, może nawet przeciążyć regulator napięcia arduino.

Chodzi o część sprzętową. Teraz przejdźmy do kodowania.

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

Nie zapomnij o kropce (.) Na każdym końcu wiadomości , w przeciwnym razie nie wyśle ​​wiadomości na podany numer w programie. Zastąp x swoim cyfrowym numerem telefonu 10 w programie. Upewnij się, że masz działający plan SMS na karcie SIM.

Jeśli nie jesteś z Indii, zmień kod kraju w programie.

Na przykład:

Dla Wielkiej Brytanii: +44
Dla USA: +1
W Kanadzie: +1
Rosja: +7

Możesz również zautomatyzować wysyłanie wiadomości przez modem GSM poprzez odpowiednie zakodowanie Arduino. Możesz otrzymywać automatyczne powiadomienia o wiadomościach na swój telefon, takie jak: ostrzeżenie przed kradzieżą, alarm pożarowy, alert pogodowy w Twojej okolicy itp.

Można nawet łączyć się z internetem przez GPRS w modemie GSM, ale jest to temat na inny artykuł.

Dowiemy się z jednego z najbliższych artykułów Jak odbierać wiadomości SMS za pomocą modemu GSM i Arduino

Jeśli masz dalsze pytania dotyczące wysyłania wiadomości SMS za pomocą modemu GSM, możesz je zadać w sekcji komentarzy.

Jak odbierać wiadomości SMS za pomocą modemu GSM

W powyższej dyskusji dowiedzieliśmy się, jak wysłać wiadomość tekstową za pomocą modemu GSM, a także omówiliśmy podstawy modemu GSM.

W tej sekcji omówimy, jak odbierać SMS-y przez szeregowy monitor arduino IDE. Będziemy nie tylko odbierać wiadomości SMS, ale także wysyłać wiadomości tekstowe, naciskając różne klawisze. Przez chwilę naciśnięcie „s” spowoduje wysłanie wcześniej wprowadzonej wiadomości tekstowej, a naciśnięcie „r” otrzyma SMS w czasie rzeczywistym.

Oto prototyp autora:

Jak to działa

Obwód do odbierania wiadomości SMS za pomocą modenu GSM jest bardzo prosty, potrzebujesz tylko 3 szpilek męskich do żeńskich. TX modemu GSM jest podłączony do pinu # 9 arduino, a RX modemu GSM jest podłączony do pinu # 8 arduino, a połączenie uziemienia jest również podane między GSM i arduino.

Zawsze używaj zewnętrznego źródła zasilania dla modemu GSM, nie podłączaj 5 Vcc z arduino do modemu GSM, ponieważ istnieje duża szansa na przeciążenie regulatora napięcia arduino.

Nie zapomnij zaimplementować obniżenia ceny SMS-ów lub czegoś podobnego w swojej subskrypcji SMS-ów, aby zmniejszyć wydatki na SMS-y.

W przeciwnym razie po wysłaniu kilku SMS-ów saldo konta zostanie puste, ponieważ po każdym wysłanym SMS-ie nie będzie żadnego potwierdzenia od operatora komórkowego, ponieważ karta SIM znajduje się w modemie GSM.

Jedyne potwierdzenie, które otrzymujesz, to SMS z ostrzeżeniem, dotyczący pustego konta, więc uważaj na swoje wydatki. Teraz przejdźmy do kodowania części tego projektu.

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

Wprowadzanie numerów telefonów

Wprowadź w programie numer telefonu odbiorcy na „xxxxxxxxxxx”, zaczynając od numeru kierunkowego swojego kraju.

Wpisz w cudzysłowie tekst, który chcesz wysłać w programie: gsm.println ('Hello I am GSM modem !!!') // Tekst SMS, który chcesz wysłać

Skompiluj program i prześlij do arduino.

Włóż kartę SIM i zasil modem GSM zewnętrznym zasilaczem i naciśnij przycisk zasilania przez 3 sekundy (w zależności od modelu), odczekaj 10 do 20 sekund na ustanowienie sieci komórkowej, dioda sieci powinna migać raz na 3 sekundy. Jeśli wszystko jest zrobione powyżej, jesteśmy gotowi do następnego kroku.

Teraz otwórz monitor szeregowy i naciśnij „r” - modem GSM jest gotowy do odbioru wiadomości SMS. Teraz wyślij wiadomość tekstową z dowolnego telefonu komórkowego na numer karty SIM włożonej do modemu GSM.
Wiadomość tekstowa powinna pojawić się na monitorze szeregowym, podobnie jak na ilustracji poniżej:

„Hello world” to wiadomość wysłana do modemu GSM oraz numer, z którego wysłano SMS-a.

Teraz wyślijmy SMS-a na wpisany wcześniej numer w programie z wcześniej wpisaną wiadomością. Naciśnij „s”, a zobaczysz coś podobnego zilustrowanego poniżej: Wysłany SMS to „Witam, jestem modem GSM”.

Teraz wiesz, jak wysyłać i odbierać wiadomości SMS za pomocą modemu GSM.




Poprzedni: Obwód sterownika silnika Bluetooth Dalej: Jak zaprojektować obwód nagrzewnicy indukcyjnej