at komutları ile arama yapmak ve sms yollamak

Başlatan isoment01, 05 Temmuz 2017, 14:53:02

isoment01

arkadaşlar merhaba , elimde yazdığım bi kaç kodum var öncelikle yolumu anlatayım nasıl yaptığımda da belki bir hata olabilir:
1. pic'in rx , tx bacağına direk olarak gsm/gprs modülümün rx tx bacaklarına çaprazladım.
2. Kitin gnd ve Vcc bacaklarını bağladım.
3. hattımı taktım, Üzerinde bulunan powerkey butonuna uzun bastım ve aktif oldu sürekli yeşil ışık yanıyor.
4. şu kodları picime gömdüm;
#device PIC16F877A

#include <16f877a.h>
#fuses xt,nowdt,noprotect, nobrownout, nolvp, noput, nowrt, nocpd
#use delay (clock=4000000)

#use rs232(baud=9600,xmit=pin_C6, rcv=pin_C7, parity=N, stop=1, Bits=8)

// haberleşme ayarları bu kod ile yapılmaktadır . xmit veri gönderilen TX pininin hangi pin olacağını ifade // eder.
//rcv veri alınan RX pininin hangi pin olacağını ifade eder.
// baud haberleşme hızımızın değerini ifade eder.

// burada mesaj gönderme fonksiyonu tanımlanacaktır.
void mesaj_gonder()
{ //fonksiyon başlangıcı
// mesaj göndermek için modüle gönderilmesi gereken komutlar
printf("AT+CMGS=");
putc(34); // "
//mesaj gönderilecek telefonun numarası
printf("+905351084938");
putc(34); // "
putc(13); // CR
delay_ms(1000);
// gönderilecek olan mesaj girilir.
printf("Sistem Acildi !");
putc(26); // CTRL +Z tuş kombinasyonunun ASCII karşılığı
delay_ms(5000);
} //fonksiyon sonu
// burada arama yapma fonksiyonu tanımlanacaktır.
void arama_yap()
{ //fonksiyon başlangıcı
printf("ATD");
// arama yapılacak telefon numarası girilir.
printf("+905351084938");
printf(";");
putc(13); // CR

delay_ms(10000);
printf("ATH");
// aramayı sonlandırmak için gerekli olan AT komutu ATH dir.
putc(13);
delay_ms(3000);
} //fonksiyon sonu
void main() // ANA FONKSİYON BAŞLANGICI
{
// PİC16F877A için gerekli olan konfigirasyon ayarları
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
mesaj_gonder();
arama_yap();

 while(1); // do while döngüsü sonu , while (1) sürekli tekrarla anlamındadır.
} // ANA FONSİYON SONU

istediğim numarayı ne aradı ne mesaj attı hatalarım nerelerdedir arkadaşlar ?

vitruvius

Çalışan bir proje mi paylaşıyorsunuz, soru mu soracaksınız?

isoment01

Alıntı yapılan: vitruvius - 05 Temmuz 2017, 14:54:49
Çalışan bir proje mi paylaşıyorsunuz, soru mu soracaksınız?
soru soruyorum hocam çalışmıyor da neresinde yanlış olduğunu bulamadım. attığım başlık mı sıkıntılı oldu ?

karacan450

Bakınız at komutları böyle kodlarla çalışmaz. Aramak yapmak istendiğinde ATD05071234567 ondan sonra 0x0D kodu gönder.

karacan450

Sana tavsiyem usb rx-tx dönüştücü ve rsterm programı kullanarak çalıştır cihazını. Bide mesajlar böyle gönderilmiyor haberin olsun bende bilmiyorum.
http://gokhanbeken.com/at-komut-setigsm bu siteye gir sana çok yardımcı olacak.

lostromos

pic hakkında bilgim yok ama arduino ile sim800 ve sim900 modüllerini bolca kullandım.  ilk başta seri porttan gönderecğiniz "AT" komutuna modül cevap olarak "OK" gondermesi gerek. Bunda başarılı olursanız modülle iletişim başlamıştır. ERROR veya hiç tepki almassanız ise modülü aktif hale getirmeniz gerek hangi modül var elinizde bilmiyorum ama sim800c için konuştuğumuzda 39 nolu bacağı gnd ye 2 saniye bağlayıp bıraktığınızda modül ayağa kalkar.

isoment01

Alıntı yapılan: lostromos - 06 Temmuz 2017, 18:06:39
pic hakkında bilgim yok ama arduino ile sim800 ve sim900 modüllerini bolca kullandım.  ilk başta seri porttan gönderecğiniz "AT" komutuna modül cevap olarak "OK" gondermesi gerek. Bunda başarılı olursanız modülle iletişim başlamıştır. ERROR veya hiç tepki almassanız ise modülü aktif hale getirmeniz gerek hangi modül var elinizde bilmiyorum ama sim800c için konuştuğumuzda 39 nolu bacağı gnd ye 2 saniye bağlayıp bıraktığınızda modül ayağa kalkar.
sim 900 v.3 kit kiti var elimde ben max 232 kullanarak bağladım pic ile kiti fakat şimdi arduino daki serial monitör pic te yok o ok işaretini görmek için pic te bir tane daha uart girişi olması lazım yanılıyor muyum ? benım kullandıgım modülde powerkey tuşu var ona uzun basınca aktif oluyor.

isoment01

