Arduino ile SIM800L Kullanımı
SIM800L'ye Giriş
Şu anda piyasaya çıkan birçok GSM modülü var. Ve SIM800L neredeyse en ucuzu ve diğer aynı özelliklere sahiptir. Yani, bu modül harika.
Bu modül başka bir modül gibi çalışır, arduino ile iletişim kurmak için AT Komutunu kullanır ve aynı komuta sahiptir. Kullandığı AT komut listesini buradan indirebilirsiniz.
-
-
SIM800L Deneyimleri
( Arduino,Pic, USB To Tll) ile AT komutları sorgularken baud 9600 ile hata almanız veya karekter bozulması durumunda baud 115200 alarak aşagıdaki işlemleri sıralayın
Karekter hatası ( Sim800 115200 default baud olmasından kaynaklı) aşagıdaki işlemi uyguladıgınz yeterlidir.
AT+IPR=0 Tüm baud rate Çalışması için verilecek kod
4) ATE0&W
2) AT+IPR=9600
1) ATE0
bu işlemlerden sonra Voltajınızı 4V 2A aldınız ama baglantı sorunu yasıyorsanız AT komutlardan sinyal sevyenize bakın eger yeterli sinyal yakalayamıyorsa muhtemel sorununuz anten ile alakalıdır üzerindeki metal antenin çokda başarılı olmadıgı bir gerçektir 3db'lik pcb anten burada sorununuzu çözeceltir. Tabi sim kartın pini olmayacak ve dogru takıldıgından emin iseniz. Bunların at komutlarını yazmadım PDF dosyasını açmanız göz atmanız için.
Yine önerilerim arasında mutlaka 3db lik pcb anten kullanmanız ve arduino kablo baglantısını mümkün mertebe kısa ve düzgün kablolarla yapmanız önemlidir.
Her şeyin doğru şekilde yapıldığını doğrulayan basit metin koduyla başlayalım. Aşağıdaki kod Arduino terminalinden komutları alır ve GSM Modülüne gönderir. Ayrıca, GSM modülünden Arduino'ya komutları başka şekilde de gönderir. Kod ayrıca, Yazılım Seri kütüphanesinin de iyi çalıştığını doğrular.
#include <SoftwareSerial.h>
String Arsp, Grsp;
SoftwareSerial gsm(10, 11); // RX, TX
void setup() {
Serial.begin(9600);
Serial.println("Testing GSM SIM800L");
gsm.begin(4800);
}
void loop() {
if(gsm.available())
{
Grsp = gsm.readString();
Serial.println(Grsp);
}
if(Serial.available())
{
Arsp = Serial.readString();
gsm.println(Arsp);
}
}
Kodun işlenizi ve gelen yanıtlarda aşagıdakigibi olacaktır.
SMS gönderme
Artık mesaj göndermek için temel Sim800l kütüphanesini kullanacağız. Kod sizden telefon numarası ve gönderilecek mesajı girmenizi ister ve mesajı gönderir!
#include <Sim800l.h>
#include <SoftwareSerial.h> //is necesary for the library!!
Sim800l Sim800l; //to declare the library
char text[161]=""; //buffer to store message
char number[11]=""; //phone number to send message
int cnt;
bool error; //to catch the response of sendSms
void setup(){
Sim800l.begin(); // initializate the library.
Serial.begin(9600);
}
void loop(){
//Read the Number
Serial.print("\nEnter 10 digit Phone Number:");
while(Serial.available()<=0);
cnt = Serial.readBytesUntil('\n',number, 11);
number[cnt] = '\0';
Serial.println(number);
//clear the serial input buffer so that no typed characters are pending
delay(1000); //delay required before clearing the input buffer
while(Serial.available()>0) //clear buffer
{
Serial.read();
}
//Read the Message to be sent
Serial.print("Enter Message:");
while(Serial.available()<=0);
cnt = Serial.readBytesUntil('\n',text, 160);
text[cnt] = '\0';
Serial.println(text);
delay(1000);
while(Serial.available()>0) //clear buffer
{
Serial.read();
}
//Send the message and display the status
error = Sim800l.sendSms(number,text);
if(error)
Serial.println("Error Sending Message");
Serial.println("Message Sent Successfully!");
}
Ünal KURTGÖZ (Yazar)
Hayal gücü bilgiden kıymetlidir.
Makaleleri
16
Makale Okunması
89178
Yorumunuz Gönder