AT Komutları

Başlatan gokayk, 28 Şubat 2012, 18:57:46

gokayk

Alıntı yapılan: pax - 26 Mart 2012, 14:45:03
ben de Siemens c55 ile gsm kontrollü otomasyon projesi yapmıştım. ilk başlarda aynı sıkıntıları ben de yaşadım. sorunu şu şekilde çözdü önce telefonu haberleşme için hazırlaman gerekiyor. :) bunun içinde şu kodları kullanmıştım ben bunları dediğim gibi siemens için kullandım siz kendi kullandığınız telefonun özelliklerine göre ayarlamanız gerekiyor.
void setup_tlf()
{
   fprintf(gsm,"ATZ");  delay_ms(1000);
   fputc(0x0d,gsm);delay_ms(5000);
   
   
   fprintf(gsm,"AT+IPR=19200");  delay_ms(1000);
   fputc(0x0d,gsm);delay_ms(1000);
   
   
   fprintf(gsm,"ATE0");  delay_ms(1000);
  fputc(0x0d,gsm);delay_ms(1000);
 
}

ben sorunumu bu şekilde çözdüm inşallah sizin için yararlı olur .

Merhabalar,

Yalnız ben telefonumu Hyper Terminal ile herhangi bir ayarlama yapmadan AT > OK onaylamasını yaptırabiliyorum.
Sonuçta gönderdiğiniz kodları telefonun algılayabilmesi için telefon ile devrenizin zaten bağlanmış olması gerekir.
Yanlış mı düşünüyorum?

pax

hyperTerminalle haberleşirken sorun yaşamamıştım . normalde PIC'ten telefona "AT "komutu gönderince de sorun çıkmaması gerekiyor. ancak PIC 'ten  telefona bilgi gönderirken veya telefondan bilgi okumaya çalışınca sorunlar başlıyor.. bu nedenle önce telefonu haberlşemeye hazırlamak gerekiyor. dediğim gibi sizinle benzer sorun yaşamıştım ve sorunumu bu şekilde hallettim.

skara1214

gm29 u picle kontrol etmeye çalışıyorum su an sistemde anten takılı değil a yolluyorum geliyor t yolluyorum geri geliyor(echo var çalışıyor demek oluyor) fakat 0x0d yolluyorum ok dönmüyor ama sistem orada takılmıyorda boş geri dönüyor  sizce ne yapmalıyım?
Herkes ölür ama herkes gerçekten yaşamaz

skara1214

direk bilgisayarla haberleştirdim antensiz sıkıntı yok ok yanıtı geliyor.Acaba rs232 iletişimini doğru yapamıyorum anlamadım max232 entegresinin kapasitörlerini 10 mikro koydum  1 mikro yerine bu sıkıntı yaşatıyor olabilirmi?ayrıca hem cr hemde lf yolluyorum arka arkaya gene birşey değişmiyor yazdığım geri geliyor fakat ok gelmiyor onun yerine boş dönüyor.Takılma falanda olmuyor.
Herkes ölür ama herkes gerçekten yaşamaz

Kabil ATICI

daha düşük baud'da denedin mi? Bazı cep telefonu uygulamalarında 4800 kullanımı vardı.
max232 için devrelede 10uF sorunsuz kullanıyorum.
ambar7

serhat1990

Hocam 10uF Sorun yapmıyor benim elimde 10uF var tüm uygulamalarımda kullanıyorum hiç bir sıkıntı yaşamadım.

skara1214

hocam ben şunu anlamadım yani sıkıntı olsa echo yapmaz değilmi? yani bence enter komutunu yollarken sıkıntı yaşıyor çünkü boş dönüyor yani yolladığım enter verisinide aynen geri kopyalıyor.Sadece flow control aklıma takılıyor rts-cts ye şortladım denedim birşey değişmedi daha sonra  dtr yide dts ye shortladım olmadı daha sonra  onlarıda grounda shortladım çünkü araştırmalarımda command moda girmesi için dtr ground olmalı diyordu acaba burada bir hatamı yapıyorum? birde ri(ring indicator) boşta.Bu gm29 modülüni picle haberleştirebilen varmı?neler yapmak gerekli
Herkes ölür ama herkes gerçekten yaşamaz

pax

bilgisayar ve modülü birbirine bağladığınız kablo ile veya bağlantı şekli ile pic ve modülü bağladığınız bağlantı şekli aynı mı? bildiğim kadarıyla modülle pic arasında cross-over bağlantı yapmanız lazım yani "Rx-TX ile, TX-RX " ile irtibatlanmalı. ancak bilgisayar ve modem arasında ise cross over olmamalı. Sorunun seri bağlantınızda olduğunu düşünüyorum. çünkü ben pic ile telefonu haberleştirmek için seri kablo satın almıştım ancak aldığım kablo ile haberleştiremedim. yeni bir kablo aldım onunla haberleştirebildim sadece RX ve TX uçlarını kullandım.

bir başka nokta kullandığınız modülün AT komutları ile genel AT komutları arasında bazı farklılıklar olabilir. modülün AT komutlarını inceleyip ona göre yazarsanız yararlı olur.
baudrate i otomatik olarak ayarlamanızda fayda var. cevap geri gelmesi için yeterli süre gecikme sağlamalısınız. uygularken ilk ayarlamada 5sn beklediğim durumlar olmuştu.

şimdilik aklıma gelenler bunlar. faydası olur umarım.

 

pax

bana bir mail adresi verebilirseniz pic ve modül arası bağlantı şeklini gönderebilirim , resmi buraya ekleyemedim.


skara1214

problemi çözdüm hocam picle mesajda attım burada paylaşacağım en kısa sürede sıkıntının kaynağı komutu yolladıktan sonra 3 tane gets yazılması gerekiyor nedenini anlamadım daha doğrusu aradaki 2. getsi anlamadım mesela;
printf("AT\r");
gets(zz);
gets(ss);
gets(bb);
ilki yani zz nin aldığı echo açık olduğu için kendi yazdığımız kod 2. si yani ss boş oluyor üçüncüsü bb "ok" oluyor. bu 2 cisinin boş gelmesinin sebebini anlamadım hyper terminalde hiç sıkıntı yok

bir sorum daha var oda  ccs c de printf(""5055555555"""); bunu nasıl yazarım yani printf içinde iki tane " işaretini nasıl kullanırım?
Herkes ölür ama herkes gerçekten yaşamaz

JKramer

Alıntı yapılan: skara1214 - 05 Nisan 2012, 13:24:15
bir sorum daha var oda  ccs c de printf(""5055555555"""); bunu nasıl yazarım yani printf içinde iki tane " işaretini nasıl kullanırım?
printf("\"5055555555\"\"");

pax

numarayı mesaj atmak için mi kullanacaksınız aramak için mi? aramak için ise 

fprintf(gsm,"ATD<+905055555555>"); şeklinde yazmanız daha doğru olacaktır.

mesaj göndermek için kullanacak iseniz

fprintf(gsm,"AT+CMGS=x"); delay_ms(200); fputc(0X0d,gsm); delay_ms(1000);
      fprintf(gsm,".....................................................");

"........." olan yere mesaj merkezi numarası telefon numarası ve mesaj belirli bir formatta yazılmalı. x yazan yerde "....." yerine yazdığınız karakter  sayısı yazılmalı.

mdargut

Muhtemelen modul cr, lf karakterleri döndürüyordur. Hyperterminalde göstermez o yüzden boş sanabilirsin. Birde şu programla dene bakalım ne geliyormuş orda.
http://www.der-hammer.info/terminal/