AT Komut Seti(GSM)

AT Komut Seti(GSM)

AT KOMUT SETİ

AT komut seti,  “Hayes” adında bir telekomunikasyon firması tarafından konulan bir standarttır. İsmi her komutun “AT” karakterleri ile başlamasından gelir. Biz gsm için kullanacağız ancak, fax makineleri, modemler vs cihazlar için de kullanılan bir standarttır. Bir cep telefonunda rehberden bir kişiyi seçip, arama tuşuna bastığımızda; telefonun işlemcisi, gsm modeme seri porttan ATD05xxxxxxxxx; gibi bir kod yollar ve arama böyle gerçekleşir. Biz endüstriyel gsm devrelerimizde sensör, kamera gibi dışardan gelen bilgilere göre otomatik işlem yaptığımız bir kullanıcının tuşa basması ile değil AT komutları kullanarak işlemler yaparız. Bu yüzden AT komutlarının tümünü bilmesek bile belli başlı komutları bilmemiz gerekir. Bunların en önemlileri: SMS gönderme, gelen sms’lere göre işlem yapma,  arama yapma, aramaya cevap verme, GPRS veya 3G üzerinden internete çıkıp veri alıp gönderme…

AT hakkında daha detaylı bilgi için: http://www.developershome.com/sms/atCommandsIntro.asp

 

Not: AT Komutlarını büyük harflerle girmeniz gerekmektedir. Aksi halde bazı durumlarda sorun yaşayabilirsiniz.

 1 – AT Test:

Seri port ile gönderdiğimiz komutların, modeme sorunsuzca ulaşıp ulaşmadığını anlamak için kullanılır.

Not1: Mavi renkli satırlar bizim gönderdiklerimizi simgeliyor, kırmızı renkli satırlar ise modemden gelen cevapları simgeliyor.
Not2: <> içindeki enter veya ascii kodlar ise komutu yazdıktan sonra göndermemiz gereken ascii karakterleri simgeler. Örneğin sms gönderirken mesajımızı yazdıktan sonra “ctrl+z” nin ascii kodu olan 26 kodu gönderilir. Bu gibi istisnalar dışında enter yani ascii 13 karakterini göndeririz. Sadece enter dışındaki özel karakterler için yazacağız bunun dışında her komutu enter ile sonlandırınız.

AT (enter / ascii 13)
OK

 

 2 – Komut Test:

Bir test çalışması, GSM / GPRS modem veya cep telefonu tarafından desteklenen AT komutu belli olmadığını kontrol etmek için kullanılır. Tüm komutları genişletilmiş AT Test çalışmasını destekler.

Sözdizimi:

komut =?

Örnek: AT komutu + CGMI (metinde komut adı: İstek Üretici Tanımlama), GSM / GPRS modem veya cep telefonu üreticisi adını almak için kullanılır. + CGMI desteklenir olup olmadığını test etmek için tam komut satırı aşağıdaki gibi olacaktır:

AT+CGMI=?

GSM / GPRS modem veya cep telefonunun AT komut seti + CGMI destekliyorsa, sonuç kodu “OK” şeklinde iade edilecektir:

AT+CGMI=?     CMGI isminde bir komut var mı?
OK                      Bu komut destekleniyor

GSM / GPRS modem veya cep telefonu AT komut + CGMI desteklemiyorsa, sonuç kodu “ERROR” Bu gibi iade edilecektir:

AT+CSCA=?  
ERROR

Yukarıdaki örneklerde, AT komut + CGMI herhangi bir parametre yoktur. Test edilecek AT komut parametresini (ler) varsa, parametre değeri (ler), GSM / GPRS modem veya cep telefonu tarafından desteklenen ek basılmış olabilir. Aşağıda yanıtın formatını gösteren bir örnektir. +COMMAND1 dört parametre vardır ki AT komutu bir hayali olduğunu.

AT+COMMAND1=?
+COMMAND1: (0,1),(0-10),(0,1,5-10),(“GSM”,”UCS2″)
OK

Dört parametre her birinin desteklenmiş değerleri parantez içinde verilmektedir . Virgül , parantez içindeparantezler vedeğerlerini sınırlandırmak için kullanılır . Bir tire bir değer aralığını göstermek için kullanılır. Parantez içindekideğerler,dize türünde olabilir .

Yukarıdaki örnekte , test komutunun cevap “+COMMAND1=?” Bizeaşağıdaki bilgileri sağlamaktadır:

(0,1) . İlk parametre 0 veya 1 ya kabul eder.

(0-10) . İkinci parametre 0 ile 10 arasında herhangi bir tamsayı kabul eder .

( 0,1,5-10 ) . Üçüncü parametre 0 , 1 ya da 5 ile 10 arasında bir tamsayı kabul eder.

( ” GSM ” , ” UCS2 ” ) . Dördüncü parametredize ” GSM ” veya ” UCS2 ” ya kabul eder .

