Как да изпращам и получавам SMS с помощта на GSM модем

Опитайте Нашия Инструмент За Премахване На Проблемите





В тази статия ще научим как да изпращате и получавате SMS с помощта на GSM модем, който се контролира от Arduino. Нека видим какво е GSM модем, как да го свържем с Arduino, как да изпратим SMS с настройката.

Ще проучим и кои са всички приложения, които можем да постигнем с GSM модем, различни от изпращането на текстово съобщение от човек.



Какво е GSM модем?

GSM означава Глобална система за мобилни комуникации. Това е стандарт, разработен от ETSI (European Telecommunications Standard Institute), който описва протоколите за 2G комуникация.

Това е първият цифров протокол за мобилна комуникация, който е оптимизиран за пълен дуплекс гласова комуникация. Накратко, дуплексната комуникация означава, че двете страни могат да изпращат / получават данни (или глас) едновременно.



Протоколът GSM също позволява прехвърляне на пакетни данни, като GPRS и EDGE.

SIM800 GSM модем:

GSM модемът е хардуер, който приема валидна SIM карта (Subscriber Identity Module), като цяло всяка SIM карта ще работи, която поддържа GSM протокол и с мрежов абонамент.

Това е като мобилен телефон без екран и клавиатура. Той има четири I / O щифта в зависимост от избрания от вас модел.

Два за TX и RX (предаване и приемане), други два щифта за VCC и GND, което е често срещано във всички.

Той също така се състои от RS232 порт за последователна комуникация между модема и компютъра, но няма да използваме в този проект.

Той има стандартен жак за постоянен ток, който може да се захранва от външни източници на захранване като адаптери за напрежение.

Той има работно напрежение от 5 до 12V на DC жак, в зависимост от модела. Той има 3 LED индикатора за захранване, състояние и мрежа.

Светодиодът за захранване показва наличието на захранване, светодиодът за състояние показва дали GSM модемът работи или не, светодиодът Network показва установяването на мобилна мрежа.

Първоначално светодиодът на мрежата мига на всяка секунда, докато търси мрежа, след като установи мобилната мрежа, мига на всеки 3 секунди.

Трябва да натиснете бутона за захранване за 2 до 3 секунди, за да активирате GSM модема, след като го направите, той се фиксира към мобилната мрежа.

За да проверите дали вашият GSM модем работи, просто се обадете на номера, на който сте поставили SIM картата. Трябва да получите сигнал за позвъняване. Ако го направи, тогава вашият модул работи добре.

Ще използваме SIM800 GSM модем, който поддържа четирилентови 850/900/1800/1900 MHz. ако притежавате модем SIM900, не се притеснявайте, програмата и веригата са съвместими в този проект.

Сега бихте получили някаква представа за GSM модема, сега нека се научим как да го свързваме с arduino.

Електрическа схема:

Както можете да заключите от диаграмата, свързването на веригата е лесно. Просто ви трябват 3 мъжки към женски заглавни щифта. В този проект е задължителен USB кабел, тъй като ще комуникираме чрез сериен монитор.

Винаги захранвайте GSM модема с външен адаптер. Мощността от arduino е недостатъчна за GSM модема, дори може да претовари регулатора на напрежението на arduino.

Всичко е свързано с хардуерната част. Сега да преминем към кодиране.

Програма:

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

Не забравяйте точката (.) Във всеки край на съобщението , в противен случай няма да изпрати съобщението до предписания номер в програмата. Заменете x с вашия 10 цифров телефонен номер в програмата. Уверете се, че имате работещ SMS план на вашата SIM карта.

Ако не сте от Индия, моля, променете кода на държавата в програмата.

Например:

За Великобритания: +44
За САЩ: +1
За Канада: +1
За Русия: +7

Можете също така да автоматизирате съобщението, което се изпраща от GSM модем, като кодирате по подходящ начин Arduino. Можете да получавате автоматизирани сигнали за съобщения на телефона си, като: предупреждение за кражба, предупреждение за пожарна аларма, предупреждение за времето на вашия местен район и т.н.

Можете дори да се свържете с интернет с GPRS в GSM модем, но това е предмет на друга статия.

В една от следващите предстоящи статии ще научим Как да получавам SMS с помощта на GSM модем и Arduino

Ако имате допълнителни въпроси относно това как да изпратите SMS чрез GSM модем, не се колебайте да попитате в раздела за коментари.

Как да получавам SMS с помощта на GSM модем

В горната дискусия научихме как да изпращаме текстово съобщение с помощта на GSM модем и също обсъдихме основите на GSM модема.

В този раздел ще обсъдим как да получавате SMS чрез сериен монитор на IDE на arduino. Ние не само ще получаваме SMS, но и ще изпращаме текстово съобщение чрез натискане на различни клавиши. За миг натискането на „s“ ще изпрати предварително въведено текстово съобщение, натискането на „r“ ще получи SMS в реално време.

Ето прототипа на автора:

Как работи

Схемата за получаване на SMS с помощта на GSM модем е много проста, трябват ви само 3 мъжки към женски заглавни щифта. TX на GSM модема е свързан към пин # 9 на arduino, а RX на GSM модема е свързан към pin # 8 на arduino и връзката земя към земя също е дадена между GSM и arduino.

Винаги използвайте външно захранване за GSM модем, не свързвайте 5Vcc от arduino към GSM модем, тъй като има голям шанс да претоварите регулатора на напрежението на arduino.

Не забравяйте да приложите SMS резачка или нещо подобно в абонамента си за SMS, за да намалите разходите си за SMS.

В противен случай ще получите празно салдо по сметката след изпращане на няколко SMS, тъй като няма да има потвърждение от вашия клетъчен доставчик след всеки изпратен SMS, тъй като SIM картата е в GSM модема.

Единственото потвърждение, което получавате, е предупредително SMS за празната ви сметка, така че бъдете внимателни относно разходите си. Сега да преминем към кодиране на част от този проект.

Програма:

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

Въвеждане на телефонни номера

Въведете телефонния номер на получателя на „xxxxxxxxxxx“ в програмата с кода на вашата държава в началото.

Въведете текста, който искате да изпратите в програмата, в кавичката: gsm.println („Здравейте, аз съм GSM модем !!!“) // SMS текстът, който искате да изпратите

Компилирайте програмата и качете в arduino.

Поставете SIM картата и захранвайте GSM модема с външно захранване и натиснете бутона за захранване за 3 секунди (в зависимост от модела), изчакайте 10 до 20 секунди, за да установите мобилна мрежа, светодиодът на мрежата трябва да мига веднъж на всеки 3 секунди. Ако всичко, посочено по-горе, е направено, ние сме готови да преминем към следващата стъпка.

Сега отворете серийния монитор и натиснете „r“, GSM модемът е готов за получаване на SMS. Сега изпратете текстово съобщение от всеки мобилен телефон на номера на SIM картата, която е поставена в GSM модема.
Текстовото съобщение трябва да се появи на серийния монитор, нещо подобно на илюстрираното по-долу:

„Здравей, свят“ е съобщението, изпратено до GSM модем, и номерът, от който е изпратено текстовото съобщение, също се показва.

Сега позволете да изпратите SMS на предварително въведения номер в програмата с предварително въведено съобщение. Натиснете „s“ и ще видите нещо подобно, илюстрирано по-долу: Изпратеният SMS е „Здравейте, аз съм GSM модем“.

Сега знаете как да изпращате и как да получавате SMS с помощта на GSM модем.




Предишен: Верига на контролера на двигателя на Bluetooth Напред: Как да проектираме схема на индукционен нагревател