GSM Modem Kullanarak SMS Gönderme ve Alma

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





Bu yazımızda Arduino tarafından kontrol edilen GSM modemi kullanarak nasıl SMS gönderip alacağımızı öğreneceğiz. Bakalım GSM modem nedir, Arduino ile nasıl arayüzlenir, kurulum ile nasıl SMS gönderilir.

Ayrıca, bir insan tarafından kısa mesaj göndermek dışında GSM modem ile gerçekleştirebileceğimiz tüm uygulamaların neler olduğunu keşfedeceğiz.



GSM modem nedir?

GSM, Mobil iletişim için Global Sistem anlamına gelir. 2G iletişim protokollerini tanımlayan ETSI (Avrupa Telekomünikasyon Standartları Enstitüsü) tarafından geliştirilen bir standarttır.

Tam çift yönlü sesli iletişim için optimize edilmiş mobil iletişim için ilk dijital protokoldür. Özetle, tam çift yönlü iletişim, her iki tarafın aynı anda veri (veya ses) gönderip alabileceği anlamına gelir.



GSM protokolü ayrıca GPRS ve EDGE gibi paket verilerinin aktarılmasına izin verir.

SIM800 GSM modem:

GSM modem, geçerli bir SIM kartı (Abone Kimlik Modülü) kabul eden bir donanımdır, temelde GSM protokolünü destekleyen ve bir ağ aboneliği ile herhangi bir SIM çalışacaktır.

Ekran ve tuş takımı olmayan bir cep telefonu gibidir. Seçtiğiniz modele bağlı olarak dört I / O pini vardır.

TX ve RX için iki (gönderme ve alma), VCC ve GND için diğer iki pin, hepsinde ortaktır.

Modem ile bilgisayar arasında seri haberleşme için RS232 portundan oluşmaktadır ancak bu projede kullanmayacağız.

Voltaj adaptörleri gibi harici güç kaynaklarından çalıştırılabilen standart DC güç jakına sahiptir.

Modele bağlı olarak DC jak üzerinde 5 ile 12V arasında değişen çalışma voltajına sahiptir. Güç, durum ve ağ için 3 LED göstergesi vardır.

Güç LED'i gücün varlığını, durum LED'i GSM modemin çalışıp çalışmadığını, Ağ LED'i mobil ağın kurulduğunu gösterir.

Başlangıçta ağ LED'i, ağ ararken her saniyede bir yanıp söner, mobil ağı kurduktan sonra her 3 saniyede bir yanıp söner.

GSM modemi etkinleştirmek için güç düğmesine 2 ila 3 saniye basmanız gerekir, bitirdikten sonra mobil ağa kilitlenir.

GSM modeminizin çalıştığını doğrulamak için, SIM kartınızı taktığınız numarayı aramanız yeterlidir. Geri arama sesini almalısınız. Varsa, modülünüz iyi çalışıyor demektir.

Dört bant 850/900/1800/1900 MHz'yi destekleyen SIM800 GSM modem kullanacağız. SIM900 modeme sahipseniz endişelenmenize gerek yok, program ve devre bu projede uyumludur.

Şimdi, GSM modem hakkında biraz fikir edinmiş olurdunuz, şimdi onu arduino ile nasıl arayüzleyeceğimizi öğrenelim.

Devre şeması:

Diyagramdan çıkarabileceğiniz gibi, devre bağlantısı son derece kolaydır. Sadece 3 erkek-dişi başlık pimine ihtiyacınız var. Seri monitör üzerinden haberleşeceğimiz için bu projede bir USB kablosu zorunludur.

GSM modeme her zaman harici adaptör ile güç verin. Arduino'dan gelen güç GSM modem için yetersizdir, hatta arduino'nun voltaj regülatörünü aşırı yükleyebilir.

Hepsi donanım kısmı ile ilgili. Şimdi kodlamaya geçelim.

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

Mesajın her sonundaki noktayı (.) Unutmayın aksi takdirde mesajı programda belirtilen numaraya göndermez. Programda x'i 10 dijital telefon numaranızla değiştirin. SIM kartınızda çalışan bir SMS planınız olduğundan emin olun.

Hindistanlı değilseniz, lütfen programdaki ülke kodunu değiştirin.

Örneğin:

İngiltere için: +44
ABD için: +1
Kanada için: +1
Rusya için: +7

