Sim800L

Başlatan sahinler64, 03 Nisan 2019, 16:23:33

aRci

bu gibi durumda gelen veriyi belli sürede bekleyip süre sonunda veri gelmez ise hata olarak yorumluyorum bunun için örneğin
alttaki yazımda 100ms beklenir "OK" yanıtı eğer gelirse alt satırdan devam eder ama eğer cevap gelmezse bu süre sonunda hata adlı etikete gider. yazım şekli hatalı olabilir ama bu sekilde yapmakta fayda var sizinn yazdığın şekilde yaparsanız Ve "OK" cevabi gelmez yada kaçırılırsa program bu satırda resetlenesiye kadar bu satırda kalır.

serin2 rx,84,100,hata,[wait("OK")]

konusu açılmışken bu modül arama sırasında basılan tuş sesinden uartan tuş değerini gönderiyor mu

sahinler64

Kardeşim Teşekkür Ederim. Hat Açtığında Kulaklık Çıkışından Tuş Sesi Geliyor. Çok Bi Bilgim Olmamakla Beraber Yeni Yeni Birşeyler Yapmaya Çalışıyorum.

sahinler64

Denedim Kardeşim Olmadı. Cevap Yok. Yada OK Cevabını Ben İşleyemiyorum.

Dtmf

sahınler benım kullandıgım gayet guzel calısan bır program yolluyorum sana bazı ayarları yapman lazım AT+CFUN,AT+CMGF,AT+CMGR.. programda belırttım  bu uygulama sım800 dekı hat numarasına A1 mesajı gonderınce led yakma ugulaması.bazı komutları tekrarlayarak gondermek zorunda kaldım bazen tek komut bazen algılamadıgını gozlemledım oyuzden kolay gelsın
Device=16F877A
XTAL=4
ALL_DIGITAL TRUE
Include "MODEDEFS.BAS"
TRISA = 3:PORTA=0
TRISB = 0:PORTB=0
TRISC = 0:PORTC=0
PORTD = 0:PORTD=0
PORTE = 0:PORTE=0
Declare LCD_TYPE alpha 
Declare LCD_LINES 2
Declare LCD_INTERFACE 4
Declare LCD_DTPIN PORTB.4
Declare LCD_RSPIN PORTB.0
Declare LCD_ENPIN PORTB.1
;=====================================================================
Print At 1,1,"...SIMCON.... "
DelayMS 4000
DON: 
               Print At 1,1,"AT             "
               SerOut PORTC.6,84,["AT",13,10]
               DelayMS 5
               SerOut PORTC.6,84,["AT",13,10]
               DelayMS 5
               SerOut PORTC.6,84,["AT",13,10]
               DelayMS 5
               SerIn PORTC.7,84,5000,DON,[Wait("OK")]
               Print At 2,1,"OK           " 
;=================================================================================================================                           
DelayMS 3000
DON1:
               Print At 1,1,"CFUN=1       "
              SerOut PORTC.6,84,["AT+CFUN=1",13,10] ;SerOut PORTC.6,84,["AT+CFUN=",34,"1",34,13]
               DelayMS 10
               SerOut PORTC.6,84,["AT+CFUN=1",13,10]
               SerOut PORTC.6,84,["AT+CFUN=1",13,10]
               SerOut PORTC.6,84,["AT+CFUN=1",13,10]
               SerOut PORTC.6,84,["AT+CFUN=1",13,10]
               SerIn PORTC.7,84,5000,DON1,[Wait("OK")]
               Print At 2,4,"OK"
DelayMS 3000
DON2:
                Print At 1,1,"CMGF=1   "
                SerOut PORTC.6,84,["AT+CMGF=1",13,10]
                SerOut PORTC.6,84,["AT+CMGF=1",13,10]
                SerOut PORTC.6,84,["AT+CMGF=1",13,10]
                SerOut PORTC.6,84,["AT+CMGF=1",13,10]
                SerIn PORTC.7,84,5000,DON2,[Wait("OK")]
                Print At 2,8,"OK"
DelayMS 3000
Cls
;=========================================================================
BASLA:
Print At 1,1,"...SIMCON.... "
SerOut PORTC.6,84,["AT+CMGR=1",13,10]
SerOut PORTC.6,84,["AT+CMGR=1",13,10]
SerOut PORTC.6,84,["AT+CMGR=1",13,10]
SerOut PORTC.6,84,["AT+CMGR=1",13,10]
             
               SerIn PORTC.7,84,5000,HAT,[Wait("A1")]
               SerIn PORTC.7,84,5000,HAT,[Wait("A1")]
               PORTA.2=1
               Print At 2,1,"  VERI ALINDI    "
               DelayMS 2000

DelayMS 3000
SerOut PORTC.6,84,["AT+CMGD=1",13,10]
SerOut PORTC.6,84,["AT+CMGD=1",13,10]
SerOut PORTC.6,84,["AT+CMGD=1",13,10]
SerOut PORTC.6,84,["AT+CMGD=1",13,10]
GoTo BASLA
;=================================
HAT: 
PORTA.2=0             
Print At 2,1,"      MSJ HATA     "
DelayMS 500
Cls
GoTo BASLA

sahinler64

USTAM, Kardeşim Allah Razı Olsun. Valla Halettik.
Ama Kod
SEROUT2 TX,84,["AT",13,10]
PAUSE 100
SerIn2 RX,84,5000,HATA,[Wait("OK")]
Şeklinde Oldu. Şimdilik Çalışıyor.
Son Bişey Sorsam;
Gelen Veri Kontrolünde "OK" Aranıyor. Bu ERROR Olduğunda Farklı Bir Etikete Gitmek İstiyorum. HATA' ya Değilde ERROR Geldiğinde Mesaj Atsın Gibi. Yani Gelen Veride Hem OK Hemde ERROR Kontrolünü Yapmak Mümkünmü
 

Dtmf

soyle yapabilirsin.
SerIn2 RX,84,[sembol]
Kontrol:
If sembol=OKthen
.......islem
Endif
If sembol=ERROR then
.......islem
Endif

Dtmf

Yani bir degiske  tanimlayip serin ile aldigin bilgiyi kontrol edil  if komutu ile istedigini yaptirabilirsin

sahinler64

Çok teşekkür ederim. Bu projeyi Bitirebilirsem burada paylaşırım. Artı ve eksiklerini belirleriz.

Powered by EzPortal