AT komutları bir kaç ,test çalışması desteklenenparametre değerleri döndürmez. Bunun yerine , buAT komutununbilgi tepki olarak görünür izin verilmezdeğerleri döndürür . Bir örnek +CBC AT komutu (metinde komut adı: Pil Şarj). +CBC komutu mobil cihazın pil bağlantı durumunu ve şarj seviyesini almak için kullanılır. İki değerler AT komutu+ CBCbilgi yanıt döndürülür. Biçimi:

+CBC: connection_status,charge_level

Örneğin batarya seviyesi % 80 olan bir cihaza yazılan, AT+CBC komutunun yürütme sonucu şöyle olacaktır :

AT+CBC
+CBC: 0,80

OK

Eğer “+CBC=?” test komutunu çalıştırırsanız, desteklenen bütün parametreleri listeler . Mesela Nokia 6021 ile sonuç :

AT+CBC=?
+CBC: (0,1),(0-100)

OK

“(0,1)” parametresindeki virgül”,” 0 ya da 1 anlamına gelir, yani sadece 0 ve 1 yazabilirsiniz başka bir değer yazamazsınız.

“(0-100)”  parametresindeki tire “-” ise 0 ila 100 arasında bir sayı girebilirsiniz anlamına geliyor.

 

3 – Sim Kart Kontrolü:

AT+CPIN?                         (Sim kart durumunu sorgulamak için kullanılır)
+CPIN:  READY                (Sim kart okunabiliyor sorun yok)

OK

 

4 – Şebeke Kontrolü:

AT+CREG?                         (Şebeke durumunu sorgulamak için kullanılır)
+CREG: 0,1                         (Şebekeye bağlanmış arama yapılabilir)
OK

 

 5 – Arama Yapmak:

ATD050XXXXXXXX;       (X yerine arayacağınız numarayı yazıp entera basarsak aramamız gerçekleşir)
OK
ATH                                    (Görüşmeyi sonlandırmak için kullanılır)
OK

 

6 – Gelen Çağrılar:

.
.
RING                                   (Dışarıdan çağrı geldi)
ATA                                     (Çağrıyı kabul eder)
OK

 

7 – SMS Servis Merkez Numarası:

Sözdizimi:

+CSCA=”numara”,numara_tipi

Numara tipi olarak  129 ve 145 değerleri yaygın olarak kullanılmaktadır.

129’un anlamı :SMSC adresitipik ISDN / telefon numaralandırma planı (ITU E.164/E.163) kullanarak biçimlendirilmiş ama SMSC(Mesaj merkez numarası) adresi uluslararası bir sayı , ulusal bir sayı veya diğer türde bir dizi olup olmadığından emin değildir . Örnek numaralar : “85291234567 ” ve ” 91234567 ” .

145’in anlamı :SMSC adresi tipik ISDN / telefon numaralandırma planı (ITU E.164/E.163) kullanarak biçimlendirilmiş ve uluslararası bir numara olduğunu belirtir. Örnek adres : ” +85291234567 ” .
129: SMS  merkez numarası  “+” karakteri ile başlamıyorsa kullanılır. Örneğin “05xxxxxxxxx” .

145: SMS  merkez numarası  “+” karakteri ile başlıyorsa kullanılır. Örneğin “+905xxxxxxxxx” .

Numara tipi  isteğe bağlı bir parametre olarak, ihmal edilebilir. Bunu yaparsanız ,GSM / GPRS modem veya cep telefonu numara tipi parametresinin varsayılan değerini kullanır.

 

AT+CSCA=”+905429800033″,145  sms merkezi numarasi olarak bunu kullan, örnekte vodafonun mesaj merkez numarasını yazdık, daha önce yapmışsak tekrar yapmamıza gerek yok. Verdiğimiz numara + ile başladığı için ikinci parametreye 145 verdik
OK

AT+CSCA?    Şu anki sms merkezi numarasını sorguluyoruz.

+CSCA: “+905376901923”,145    Numaranın başında + olduğu için virgülden sonra 145 geldi

 

8 – SMS Göndermek:


AT+CMGF=1                               gelen/okunan ya da gonderilen sms’i text olarak formatla (bunu yapmazsaniz hex string geliyor ya da hex string gondermeniz gerekiyor)
OK

AT+CMGS=”05551234567″        (Entera basınca mesaj yazmaya başlamamız için > işareti geliyor, ctrl+z  yani ascii 26(decimal) ile sonlandir ya da esc ile çık)
>Bu bir test mesajidir  <CTRL+Z ya da ascii 26>     (Mesaj bitiminde Enter yerine CTRL+Z ile mesajı gönderiyoruz)
+CMGS: 81                                  (81. mesaj başarıyla gönderildi) (Eğer gönderilemeseydi ERROR dönecekti)

 

 

9 – SMS Okumak:

