Telit GL865 GET yöntemi ile bağlantı sorunu

Başlatan sdonmez, 25 Ocak 2017, 12:22:55

sdonmez

Merhaba,

Telit GL865 üzerinden internete GET ile veri göndermeye çalışıyorum. Sitedeki örnek konuları inceledim fakat bir çözüm bulamadım.
Öncelikle gönderdiğim komutlar sırayla şöyle:

AT\r
ATE0\r
AT&K0\r
AT+CMEE=1\r
AT+CSQ\r
AT+CGSN\r
AT#USERID=\r
AT#PASSW=\r
AT+CGDCONT=1,IP,internet,0.0.0.0,0,0\r
AT#SKTSAV\r
AT#SKTCT=600\r
AT#GPRS=1\r
AT#SKTD=0,80,www........com,0\r
GET /deneme.aspx?id=78&veri=%u&girisim=%u HTTP/1.1\r\n
Host: www..........com\r\n
Connection: keep-alive\r\n\r\n\r\n


AT#SKTD=0,80,www........com,0\r komutuna kadar sorunsuz, olması gerekn cevapları alarak geliyorum.
AT#SKTD=0,80,www........com,0\r komutuna CONNECT cevabı da geliyor.

Sonrasındaki GET, Host ve Connection komutlarını peşisıra gönderiyorum. Bazen web sayfasından düzgün cevap geliyor ve html kodlarını alıyorum,  bazen de Bad Request dönüyor. Sıkıntıyı çözemedim.

Soket bağlantısının kapanmasında kaynaklanabileceğini düşünüp "AT#SKTD=0,80,www........com,255\r" ile bağlanmayı ve html kodlarını aldıktan sonra "+++" ile sonlandırmayı denedim. Bu durumda "NO CARRIER" hemen geliyor ama çözüm olmadı.

Bu arada avea hat kullanarak deniyorum

Problem ne olabilir? Yardımınızı rica ederim

Teşekkürler

ismail kaya

CSS C kodları aşağıda kendine göre uyarlarsın.
  
fprintf(PORT1,"AT\r\n");
delay_ms(500);
fprintf(PORT1,"AT+IPR=9600\r\n");
delay_ms(500);
fprintf(PORT1,"AT&K0\r\n");
delay_ms(500);       
fprintf(PORT1,"AT+FCLASS=0\r");
delay_ms(1000);
fprintf(PORT1,"AT+CGDCONT=1,\"ip\",\"internet\"\r");   
delay_ms(1000);
fprintf(PORT1,"AT#SCFG=1,1,100,50,600,50\r");  
delay_ms(1000);
fprintf(PORT1,"AT#SGACT=1,1\r");                                                              
delay_ms(5000);
fprintf(PORT1,"AT#SD=1,0,80,\"www.telit.com\"\r");              
delay_ms(7000);
fprintf(PORT1,"GET/deneme.aspx?id=78&veri=%u&girisim=%u HTTP/1.1\r\n",veri,girisim);
delay_ms(500);
fprintf(PORT1,"Host: www.telit.com\r\n");
delay_ms(500);
fprintf(PORT1,"\r\n");

sdonmez

Tesekkurler. Deneyeceğim. 

Connection keep alive kullanmamissiniz. Bu durumda sorguyu yaptiktan sonra  baglanti hemen kesiliyor  mu?

ismail kaya

Bir süre sonra kesiliyor. (onun yerine +++ da yolluyorduk herhalde.)

MrDarK

Kullandığınız besleme ve şebeke kalitesi çok önemli bu tarz internetle ilgili projelerde. Datayı gönderirken gsm modül 2A'e yakın anlık tüketim yapabilir. Haliyle besleme kaynağınız düşük ise bu anda voltaj düşmelerinden uart seviyelerinizde değişme olabilir. Buda datanın karşı tarafa hatalı gitmesine sebep olacaktır.

Eğer bağlantı hemen kapatılsın istiyorsanız connection modunu close kullanabilirsiniz.

Birde pasif bağlantı metodunu tercih edebilirsiniz. Şu an kullandığınız aktif bağlantı modu.
Picproje Eğitim Gönüllüleri ~ MrDarK

sdonmez

Alıntı yapılan: MrDarK - 25 Ocak 2017, 15:22:10
Kullandığınız besleme ve şebeke kalitesi çok önemli bu tarz internetle ilgili projelerde. Datayı gönderirken gsm modül 2A'e yakın anlık tüketim yapabilir. Haliyle besleme kaynağınız düşük ise bu anda voltaj düşmelerinden uart seviyelerinizde değişme olabilir. Buda datanın karşı tarafa hatalı gitmesine sebep olacaktır.

