Bu çalışmamızda GSM GSPRS shieldın arduino ile nasıl kullanılacağını, bağlantıların nasıl yapılacağını ve kodun nasıl yazılacağını inceleyeceğiz. GSM GPRS shieldlar AT komutları ile çalışmaktadır. Haberleşme modüllerine göre farklı AT komutları ile farklı işlemler yapılabilir.
Bu çalışmada SIM900 GSM GPRS shieldı kullanılmıştır.SIM 900 haberleşme modülünü kullanan bu sheild sayesinde bir telefonun yaptığı temel görevler yerine getirilebilmektedir. Örneğin arduino ile bir numara aranabilmekte, mesaj atılabilmekte ve internete girilebilmektedir.
GSM GPRS shield ile arduino bağlantısı oldukça basittir. Shield üzerindeki Tx, Rx pinleri sırasıyla arduinonun Rx, Tx pinlerine bağlanır. Haberleşme bu şekilde sağlanmış olur. Ancak birçok GSM GPRS shield 5V üzeri gerilimle ve 200mA - 1.5 A arası çalışma akımı ile çalışabilmektedir. Bu yüzden harici bir kaynaktann beslenmelidir. Bu kaynak ile arduino da aynı zamanda beslenebilir. Ancak arduinonun ve sheildın aynı kaynakla beslenmediği durumlarda groundlar birleştirilir.
Arduino GSM GPRS baglantısı
GSM GPRS Shield Arduino
RX TX
TX RX
GROUND GROUND
Çalışma videosunu buradan izleyebilirsiniz: http://www.youtube.com/watch?v=BfiY58e4OQM&feature=youtu.be
Arduino ile bir telefonun aranması ;
#include <SoftwareSerial.h>
SoftwareSerial Sim900Serial(2, 3); // sim900 gprs shield
//rx-tx sırasıyla 2 ve 3 e takılır
void setup()
{
Sim900Serial.begin(115200); // GPRS baud rate
delay(2000);
Sim900Serial.println("AT+IPR=19200"); // bu değer tüm gprs
//shieldlarında aynı değildir manuellerden bakılmalıdır
delay(500);
Sim900Serial.begin(19200); // bu değer tüm gprs
//shieldlarında aynı değildir manuellerden bakılmalıdır
delay(1000);
}
void loop()
{
Sim900Serial.println("ATD05425420000;"); // aranmasını istediğiniz
//numara girlir. ATD komutu sim900'ün AT komut manueli incelendiğinde
//arama için kullanıldığı görülür
//Örnek: Sim900Serial.println("ATD05425420000;"); vodafone müşteri
//hizmetlerinin numarası
while(1);
}
Arduino ile bir telefona mesaj atılması ;
#include <SoftwareSerial.h>
SoftwareSerial Sim900Serial(2, 3);
void setup()
{
Sim900Serial.begin(115200); // GPRS baud rate
delay(500);
Sim900Serial.println("AT+IPR=19200");
delay(500);
Sim900Serial.begin(19200); // GPRS baud rate , Tüm shieldlarda aynı değildir
delay(1000);
Serial.begin(9600); // bilgisayar seri port baud rate
Serial.println("SMS gondermek icin g tusuna basiniz: ");
}
void loop()
{
if (Serial.available())
switch(Serial.read())
{
case 'g':
SendTextMessage();
break;
}
if (Sim900Serial.available())
Serial.write(Sim900Serial.read());
}
void SendTextMessage()
{
Sim900Serial.print("AT+CMGF=1\r"); //SMS text halde gönderilir. Bu komutun ne iş yaptığı sim900 AT komut manuelinden bakılır
delay(100);
Sim900Serial.println("AT + CMGS = \"05425420000\"");//mesajın gönderileceği numara
delay(100);
Sim900Serial.println("golmuhendis.blogspot.com.tr");//gönderilecek mesaj
delay(100);
Sim900Serial.println((char)26);
delay(100);
Sim900Serial.println();
}