+CMTI: “SM”,1                          Yeni mesaj geldi uyarısı
AT+CMGR=1                               Gelen mesajı oku

+CMGR: “REC UNREAD”,”+905551234567″,”Murat”,”11/10/27,10:58:21+12″   Mesaj hakkında bilgi
Hayırlı Bayramlar                                         Mesaj içeriği alt satırda geliyor

 

10 – IMSI Sorgulama:

AT+CIMI  imsi’yi öğren

 

11 – IMEI Sorgulama:

AT+CGSN  imei’yi öğren

 

12 – PIN Kodu Girme:

AT+CPIN=”<pin>”   pin kodunu gir (gerekliyse tabi)

 

13 – Sinyal Kuvveti Sorgulama:

Telefon cekiyor mu, ne kadar cekiyor bilgisini sorgular. Dönen değer 0 ila 31.99 olur.

Örnek:

AT+CSQ
+CSQ: 23,0

OK

 

Faydalı bir link: http://batuhan-duzgun.blogcu.com/python-ile-gps-gprs-moduller-uzerinden-sms-gondermek/10913917

GSM modül ile internet bağlantısı: http://www.picproje.org/index.php/topic,40229.0.html

Yararlandığım yabancı bir kaynak: http://www.developershome.com/sms/

34 thoughts on “AT Komut Seti(GSM)

  1. Eğer yeni mesaj gönderdiğiniz halde bu mesajları modülde göremiyorsanız, sms hafızası dolmuştur. Takribi 35 sms’te hafıza dolar. Bunu kontrol edip doldukça silmek gerekir.
    Gelen smslerin hepsini silmek istiyorsanız:
    AT+CMGD=1,4 yazınız
    Eğer sadece istediğiniz bir mesajı silmek istiyorsanız bu da mümkün, mesela 2 numaralı mesajı silelim: AT+CMGD=2

    • Tüm SMS ler derken hem sim kart hem GSM modül üzerinde ki tüm SMS ler mı yoksa sadece sim veya modül üzerindeki smsler mi

  2. Mehabalar
    Öncelikle bu güzel paylaşım için teşekkür ederim.

    At komutları ile dtmf sinyallerini okuyabilme imkanımız var mı acaba.?
    İnternette araştırdım ama bir sonuca ulaşamadım.

    Cep telefonumdan gsm modülünü arıyorum, gsm modülüne ATA komutunu gönderip gelen çağrıyı cevaplıyorum.
    Ama cep telefonumdan tuşlara basıp dtmf sinyali gönderdiğimde modül hiçbir cevap vermiyor, hiçbir şey yazdırmıyor.
    Bu konuda yardımcı olabilir misiniz.?
    iyi çalışmalar.

  3. mesaj gelince hyper terminal de uyarı alabilmek için ne yapmalıyım? diger komutlar calısırken mesaj okuma komutunu calıstıramadım.

  4. At komutlarıyla imei değiştirilebiliyor mu acaba. Çin’e seyehatimde gsm modül almıştım. tr. de kullanamıyorum.

  5. Merhaba, arama yaptığımızda kişi telefonu açarsa bilgisayar üzerinden nasıl sesli iletişim sağlayabiliriz ?
    Visual studio c# kullanıyorum.

  6. Pingback: Delphi İle SMS Göndermek | Biz Yazıyoruz - Biz Soruyoruz

  7. Kardeşim çalışmalarını takip ediyorum. Güzel çalışmaların var. ALLAH kolaylık versin inş.

  8. Abi at komutlarından ata komutunu nasıl kullanacaz bir örnek var mı acaba?
    Gelen aramayı cevaplatamadik GSM ile röle kontrol edecez

  9. peki normal olarak ardiuno ile gsm sheild ile bağlantıyı nasıl yapabiliriz. hangi kütüphaneyi kullanabiliriz ya da kullandığınız kütüphaneyi bize bildirebilirmisiniz?

  10. Sms gönderirken at komutları ile telefon numarasını gizleyebiliriz. Yani originatör tanımlayabilirmiyiz?.

  11. merhaba ben at üzerinden yapmayı başardım fakat telefonu açınca ses alamıyorum veya gönderemiyorum.ses datası transferi yani sesli arama için ayrıyeten at komutları var mı yoksa port veya simden kaynaklı bir durum mu?

  12. +CMTI: “SM”,1
    hocam bu uyarıyı almak için gereken CNMI parametresini nasıl ayarladınız sim900 için herşeyi denedim mesajı direkt gösteriyor

    • Sorun çözülmüştür sim sms hafızasının dolu olmasından kaynaklanıyormuş parametre “AT+CNMI=2,1,0,0,0” şayet “AT+CNMI=2,2,0,0,0” şeçilirse sms not şeklinde direkt gösterilmekte eğer uzun mesaj gelmişse hepsi çıkmıyor bilgilerinize

Bir Cevap Yazın