Alıntı yapılan: karacan450 - 05 Temmuz 2017, 23:04:40
Bakınız at komutları böyle kodlarla çalışmaz. Aramak yapmak istendiğinde ATD05071234567 ondan sonra 0x0D kodu gönder.
ATD05071234567 yazmakla printfle ayrı ayrı yazmak arasında fark yok ki zaten çünkü \n\r tarzı seyler yok onlar yanyana gönderiliyor. sizin yaptığınızı da denedim, bir de 0x0D  görmedim bir deneyeyim.
siz donanımsal olarak bir soru sormak istiyorum. benim picimde sadece bir tane uart var yani burada hem gsm modülü için hem de pc pic haberleşmesi için iki tane uarta ıhtıyacım var gibi yanılıyor muyum ? cunku ben o "ok" komutunu nasıl göreceğim yani ?

lostromos

Alıntı yapılan: isoment01 - 07 Temmuz 2017, 09:32:51
sim 900 v.3 kit kiti var elimde ben max 232 kullanarak bağladım pic ile kiti fakat şimdi arduino daki serial monitör pic te yok o ok işaretini görmek için pic te bir tane daha uart girişi olması lazım yanılıyor muyum ? benım kullandıgım modülde powerkey tuşu var ona uzun basınca aktif oluyor.
Arduinoda software serial ile ekstra uart ekleyerek ekledigim uarttan haberlesririyorum. Ancak pic te durum nasil olur bir sey diyemeyecgm elinizde arduino var ise ufak bir deneme yapabilirsiniz

ÜC

#9
    Modülü aynı anda hem PC hemde pic ile haberleştirmek için PC nin tx hattına ve picin tx hattına birertane 1n4148 diyod ekliyorsunuz ve modülün RX hattına giriyorsunuz.Diyodlara seri birertane 270 ohm drenç koymakta fayda var eğer haberleşmezse drençler olmadan deneyebilirsiniz.Modülün RX hattına birde pull up drenç ekliyorsunuz.Böylece pic ve pc modüle veri gönderebilir.
     Modülün TX hattını 270 ohm bir drençle PC RX ve pic RX hattına birleştirebilirsiniz.
    Arama için nasıl bir kod kullanmışım diye baktım ama gelen çağrı yapmayla ilgili hiç kod kullanmamışım yalnızca ATD05071234567;13 şeklinde bir kod var arama için onuda kapatmışım deneme imkanımda yok.

isoment01

Alıntı yapılan: umitco - 07 Temmuz 2017, 12:41:26
    Modülü aynı anda hem PC hemde pic ile haberleştirmek için PC nin tx hattına ve picin tx hattına birertane 1n4148 diyod ekliyorsunuz ve modülün RX hattına giriyorsunuz.Diyodlara seri birertane 270 ohm drenç koymakta fayda var eğer haberleşmezse drençler olmadan deneyebilirsiniz.Modülün RX hattına birde pull up drenç ekliyorsunuz.Böylece pic ve pc modüle veri gönderebilir.
     Modülün TX hattını 270 ohm bir drençle PC RX ve pic RX hattına birleştirebilirsiniz.
    Arama için nasıl bir kod kullanmışım diye baktım ama gelen çağrı yapmayla ilgili hiç kod kullanmamışım yalnızca ATD05071234567;13 şeklinde bir kod var arama için onuda kapatmışım deneme imkanımda yok.
ümit hocam selamlar yazdıklarınıza göre bi tasarım yaptım baglantılara bır bakar mısınız dogru mu acaba, benım yaptıgımda sankı modülün tx  kısmına gelen pc ve pic ın tx lerıne de diyot lazım :D bir de bu haberlesme ttl to tll mi oluyor max 232 kullanmayacam mı ? eger ttl seviyesindeyse pic te ttl haberlesmeyı nasıl yaptıracagım ?


ÜC

#11
   PC den veri çıkışında ne kullanıyorsun ? Usp to ttl ise direkt pice girebilirsin ama usp to rs232 ise tekrar ttl seviyesi için 2.bir rs232 kullanman lazım.





isoment01

#12
Alıntı yapılan: umitco - 07 Temmuz 2017, 23:24:30
   PC den veri çıkışında ne kullanıyorsun ? Usp to ttl ise direkt pice girebilirsin ama usp to rs232 ise tekrar ttl seviyesi için 2.bir rs232 kullanman lazım.




usb to rs 232 ile pc cıkısım, bir de 2. rs232 ye gerek yok hocam max 232n var cıft kanallı. max 232 yı tam nereye yerlestırcem şimid hocam

ÜC

#13
    PC den Usp to r232 ye , usp to rs232 modülünden çıkan hattı max232 nin girişine , max232 nin çıkışlarını pice. Max232 de hangilerinin giriş ve çıkış olduğunu biliyorsun muhtemelen.
    Modülü kullanmaya başlamadan önce PC ve pic haberleşmesini yapıp biraz deneyim kazansan iyi olur bence. Max232 çıkışları ttl değildir -10 , +10 seviyelerinde , yanlışlık yaparsan modüle zarar verebilirsin

isoment01

Alıntı yapılan: umitco - 08 Temmuz 2017, 12:04:02
PD den Usp to r232 ye , usp to rs232 modülünden çıkan hattı max232 nin girişine , max232 nin çıkışlarını pice. Max232 de hangilerinin giriş ve çıkış olduğunu biliyorsun muhtemelen.
tamam tamam hallettim hocam teşekkür ederim :)