Picproje Elektronik Sitesi

DERLEYİCİLER => Proton+ => Konuyu başlatan: mustafa_cmbz - 15 Şubat 2020, 09:49:41

Başlık: Sim800L için sms komutları ve kullanımı?
Gönderen: mustafa_cmbz - 15 Şubat 2020, 09:49:41
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 ?
Başlık: Ynt: Sim800L için sms komutları ve kullanımı?
Gönderen: mustafa_cmbz - 16 Şubat 2020, 10:50:45
    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ı.
Başlık: Ynt: Sim800L için sms komutları ve kullanımı?
Gönderen: mustafa_cmbz - 16 Şubat 2020, 17:36:12
  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=
Başlık: Ynt: Sim800L için sms komutları ve kullanımı?
Gönderen: fofo - 17 Şubat 2020, 00:00:22
HSerOut ["at+cmgs=",34,05XXXXXXXXX,34,13]
    HSerOut ["Gonderilecek Mesaj",26,13]
Başlık: Ynt: Sim800L için sms komutları ve kullanımı?
Gönderen: mustafa_cmbz - 17 Şubat 2020, 01:14:29
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
Başlık: Ynt: Sim800L için sms komutları ve kullanımı?
Gönderen: okg - 17 Şubat 2020, 08:03:51
AT komutseti ile istediğin her komuta dökümanı inceleyerek ulaşabilirsin.

https://www.elecrow.com/wiki/images/2/20/SIM800_Series_AT_Command_Manual_V1.09.pdf
Başlık: Ynt: Sim800L için sms komutları ve kullanımı?
Gönderen: fofo - 17 Şubat 2020, 09:51:53
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]
Başlık: Ynt: Sim800L için sms komutları ve kullanımı?
Gönderen: mustafa_cmbz - 17 Şubat 2020, 10:28:20
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.
Başlık: Ynt: Sim800L için sms komutları ve kullanımı?
Gönderen: 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.
Başlık: Ynt: Sim800L için sms komutları ve kullanımı?
Gönderen: muhittin_kaplan - 17 Şubat 2020, 11:58:24
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.
Başlık: Ynt: Sim800L için sms komutları ve kullanımı?
Gönderen: mustafa_cmbz - 17 Şubat 2020, 13:18:05
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.

Başlık: Ynt: Sim800L için sms komutları ve kullanımı?
Gönderen: mustafa_cmbz - 17 Şubat 2020, 13:19:53
Alıntı yapılan: fofo - 17 Şubat 2020, 11:17:32HSerIn 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
Başlık: Ynt: Sim800L için sms komutları ve kullanımı?
Gönderen: OG - 17 Şubat 2020, 23:12:33
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.
Başlık: Ynt: Sim800L için sms komutları ve kullanımı?
Gönderen: mustafa_cmbz - 18 Şubat 2020, 09:02:07
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.

(https://i.hizliresim.com/nyYA6B.jpg) (https://hizliresim.com/nyYA6B)

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

(https://i.hizliresim.com/l4Bk5B.jpg) (https://hizliresim.com/l4Bk5B)
Başlık: Ynt: Sim800L için sms komutları ve kullanımı?
Gönderen: OG - 18 Şubat 2020, 10:26:46
RING yazan pin RI
Başlık: Ynt: Sim800L için sms komutları ve kullanımı?
Gönderen: mustafa_cmbz - 18 Şubat 2020, 10:54:20
Alıntı yapılan: OG - 18 Şubat 2020, 10:26:46RING yazan pin RI

(https://i.hizliresim.com/LGdaPj.jpg) (https://hizliresim.com/LGdaPj)

Aynen öyleymiş telefondan giriyorum dikkat etmemişim usar_Rı yazdığı için farklı bir pin diye düşündüm sanırım karşısındakini okumamıştım.
Başlık: Ynt: Sim800L için sms komutları ve kullanımı?
Gönderen: elektronik - 18 Şubat 2020, 15:47:15
Ring pini bildiğim kadarıyla çağrı geldiğinde pals veriyor ondan çok emin değilim bakmak lazım.

Gelen mesajlar modüle kaydoluyor siz istediğiniz zaman okuyorsunuz.
Yani sürekli mesaj beklemenize sürekli kontrol etmenize işlemciyi meşgül etmenize gerek yok.

Belli zamanlarda aşağıdaki komut ile tüm mesajları okuyabilirsiniz.

iletisim.write("AT+CMGL=\"ALL\"");//TÜM MESAJLARI OKU
iletisim.write(13);

Başlık: Ynt: Sim800L için sms komutları ve kullanımı?
Gönderen: mustafa_cmbz - 19 Şubat 2020, 00:24:50
Alıntı yapılan: elektronik - 18 Şubat 2020, 15:47:15Ring pini bildiğim kadarıyla çağrı geldiğinde pals veriyor ondan çok emin değilim bakmak lazım.

Gelen mesajlar modüle kaydoluyor siz istediğiniz zaman okuyorsunuz.
Yani sürekli mesaj beklemenize sürekli kontrol etmenize işlemciyi meşgül etmenize gerek yok.

Belli zamanlarda aşağıdaki komut ile tüm mesajları okuyabilirsiniz.

iletisim.write("AT+CMGL=\"ALL\"");//TÜM MESAJLARI OKU
iletisim.write(13);



İşte aradığım cevap.

Böyle bir şey olabileceğini tahmin ediyordum.nasılki telefonlardan girip eski mesajlarımızı oluyorsak VS gibi düşünmüştüm.

Ve sanırım geçen örnek ararken tüm mesajları sil komutunu görmüştüm. Şöyle yapabilirim ozaman.


Belirli aralıklarla msj geldim diye bakıp mesaj varsa mesajı oku beklediğim kod gelmişse msjı sil ve git sensörü oku ve msj gönder VS gibi.

Sanırım böylesi daha basit olacak gereksiz yere ring pini bağladığım pinden kesme veya usart kesmesi kullanmak gibi bir boğuşmam olmayacak.

Daha farklı fikirleri olan varsa o fikirlere de açığım