3000 TL ve üzeri siparişlerde Kargo Ücretsiz!
Arduino ile SIM800C Arayan Numarayı Çekme Rehberi

Arduino ile SIM800C Arayan Numarayı Çekme Rehberi

Arduino ile SIM800C arayan numara çekme projesi, gelen çağrıların numaralarını yakalayıp kaydetmek isteyenler için güçlü bir başlangıç noktasıdır. Ev güvenliği, çağrı merkezi veya erişim kontrolü gibi uygulamalarda hangi numaranın aradığını bilmek kritik olabilir. Bu rehberde SIM800C modülünün CLIP özelliğini kullanarak arayan numarayı Arduino ile nasıl okuyacağınızı, bağlantıları ve geliştirilmiş kodu adım adım bulacaksınız.

4 dk okuma 4849 okunma

Arduino ile SIM800C arayan numara çekme projesi, gelen çağrıların numaralarını yakalayıp kaydetmek isteyenler için güçlü bir başlangıç noktasıdır. Ev güvenliği, çağrı merkezi veya erişim kontrolü gibi uygulamalarda hangi numaranın aradığını bilmek kritik olabilir. Bu rehberde SIM800C modülünün CLIP özelliğini kullanarak arayan numarayı Arduino ile nasıl okuyacağınızı, bağlantıları ve geliştirilmiş kodu adım adım bulacaksınız.

SIM800C ile Arayan Numara Çekme Projesi Neden Önemli?

GSM modülleri yalnızca SMS veya arama yapmak için değil, gelen çağrıları algılamak için de kullanılır. SIM800C, AT+CLIP komutuyla arayan numara bilgisini seri porttan gönderir. Bu sayede Arduino, numarayı okuyabilir, isterseniz SD karta yazabilir veya bir ekranda gösterebilir. Özellikle uzaktan erişim, alarm sistemleri ve otomasyon projelerinde bu özellik büyük kolaylık sağlar. Geleneksel sabit hatlarda olduğu gibi SIM kart hattınızda arayan numara görüntüleme servisinin aktif olması gerektiğini unutmayın; çoğu GSM operatörü bu hizmeti varsayılan olarak sunar.

Gerekli Malzemeler ve Arduino Bağlantı Şeması

Proje için bir Arduino Uno veya uyumlu kart, SIM800C modülü, aktif bir SIM kart, 3.7V-4.2V 2A kapasiteli güç kaynağı veya Li-Po pil, jumper kablolar ve isteğe bağlı olarak regüle devre gereklidir. SIM800C modülünün TX pini Arduino'nun D10 pinine, RX pini D11 pinine bağlanır. GND hattı ortaklanmalıdır. Modülün VCC veya lityum port girişinden besleme yapılabilir; ancak 5V-12V aralığı modül üzerindeki regülatöre göre değişebilir, bu yüzden modülün belgelerine göz atın.

Besleme ve PWRKEY Uyarıları

SIM800C gibi GSM modülleri, şebeke çekimi sırasında ani akım çeker. Bu nedenle besleme 3.4V-4.4V arasında ve en az 2A kapasiteli olmalıdır. Zayıf veya kalitesiz kablo, modülün kapanmasına veya ağa kayıt olamamasına neden olur. Ayrıca modülü başlattıktan sonra PWRKEY pinine yaklaşık 1-2 saniyelik düşük darbe uygulanarak modül açılmalıdır. Bazı modüllerde bu pin otomatik tetiklenir, ancak devrenizde manuel kontrol gerekiyorsa bu adımı atlamayın.

Arayan Numara (CLIP) Verisi Nasıl Okunur?

SIM800C'ye gelen bir arama olduğunda seri porttan önce RING satırı, ardından +CLIP satırı gönderilir. Örnek bir çıktı şu şekildedir:

RING
+CLIP: "+905468422222",145,"",0,"",0

Bu satırda tırnak içindeki +905468422222 değeri arayan numaradır. Numarayı çekmek için AT+CLIP=1 komutuyla CLIP bildirimi açılmalıdır. Arduino tarafında gelen veri satır satır okunup +CLIP ile başlayan satır içinden tırnak işaretleri arasındaki bölüm alınır. Bu yöntem, karakter karakter okumaya göre çok daha kararlıdır ve ek karakterlerden etkilenmez.

Arduino SIM800C Arayan Numara Çekme Kodu ve Açıklaması

Aşağıdaki kod, yazılım seri portu üzerinden SIM800C ile haberleşir. Kurulumda CLIP bildirimi açılır, sinyal kalitesi ve SIM kart durumu kontrol edilir. Döngüde ise gelen her satır incelenir; +CLIP satırındaki tırnak içindeki numara ayrıştırılır ve seri monitöre yazdırılır. Bu sayede istediğiniz numaraya göre eylem tetikleyebilirsiniz.

Kodun Çalışma Mantığı

Kod, gsm.readStringUntil('\n') ile her satırı okur. Satır +CLIP: ile başlıyorsa, indexOf ile ilk ve ikinci tırnak işareti bulunur. İki tırnak arasındaki metin arayanNo değişkenine atanır. Böylece numara +90 ile birlikte tam olarak elde edilir. Daha sonra istenirse bu numara bir if koşuluyla karşılaştırılır veya bir veri tabanına gönderilir. Kod, önceki sürümdeki sayaç ve bayrak karmaşasını ortadan kaldırarak daha okunabilir ve bakımı kolay hale gelmiştir.

