Sim800L için sms komutları ve kullanımı?

Başlatan mustafa_cmbz, 15 Şubat 2020, 09:49:41

mustafa_cmbz

Merhabalar.

Sim800L için protonda ve terminal programında sms göndermek için hangi komutları nasıl bir sıralamada kullanmak gerekiyor acaba?

terminal progamından arama yaptırdım fakat sms atma olayına kullanılan komutları aşağıdaki sitede bahsettiği şekilde denememe rağmen bir türlü gerçekleştiremedim.

https://lastminuteengineers.com/sim800l-gsm-module-arduino-tutorial/

Terminal programından kaynaklı gibi duruyor bu aşamadan sonra pic ile komut gönderip denemeler yapmak istiyorum.Elinde örnek olan varmıdır gönderim şekli nasıldır ?

mustafa_cmbz

 
  HSerOut2 [ "AT+CMGF=1" ]
  DelayMS 500
  HSerOut2 ["AT+CMGS=","+905427194859",13,"MERHABA CAMBAZ,NABER NASILSIN",26,13]

Bu şekilde gönderim yapıyorum ama msj gönderme olayını bir türlü gerçekleştiremedim.

 
  HSerOut2 [ "AT+CMGF=1" ]
  DelayMS 500
  HSerOut2 ["AT+CMGS=+905427194859",13,"MERHABA CAMBAZ,NABER NASILSIN",26,13]

Bu şekilde de denedim fakat herhangi bir değişiklik olmadı.

mustafa_cmbz

#2
 
HSerOut2 ["AT+CMGF=1",13,10]  
  DelayMS 500
  HSerOut2 ["AT+CMGS=",34,"+90542xxxxxxx",34,13,10]
  DelayMS 500
  HSerOut2 ["deneme mesajı",10,13]
  HSerOut2 [26]
  DelayMS 500


  Yukarıdaki gibi düzenleme yaptıktan sonra msj gönderme işlemini gerçekleştirdim.Forumda da daha önce
  konuşulmuş bu konular ama ben sim800l diye arattığım için ulaşamadım.

  Anahtar kelimeler : CMGS , CMGF

 
  Yararlandığım yabancı kaynakğın linki de aşağıda.

  http://www.picbasic.co.uk/forum/showthread.php?t=219&s=

fofo

#3
HSerOut ["at+cmgs=",34,05XXXXXXXXX,34,13]
    HSerOut ["Gonderilecek Mesaj",26,13]

mustafa_cmbz

Alıntı yapılan: fofo - 17 Şubat 2020, 00:00:22
HSerOut ["at+cmgs=",34,05XXXXXXXXX,34,13]
    HSerOut ["Gonderilecek Mesaj",26,13]

Gelen msjları okuma ile ilgili örnek varmı elinde hocam

okg

KTU Elektronik Haberleşme - YTÜ Haberşelme YL - GTU Haberleşme YL

fofo

AT+CNMI=2,2,0,0 komutu gelen mesajı direkt görmek için. SKIP komutunda ki değer  modüle göre değişebilir.
HSerIn 5000,smsoku,[Wait("+CMT:"),skip 4,Str TELNO\11,skip 4,Str GsmTime\17,skip 6,GelenMSJ]

mustafa_cmbz

Hocam yapı olarak şunu sormak istiyorum.

Mesela program içerisinde döngü kurup atıyorum 10sn de bir yeni mesaj geldi mi diye sorgulama yapıp mı gelen mesaja göre işlem yaptırıyoruz yoksa program devamlı dinlemede kalıp serin komutuyla mesaj geldimi diye mi bakıyoruz ?

çünki serin komutunu kullandığımız zaman program orada çakılı kalıyor.Diğer yanda mesela ds18b20 yi okuyup sıcaklık set değerini aştıysa mesaj göndermek istiyorum vs. gibi bir çalışma yapmalıyım.

fofo