Arduino'yu uygun şekilde kodlayarak, GSM modem tarafından gönderilen mesajı da otomatikleştirebilirsiniz. Telefonunuzda hırsızlık önleme uyarısı, yangın alarm uyarısı, yerel bölgenizdeki hava durumu uyarısı vb. Gibi otomatik mesaj uyarıları alabilirsiniz.

GSM modemde GPRS ile internete bile bağlanabilirsiniz, ancak bu başka bir makalenin konusu.

Önümüzdeki makalelerden birinde öğreneceğiz GSM Modem ve Arduino Kullanarak SMS Alma

GSM Modem kullanarak nasıl SMS gönderebileceğinizle ilgili başka sorularınız varsa, yorum bölümünde sormaktan çekinmeyin.

GSM Modem Kullanarak SMS Alma

Yukarıdaki tartışmada, GSM modemi kullanarak bir metin mesajının nasıl gönderileceğini öğrendik ve ayrıca GSM modemin temellerini tartıştık.

Bu bölümde arduino IDE'nin seri monitörü üzerinden nasıl SMS alınacağını tartışacağız. Sadece SMS almayacağız, aynı zamanda farklı tuşlara basarak kısa mesaj göndereceğiz. Bir an için, 's' tuşuna basmak ön giriş metin mesajını, 'r' tuşuna basmak ise gerçek zamanlı SMS alacaktır.

İşte yazarın prototipi:

Nasıl çalışır

Bir GSM modeni kullanarak SMS alma devresi çok basittir, sadece 3 erkek-dişi başlık pinine ihtiyacınız vardır. GSM modemin TX'i arduino'nun 9 numaralı pinine bağlanır ve GSM modemin RX'i arduino'nun 8 numaralı pinine bağlanır ve ayrıca GSM ile arduino arasında topraklama bağlantısı verilir.

GSM modem için her zaman harici güç kaynağı kullanın, arduino'nun voltaj regülatörünü aşırı yükleme olasılığı yüksek olduğundan, 5Vcc'yi arduino'dan GSM modeme bağlamayın.

SMS harcamalarınızı azaltmak için SMS aboneliğinize SMS ücret indirimi veya benzeri bir şey uygulamayı unutmayın.

Aksi takdirde, SIM kart GSM modemde olduğu için, gönderilen her SMS'den sonra cep telefonu sağlayıcınızdan herhangi bir onay olmayacağından, birkaç SMS gönderdikten sonra hesap bakiyeniz boş kalacaktır.

Aldığınız tek onay, boş hesabınızla ilgili uyarı SMS'idir, bu nedenle harcamalarınız konusunda dikkatli olun. Şimdi bu projenin kodlama kısmına geçelim.

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

Telefon Numaralarının Girilmesi

Başında ülke kodunuz olacak şekilde programdaki 'xxxxxxxxxxx' üzerine alıcının telefon numarasını girin.

Programa göndermek istediğiniz metni tırnak işareti içerisine giriniz: gsm.println ('Merhaba ben GSM modemim !!!') // Göndermek istediğiniz SMS metni

Programı derleyin ve arduino'ya yükleyin.

SIM kartı takın ve GSM modeme harici güç kaynağı ile güç verin ve güç düğmesine 3 saniye basın (modele bağlı olarak), mobil ağ kurmak için 10 ila 20 saniye bekleyin, ağ LED'i her 3 saniyede bir yanıp sönmelidir. Yukarıda belirtilen her şey yapılırsa bir sonraki adıma geçmeye hazırız.

Şimdi seri monitörü açın ve 'r' tuşuna basın, GSM modem SMS almaya hazırdır. Şimdi herhangi bir cep telefonundan, GSM modeme takılı SIM numarasına bir metin mesajı gönderin.
Metin mesajı, aşağıda gösterilene benzer bir şekilde seri monitörde açılmalıdır:

'Merhaba dünya', GSM modeme gönderilen mesajdır ve metin mesajının gönderildiği numara da görüntülenir.

Şimdi programda önceden girilen numaraya önceden girilmiş mesaj ile SMS gönderelim. 'S' tuşuna basın ve aşağıda gösterilen benzer bir şeyi göreceksiniz: Gönderilen SMS 'Merhaba, ben GSM modemim' dir.

Artık, GSM modemi kullanarak nasıl SMS gönderileceğini ve nasıl alınacağını biliyorsunuz.




Önceki: Bluetooth Motor Kontrol Devresi Sonraki: İndüksiyon Isıtıcı Devresi Nasıl Tasarlanır