PİC PRO BASİC VE GSM MODÜL İLE SMS ALMA VE İŞLEME

Başlatan Adem ESEN, 25 Ocak 2016, 20:51:18

Adem ESEN

Merhaba.

Bir güvenlik devrem var devre ile bağlantılı bir adet Siemens mc39i gsm modülüm var devre üzerinde 16f628A pic sinyal ile a portunun 0. Biti tetiklenince b portunun 0. Biti lojik 1 oluyor ve hserout komutları ile devremiz Güvenlik Duvarı İhlal Edildi mesajını SMS olarak modül üzerinden gönderiyor.

Bu noktada benim sorunum şu:

Tam tersi mantıkla bu kez ben modüle BASLA mesajı gönderdiğimde bunu pice iletmeli, pic ise bu BASLA komutunu alıp işleyerek PORTB.0=1 şeklinde çıkış vermesini istiyorum.

Yani kısaca modüle SMS gönderdiğimde modülün rx üzerinden pice veriyi iletmesini devrenin ise bunu işlemesini istiyorum

AT komutları ile SMS alma ve pic pro basic de işleme konusunda yardımcı olabilecek arkadaşlar cevap verebilirse sevinirim.

Cümleten iyi günler diliyorum.

~ENES~

Komutlari koyarsan yardimci olmaya calisiriz modul nasil calisir hangi dilde yazdin vs vs
ALLAH'a teslim olmuş bir insan ! Ne sultan tanir , ne sadrazam !

gogoce

ben daha önce bir arkadaşımın yardımıyla protron ile yapmıştım . sms e göre çıkış verdirebiliyordum .

bunları yapabilmen için önce modemi konfigure etmen gerekiyor ki bu da devreye ilk enerji verdikten birkaç saniye sonra modem kendini toparladıktan sonra birkaç komut vererek modemi hazırlarsın,

arama geldi mi modem sana RING komutu gönderir
sms geldimi sana sms in hangi alana kayıt ettiğini ve okunmadığını belirten bir komut gönderir bunlar ile sen gerekli işlemleri yapabilirsin
takıldığın yerde yardımcı olmaya çalışırım  . Ama önce ortaya bişeyler koyman lazım
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

Adem ESEN

Siemens marka mc39i modemim var dostum kendi devrem ile bir durum karşısında sms göndertebiliyorum asıl sıkıntı şimdi yeni geliştirme ortamımda sms geldiğinde sms in içeriği EVET  ise picin portb.0=1 işlemesini istiyorum normal çalışan sms gönderme kodu şu şekilde:

IF PORTA.0=0 THEN                           ' EĞER A PORTUNUN 0. BİTİ LOW İSE  
    PORTB.0=1                                    ' SARI LEDİ YAK, RÖLE ÇEKTİR.
    IF PORTB.0=1 THEN                       ' EĞER SARI LED YANIK İSE
      HSEROUT ["AT",13]
      pause 300
      HSEROUT ["AT+CMGF=1",13]                           ' MODEM İLE MESAJ GÖNDERİLECEK.
      pause 300           
      HSEROUT ["AT+CMGS=05413505386",13]       ' MESAJ BU NUMARAYA GÖNDERİLECEK
      pause 300
      HSEROUT ["Guvenlik Duvari Ihlal Edildi !",13]     ' MESAJIN İÇERİĞİ
      pause 300
      HSEROUT [26,13]                                               ' MSJ GNDRME İŞLEMİNİ SONLANDIR.
    ENDIF                                                                    ' DÖNGÜ SONU
    PAUSE 3000                                                          ' 3 SANİYE BEKLE
    PORTB.0=0                                                           ' SARI LEDİ SÖNDÜR, RÖLEYİ BIRAK.
  ENDIF                                                                      ' DÖNGÜ SONU
GOTO ANA                                                                 ' TÜM İŞLEMLER İÇİN BAŞTAN BAŞLA.


bu çalışan sms gönderme kodlarım işte bunun tam tersi sms geldiğinde gelen sms i EVET mi değil mi o duruma göre picten yanıt almak istiyorum tşk. ler

Adem ESEN

modülümüz 12V ve bekleme anında 35mA iletişim durumunda 600mA kadar akım çekiyor. ayrıca devremizin graund una ihtiyaç duyuyor, pic pro basic ile yazıldı.

gogoce

HSerOut ["AT",13]
HSerIn bekle,TEST,[Wait("OK")]
HSerOut ["AT+CNMI=2,1,0,0,1",13]
HSerIn bekle,TEST,[Wait("OK")]
HSerOut ["AT+CLIP=1",13]
HSerIn bekle,TEST,[Wait("OK")]
HSerOut ["AT+CMGF=1",13]
HSerIn bekle,TEST,[Wait("OK")]


bu şekilde modemi configüre ettim

daha sonra

HSerIn 3000,GECD1,[Wait("+CMTI"),KX[0],KX[1],KX[2],KX[3],KX[4],KX[5],KX[6],KX[7]]
mesajı bu şekilde  okuyup

MKAYIT=KX[7]
HSerOut ["AT+CMGR=",KX[7],13]
HSerIn bekle,M_HATA,[Wait("1234"),KX[0],KX[5],KX[6]]

burda da mesajdaki şifreyi bulup ilgili portu 1 veya 0 yapabilirsin
örnek
If KX[5]="1" And KX[6]="1" Then
High L1

gibi...



kodlar proton ile yazılmıştı

Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

Adem ESEN

kx olan kısmı tam olarak anlayamadım

gogoce

Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

umitco

Sms geldiğinde modül bu datayı gönderir

+CMTI: "SM",1

Arkadaş CMTI dan sonrasını değişkenlere almış. 1 gelen sms in sıra nosudur okumak istediğinde bu numarayı kullanabilirsin.Örn

HSEROUT ["AT+CMGR=1" ,13,10]    ile gelen sms okunur. Buradaki 1 numarasını gelen sms den aldığını varsayıyorum

gogoce

Alıntı yapılan: umitco - 30 Ocak 2016, 20:45:03
Sms geldiğinde modül bu datayı gönderir

+CMTI: "SM",1

Arkadaş CMTI dan sonrasını değişkenlere almış. 1 gelen sms in sıra nosudur okumak istediğinde bu numarayı kullanabilirsin.Örn

HSEROUT ["AT+CMGR=1" ,13,10]    ile gelen sms okunur. Buradaki 1 numarasını gelen sms den aldığını varsayıyorum

aynen dediğin gibi
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

BİDİL

Arkadaşlar Merhaba;
Sms yollama konusunda bir kaç denemem omuştu ancak sms alma ve işleme konusunda hiç bilgim yok. Sms ile gelen (SAYI:22,85) formatındaki mesajda (22) ve (85) sayılarını bir değişkene atmak istiyorum. Konuya vakıf arkadaşlar yarımcı olursa sevinirim.

sms almak için aşağıdaki at kodları doğrumudur?

HSerout ["AT",13,10]                   ' pocni komunikaciju,resetuj modem!
HSERIN 4000,p,[WAIT("OK")]

HSerout ["AT+CMGF=1",13,10]             'postavi text mod
HSERIN 2000,tm,[WAIT("OK")]

HSEROUT["AT+CPMS=",34,"SM",34,13,10]    'ciljana memory lokacija
HSERIN 2000,m,[WAIT("OK")]

HSEROUT["AT+CMGL",13,10]                'filter za query
HSERIN 5000,ws,[WAIT("SAYI"),wait(","),DEC2 hh,DEC2 mm
 

Powered by EzPortal