Eğer bağlantı hemen kapatılsın istiyorsanız connection modunu close kullanabilirsiniz.

Birde pasif bağlantı metodunu tercih edebilirsiniz. Şu an kullandığınız aktif bağlantı modu.


Hemen kapatmasi icin connection: close yazacağız sanirim.

Pasif baglanti nasil saglaniyor?

MrDarK

AT komutlarını inceleyebilirsiniz. Pasif bağlantı dediğim komut modunda bağlantı
Picproje Eğitim Gönüllüleri ~ MrDarK

sdonmez

Merhaba,

Akşam soket bağlantı komutlarını değiştirdim. AT#SCFG, AT#SGACT, AT#SD komutlarını denedim.

Komutlar sırayla şöyle:

AT\r
ATE0\r
AT&K0\r
AT+CMEE=1\r
AT+CSQ\r
AT+CGSN\r
AT+CREG?\r
AT+CGDCONT=1,IP,internet,0.0.0.0\r
AT#USERID=\r
AT#PASSW=\r
AT+CGDCONT?\r
AT#SCFG?\r
AT#SCFG=1,1,100,50,600,50\r
AT#SGACT?\r
AT#SGACT=1,1\r
AT#SD=1,0,80,www..........com\r

GET /deneme.aspx?id=78&veri=%u&girisim=%u HTTP/1.1\r\n
Host: www..........com\r\n
Connection: keep-alive\r\n\r\n\r\n


AT#SCFG? komutundan sonra liste geliyor ve ben AT#SCFG=1,1,100,50,600,50 ile devam ediyorum, OK alıyorum.
AT#SGACT? komutundan sonra AT#SGACT=1,0 geliyor. AT#SGACT=1,1 komutu ile devam ediyorum ve IP alıyorum.
AT#SD= komutundan sonra CONNECT de geliyor.

Fakat GET, Host ve Connection komutlarından sonra hala anlamlandıramadığım şekilde bazen "Bad Request, invalid verb" gibi içeriğe sahip cevap dönüyor.  :(

Web sitesinde problem var desem, web tarayıcıdan sorgu yaptığımda herşey düzgün görünüyor...

www.google.com gibi bir sitede mi denesem, bilemedim..





MrDarK

Eğer gerçek gelen bilgileri görmek isterseniz kendi bilgisayarınıza apachi gibi birşey yükleyip gönderdiğiniz komutları görebilirsiniz. Tavsiyem bu yönde olabilir.

Ben hala ya arada sırada buffer'larınızda bir hata oluşuyor yada besleme kaynaklı data bozulması yaşadığınızı düşünüyorum. Çünkü anlık olarak 2A gerçeğini göz ardı ettiğinizi düşünüyorum. Ayrıca pcb ve anten kalitenizi de değerlendirmek lazım.

Gönderdiğiniz komutları uzun süreli test halinde bırakıp inceleyip hatayı tespit edebilirsiniz. Şu noktadan sonra biz bir adım ileri gidemeyiz ne yazık ki. Problemin ne tarafta olduğunu siz test ederek bulmalısınız.
Picproje Eğitim Gönüllüleri ~ MrDarK

ismail kaya

MrDark Hocamın dediği gibi istersen 3.7v lipo yada Lion pille bir dene. Komutları işlemciyle mi yolluyorsun yoksa RsTerm gibi programlami. İşlemciyle yolluyorsan seri portan bilgisayarda verileri kontrol edebilirsin. Gl865 kart hazır mi sen mi tasarladın. Anten tasarımı yanlış olabilir.

sdonmez

#10
Karti ben yaptim ve komutlari islemciyle gonderiyorum.
Yazilimsal seri porttan da gsm modulden donen verileri izliyorum.
Sunucu tarafina ne gittigine bakmaya calisacagimm.

Besleme konusunda sikinti oldugunu zannetmiyorum. Zira sms atiyorum. Yine de kontrol edecegim.


ismail kaya

Hocam besleme voltajı kaç V? Ben 4v ile besliyordum.

sdonmez


sdonmez

Şimdi devre üzerinden ölçtüm.
3.83V veriyorum


Klein

Get sorgusunun sonuna "\x1A"  karakteri eklemezseniz bazı siteler cevap vermiyor.