Geliştirilmiş Arduino Kodu


#include <SoftwareSerial.h>

SoftwareSerial gsm(10, 11); // Arduino RX, TX

const unsigned long TIMEOUT = 10000;
String arayanNo = "";

void setup() {
  Serial.begin(9600);
  gsm.begin(9600);
  Serial.println("SIM800C arayan numara yakalama sistemi başlatılıyor...");
  delay(3000);
  
  gsm.println("AT");
  goster();
  gsm.println("AT+CLIP=1");
  goster();
  gsm.println("AT+CSQ");
  goster();
  gsm.println("AT+CCID");
  goster();
  gsm.println("AT+CREG?");
  goster();
  gsm.println("AT+CBC");
  goster();
}

void loop() {
  arayanNumaraYakala();
}

void arayanNumaraYakala() {
  if (gsm.available()) {
    String satir = gsm.readStringUntil('\n');
    satir.trim();
    
    // CLIP satırını bul: +CLIP: "+905xxxxxxxxx",145,"",0,"",0
    if (satir.startsWith("+CLIP:")) {
      int ilkIndex = satir.indexOf('"');
      int sonIndex = satir.indexOf('"', ilkIndex + 1);
      
      if (ilkIndex != -1 && sonIndex != -1 && sonIndex > ilkIndex) {
        arayanNo = satir.substring(ilkIndex + 1, sonIndex);
        Serial.print("Arayan Numara: ");
        Serial.println(arayanNo);
        
        if (arayanNo == "+905468422222") {
          Serial.println("Hiber Bilişim arıyor.");
        }
        
        arayanNo = "";
      }
    }
  }
  delay(50);
}

void goster() {
  delay(500);
  while (Serial.available()) {
    gsm.write(Serial.read());
  }
  while (gsm.available()) {
    Serial.write(gsm.read());
  }
}

Test ve Sık Karşılaşılan Sorunlar

Devreyi kurduktan sonra Arduino'ya kodu yükleyin ve seri monitörü 9600 baud hızında açın. Modülün ağa kayıt olması için birkaç saniye bekleyin. Cep telefonunuzdan SIM kartınızı arayın; seri monitörde önce RING, ardından Arayan Numara satırını görmelisiniz. Eğer numara görünmüyorsa SIM kartınızın arayan numara gösterme servisini operatörünüzden kontrol edin. Ayrıca beslemenin yetersiz olması, baud hızının uyuşmaması veya PWRKEY pininin tetiklenmemesi en sık karşılaşılan sorunlardır. Bağlantı kablolarının kısa ve sağlam olmasına özen gösterin.

Arduino ile SIM800C arayan numara çekme projesi, gelen çağrıları takip etmek için düşük maliyetli ve esnek bir çözümdür. AT+CLIP komutu ve satır tabanlı ayrıştırma sayesinde numara bilgisi güvenilir biçimde elde edilir. Bu rehberdeki bağlantıları ve geliştirilmiş kodu kullanarak kendi çağrı izleme sisteminizi kurabilirsiniz.

Bu projeyi kurduktan sonra gelen aramaları SD karta kaydetmeyi veya belirli numaralara göre röle tetiklemeyi deneyin. Sorularınızı ve sonuçlarınızı yorumlarda paylaşmayı unutmayın.

Paylaş
Tüm yazılara dön

Yorumlar

Bu yazıya henüz yorum yapılmamış. İlk yorumu siz yazın.

E-posta adresiniz yayınlanmaz. Yorumlar yayınlanmadan önce denetlenir.

Bu form Google reCAPTCHA ile korunmaktadır; Google Gizlilik Politikası ve Hizmet Şartları geçerlidir.

Benzer Yazılar

Sim800L Gsm Modul ile IoT Entegrasyonu

SIM800L GSM modülünü kullanarak projelerinizi IoT ile entegre edin! Bu rehber, SIM800L GSM modülü ile IoT entegrasyonu hakkında bilgiler ve…

Devamını Oku

TTGo SIM800 GPRS HTTP Request

Arduino platformu üzerinde TTGo SIM800 GPRS modülü kullanarak HTTP isteği gönderme adımları. Bu rehberde, GSM tabanlı projeler ve Arduino il…

Devamını Oku

Arduino ile SIM800L Kullanımı

Arduino ile SIM800L Kullanımı: IoT Projeleriniz İçin Adım Adım Rehber Bu blog yazısında, Arduino ile SIM800L modülünü kullanarak IoT proj…

Devamını Oku
Hızlı Kargo Hafta içi saat 15:00 öncesinde oluşturduğunuz tüm siparişler aynı gün kargoya verilmektedir.
Güvenli Alışveriş Tüm bilgileriniz 256 Bit SSL sertifikasıyla korunmaktadır.
Uzman Teknik Servis Ürünleriniz için profesyonel bakım ve onarım.
Ücretsiz Kargo Belirli tutarın üzerindeki alışverişlerinizde kargo ücreti ödemezsiniz.

Bültenimize Abone Ol

Kampanya ve fırsatlardan ilk siz haberdar olun.

Kuruköprü Mah. Sefa Özler Cad. özden İşmerkezi kat 7/74 Seyhan / adana

Ödeme Yöntemleri

Visa Mastercard Banka Kartı World

©2017 - 2026 Tüm hakları saklıdır.