HSerIn 1000,DS18B20_oku,[Wait("+CMT:"),skip 4,Str TELNO\11,skip 4,Str GsmTime\17,skip 6,GelenMSJ]

 DS18B20_oku:
   HSerOut ["at+cmgs=",34,05XXXXXXXXX,34,13]
     delayms 200
             HSerOut ["SET DEGERI ASILDI!!",26]
şeklinde 1 sn aralıklarla sensörü okuyup SET değeri aşımında  mesaj gönderebilirsin.

muhittin_kaplan

Alıntı yapılan: mustafa_cmbz - 17 Şubat 2020, 10:28:20Hocam yapı olarak şunu sormak istiyorum.

Mesela program içerisinde döngü kurup atıyorum 10sn de bir yeni mesaj geldi mi diye sorgulama yapıp mı gelen mesaja göre işlem yaptırıyoruz yoksa program devamlı dinlemede kalıp serin komutuyla mesaj geldimi diye mi bakıyoruz ?

çünki serin komutunu kullandığımız zaman program orada çakılı kalıyor.Diğer yanda mesela ds18b20 yi okuyup sıcaklık set değerini aştıysa mesaj göndermek istiyorum vs. gibi bir çalışma yapmalıyım.
Bu dışşal etkenler için, devamlı dinlemek, main blogunda while ile işlem yapmak yanlış bir yöntemdir. USB, seri,adc vb dışa bağımlı sistemlerde Veri geldiğinde işlem yapılması, INTERRUPT kullanılması doğru olandır. Bu işin firmware Tarafı.
Software tarafında ise threading kullanılmalıdır.

mustafa_cmbz

Alıntı yapılan: muhittin_kaplan - 17 Şubat 2020, 11:58:24Bu dışşal etkenler için, devamlı dinlemek, main blogunda while ile işlem yapmak yanlış bir yöntemdir. USB, seri,adc vb dışa bağımlı sistemlerde Veri geldiğinde işlem yapılması, INTERRUPT kullanılması doğru olandır. Bu işin firmware Tarafı.
Software tarafında ise threading kullanılmalıdır.

Aynı düşünce den yola çıkarak sordum hocam.

Usart kesmesi kullanmak istesek peki veri tipini ve adeti değişken olacağı için nasıl bir yöntem izlemek gerekir.

Doğru mu düşünüyorum o konuda da emin değilim.


mustafa_cmbz

#11
Alıntı yapılan: fofo - 17 Şubat 2020, 11:17:32
HSerIn 1000,DS18B20_oku,[Wait("+CMT:"),skip 4,Str TELNO\11,skip 4,Str GsmTime\17,skip 6,GelenMSJ]

 DS18B20_oku:
   HSerOut ["at+cmgs=",34,05XXXXXXXXX,34,13]
     delayms 200
             HSerOut ["SET DEGERI ASILDI!!",26]
şeklinde 1 sn aralıklarla sensörü okuyup SET değeri aşımında  mesaj gönderebilirsin.

Çok amatörce oluyor bu şekilde. Programda başka bir değişiklik yapmak istediğinde hep o timeout kısmında yapmak zorunda kalıyorsun.

Amacım sağlıklı bir komut kalıbı oluşturmak ve atıyorum 8 giriş 8 çıkışı olan ve bazı sensör girişleri olan bir kart yapmak isteğe göre şart yazıp kontrollerini yapabilmek.

Usart kesmeleri ile mesaj nasıl okunur? Usart registerinden msj verisini çekip okumak için kaçlı sayaç kurmak gerekir onu merak ediyorum

OG

SIM800 sms alınca kesme uretiyor diye hatırlıyorum, RI pininden mi ne bir kesme üretiyordu.
dataya bakın hayal meyal hatırlıyorum.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

mustafa_cmbz

Alıntı yapılan: OG - 17 Şubat 2020, 23:12:33SIM800 sms alınca kesme uretiyor diye hatırlıyorum, RI pininden mi ne bir kesme üretiyordu.
dataya bakın hayal meyal hatırlıyorum.



Rı pini dediğin şekilde hocam fakat satılan modüller de dışarı çıkartmamışlar.



OG

FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.