Selamlar
Bu GPRS modülü ile TCP bağlantısını test etmem gerekiyor. Modüle internet bağlantısı aktif olan bir M2M kart takılı. Daha önce ethernet ile hiç uğraşmadım. Bu yüzden teknik olarak nasıl bağlantı kurmam gerektiğini bilmiyorum.
İnternette sim908 için TCP, FTP bağlantıları için örnekler buldum. Bağlantı kurmak istiyorum ama nereye nasıl bağlanacam onu bilmiyorum. Şimdilik bilgisayarımda HW Hercules FTP test programını yükledim. Bu programın ayarlarını nasıl yapmam gerekiyor? Ufak bir örnek verebilirmisiniz?
TCP bağlantısı için uğraşıyorum.
Buradaki programı indirebilen varmı?
http://m2msupport.net/m2msupport/tutorial-for-simcom-m2m-modules/ (http://m2msupport.net/m2msupport/tutorial-for-simcom-m2m-modules/)
İndirmek istediğimde Java sürümü uyumsuz diyor.
Alıntı yapılan: Mucit23 - 24 Ekim 2015, 21:47:42
TCP bağlantısı için uğraşıyorum.
Buradaki programı indirebilen varmı?
http://m2msupport.net/m2msupport/tutorial-for-simcom-m2m-modules/ (http://m2msupport.net/m2msupport/tutorial-for-simcom-m2m-modules/)
İndirmek istediğimde Java sürümü uyumsuz diyor.
Bu program inmiyor, online bir program. Çalıştırmak için Java'nın güncel olması ve Control Panel Java ayarlarında da bu sitenin girilmiş olması gerekiyor. Bunlar yapılıp browser yeniden başlatılınca çalışıyor.
HW Hercules basit güzel bir program.
Sim908 konusunu bilmiyorum ama HW Hercules programını basitçe çözebilirsin.
Hocam hercules ile bir TCP server kurmam gerekiyor. Burada bunun ayarlarını nasıl yapacam onu bilmiyorum. Etrafımda okadar çok döküman varki döküman karmaşası içerisindeyim.
Bu javanında security ayarlarını yaptım. Ama düzelmedi. Hala açılmıyor.
http://s6.dosya.tc/server3/9mqqw1/tcp.rar.html (http://s6.dosya.tc/server3/9mqqw1/tcp.rar.html)
TCPserver.exe istedigini yapıyor yanlızca dinleyeceği portu yazip sonra listen yapıyorsun
Herculesin öyle zor bir ayarı yok. Server portunu yazıp TCP modunda açacaksın. Sonra modeminin ayarlarına girip bilgisayarının TTNET IP'sinin server portuna yazdığın rakamı local IP'sinin portuna yönlendirdin mi olay tamamlanıyor.
Hercules içinde TCP Server modu aktif edip ardından TCP Client ile ona bağlanarak kısa bir test bile yapabilirsiniz. Yazılım buna bile imkan tanıyor. Böylece nasıl çalıştığını daha net anlayabilirsiniz.
Hercules ile deneme yapıyorum. Sormak istediğim birkaç soru var.
TCP server'da Port değerini 1000 olarak belirleyip server'ı açıyorum. Sonra TCP Client moduna geçip IP adresini 127.0.0.1 giriyorum Port olarak da yine 1000 giriyorum. Connect diyince bağlantı kuruluyor.
Fakat ben bu 127.0.0.1 değerini neye göre belirleyeceğim Onu anlamadım. Birde Server modunda sadece port giriyorum ama IP adresi girmiyorum. Burada IP adresini öğrenmek için modemin içine girdim. Modem benim PC ye 192.168.2.158 gibi bir IP vermiş. Burada benim TCP server IP'si'de mi bu oluyor. Eğerki Server IP'si bu ise neden client'de 127 ile başlayan bir ip girmek zorundayım?
@MrDarK Alıntı YapSonra modeminin ayarlarına girip bilgisayarının TTNET IP'sinin server portuna yazdığın rakamı local IP'sinin portuna yönlendirdin mi olay tamamlanıyor.
Bunu biraz daha açıklayabilirmisin?
@Mucit23 ;
Modem markasından markasına değişiyor, Port yönlendirme diye araştır kendi modem markana göre.
Sonra hangi portu,hangi IP'li bilgisayarın portuna istersen ona yönlendiriyorsun. Örneğin Hercules'de 1000 nolu portu server açtın. Modemden de 1000 nolu portu bilgisayarının IP'si olan 192.168.2.158 IP ve 1000 portuna yönlendirdiğinde GSM modülden yapman gereken tek şey TTNET'in sana verdiği IP'nin 1000 nolu portuna bağlantı kurmak. TTNET IP'sini görmek için ;
https://yandex.com.tr/yandsearch?text=ip%20adresim&from=os&clid=1836588
Linklerinden faydalanabilirsin.
127.0.0.1, makinanın kendisi demektir. Bir makina, kendi üzerinde açılmış olan bir TCP/IP servis veya uygulamaya kendi IP adresi üzerinden bağlanabildiği gibi 127.0.0.1 IP adresi üzerinden de bağlanabilir. Ancak bir makina başka bir makinaya bağlanacaksa orada 127.0.0.1 gibi bir adres artık kullanılamaz.
Diğer kısmını MrDark açıkladı zaten.
Dış IP nin bilinmesine ihtiyac olacağı zamanlarda ekteki php kodu kullanıyorum.
Konuya yabancı olanlara
ekteki dosya php yapılı sayfa kodudur, bir domain altında (veya ana sayfasında) kullanılır, bu php kodlu sayfayı barındıran bir hosta sahip olunması gerek.
Bir domain name aldınız örneğin www.benimsayfam.com (http://www.benimsayfam.com)
Bir host (web sayfalarının barınacağı yer) ayarladınız (ücretli veya ücretsiz).
web sitenizi tasarladınız ve hosta yüklediniz. Artık isminiz tıklanınca hazırladığınız web açılıyor.
Bu ismin barındığı hosta ekteki sayfayı da yüklediniz (rar içinden çıkararak "benim_ip.php" veya istediğiniz bir isim ile değiştirerek )
www.benimsayfam.com/benim_ip.php (http://www.benimsayfam.com/benim_ip.php)
çağrıldığında içinde başka hiçbir karakter katışığı bulunmadan direk copy dediğinizde elde edilen IP' nizdir.
Örneğin kendim için yuklediğim sayfayı şu an çağırdım, gelen sayfanın içeriğini kopyaladım
188.58.16.79
yanlızca sonda bir boş karakter görüyorum. Başka bir fazlalık yok.
PHP sayfanın kodu
<?php
function GetIP(){
if(getenv("HTTP_CLIENT_IP")) {
$ip = getenv("HTTP_CLIENT_IP");
} elseif(getenv("HTTP_X_FORWARDED_FOR")) {
$ip = getenv("HTTP_X_FORWARDED_FOR");
if (strstr($ip, ',')) {
$tmp = explode (',', $ip);
$ip = trim($tmp[0]);
}
} else {
$ip = getenv("REMOTE_ADDR");
}
return $ip;
}
$kimlik = GetIP();
echo $kimlik;
?>
- - -
Sayfanın bütün kodu şartları elemeleri kaldırınca şu kadar da yetebilir. Bunda sondaki boşluk da yok.
<?php echo $_SERVER['REMOTE_ADDR']; ?>
OG hocam bilgi için teşekkürler. PHP konusunda bilgim yok ama anlatmak istediğinizide anladım.
TCP Client bağlantısını biraz anladım. Ben şuanda yine Sim908 üzerinde TCP bağlantısı üzerine uğraşıyorum. Bağlantı kurmak için çırpınıyorum.
Hercules'te TCP server'i açıp port numarasını 1000 yaptım
Sonra Sim908 ile aramızda geçen diyaloglar şu şekilde. Kırmızı olanlar benim gönderdiğim komutlar.
AT
AT
OK
AT+CIPSHUT
AT+CIPSHUT
SHUT OK
AT+CIPMUX=0
AT+CIPMUX=0
OK
AT+CIPSTATUS
AT+CIPSTATUS
OK
STATE: IP INITIAL
AT+CGATT=1
AT+CGATT=1
OK
AT+CSTT="IP"
AT+CSTT="IP"
OK
AT+CIICR
AT+CIICR
OK
AT+CIFSR
AT+CIFSR
10.96.100.164 //Modül IP adresi
AT+CIPSTART="TCP","88.228.84.133","1000"
AT+CIPSTART="TCP","88.228.84.133","1000"
OK
STATE: TCP CLOSED
CONNECT FAIL
Benim IP adresim 88.228.84.133, PC de Hercules Server 1000 portunda dinleme yapıyor. Birkaç deneme daha yaptım fakat sürekli CONNECT FAIL hatası alıyorum. Fikri olan var mı bir yerlerde hata yapıyor olmalıyım.
@Mucit23 Modem de port açtın mı? Yani yönlendirme yaptın mı? Eğer açmadıysan bağlantı kurulamaz.
@Mucit23 ;
Eğer port yönlendirmeyi yapamamış isen sistem çalışmayacaktır. Hercules'den TCP server kur tekrar server kurulu ve dinliyorken aşağıdaki siteye gir;
http://ip-adresim.net/araclar/acik-portlar (http://ip-adresim.net/araclar/acik-portlar)
Buraya kendi bilgisayarının IP'sini ve portunu gir. Sonra sorgula butonuna bas. Eğer başarılı şeklinde bir cevap alırsan gsm modülünde bağlanaması gereklidir. Ondan öncesinde gsm modül komutlarına bakmamıza gerek yok. Önce bağlantından emin olmak lazım.
Evet port açmamıştım. Port açmam gerektiğini bilmiyordum. Aslında Hercules'te server kurunca port ayarlamasını vs yapmasını beklerdim.
MrDark Dediğini yapıyorum ve Port Kapalı şeklinde bildirim alıyorum. Port yönlendirme yapılmadığında böyle bir uyarı veriyor sanırım.
Şuan iş yerindeki modem üzerinde deneme yapıyorum. Zyxel'in bir modemi var (Allah düşmanın başına böyle modem vermesin. Sürekli internette kopmalar yaşıyorum. Çözebilmiş değilim. ) Bendeki modemin modeli Zyxel p-660hn-t1a, Beş para etmez bir modem. Sabahtan beri port açacam diye 2 defa fabrika ayarlarıne çevimek zorunda kaldım. >:(
Hocam ha gayret;
En kötü yine olmazsa uzak masaüstü bağlantısıyla modeminizin ayarlarını inceleyebilirim.
Bağlantı kurabildim sonunda... Ama kendi bilgisayarıma değil. Bünyesinde Server bulunduran bir firmadaki arkadaşıma rica ettim. Kendi serverlarında Bana özel bir port açtılar. Bende Onların IP'sine ve Portuna bağlanıp String vs gönderdim. Karşı tarafa sıkıntısız bir şekilde ulaştı.
Kendi bilgisayarımda henüz yapamadım. Modemden port açma işleminı çözemedim. Onu çözsem kendi bilgisayarımda verileri göreceğim.
Port açma işlemini gerçekteştirdikten sonra Eterlogic firmasının güzel bir "virtual serial port emulator" yazılımı var TCP client ve server da oluşturabiliryor.
Ben bu program sayesinde 2 adet sanal COM açıp(pair com),, birde TCP server oluşturup serveri sanal comlardan birine bağlıyorum, haberleşmek için diğer COM'u seçip servera bağlı client cihazlara veri gönderip alabiliyorum.
Bu şekilde bilgisayarcılara çok işin düşmeden testlerini halledebilirsin.
iyi çalışmalar.
Sonunda port açıp haberleşmeyi Sağlayabildim. İnternette izlediğim bir video faydalı oldu.
Konuyu sonuçlandıralım bari. Bu modülle uğraşacakların TCP bağlantısı kurabilmesi için sırayla aşağıdaki komutları göndermesi gerekiyor. Kırmızı ile yazılanlar benim gönderdiklerim. Yeşil olanlar modülün verdiği cevaplar.
AT+CREG?
+CREG: 0,1
OK
AT+CFUN=1
OK
AT+CIPSHUT
SHUT OK
AT+CIPMUX=0
OK
AT+CIPSTATUS
OK
STATE: IP INITIAL
AT+CGACT=1,1
OK
AT+CGATT=1
OK
AT+CIPSTATUS
OK
STATE: IP INITIAL
AT+CSTT
OK
AT+CIPSTATUS
OK
STATE: IP START
AT+CIICR
OK
AT+CIFSR
10.103.176.253 //Sim908'in GSM Şebekesinden aldığı IP
AT+CIPSTART="TCP","88.228.71.161","23" //Burada 88.228.71.161 nolu IP benim bilgisayarımın bağlı olduğu modemin dış dünyaya açıldığı IP'dir. Siz bunu kendi bilgisayarınıza göre değiştirin. 23 ise bağlanmak istediğim port. Cevap Aşağıdaki gibi olması gerekiyor.
OK
CONNECT OK
Bu cevap geldiyse bağlantı kurulmuştur. Veri göndermek için aşağıdaki yapı kullanılır.
AT+CIPSEND=10 //10 verisi gönderilecek string'in boyutudur. Bu komut girildikten sonra aşağıdaki cevap gelmelidir.
> // Şimdi doğrudan Texti Yazıp gönderebilirsiniz.
Deneme 123
SEND OK
Bu konuyu birazcık anlamış oldum bu sayede.
Hocam AT+CIPSEND=10 komutu falan göndermek gereksiz, bunları parse etmekle uğraşmayın transparent mode geçin çift yönlü iletişim başlasın çıkmak içinde "+++" gönderirsiniz.
Not: GL865 den hatırlıyorum iletişimde byte veya char verilerin gönderimi için ayrı bir seçenek vardı. karakter dışında bir veri gönderiyorsanız bu seçeneği bir kontrol edin.
Haberleşmeyi sağlamak için modemden hangi portu açmamız gerekiyor? Herhangi boşta bir port olabilir mi ?!
Alıntı yapılan: Fixxer - 04 Kasım 2015, 13:39:20
Haberleşmeyi sağlamak için modemden hangi portu açmamız gerekiyor? Herhangi boşta bir port olabilir mi ?!
Evet
Evet, modemden istediğim portu yönlendiriyorum ama daha pratik bir yöntem olarak; Turkcell 3g Wınn modem kullandım. Tüm portları açık olduğundan hiçbir işlem yapmama gerek kalmadı.
Alıntı yapılan: Fixxer - 05 Kasım 2015, 13:38:25
Evet, modemden istediğim portu yönlendiriyorum ama daha pratik bir yöntem olarak; Turkcell 3g Wınn modem kullandım. Tüm portları açık olduğundan hiçbir işlem yapmama gerek kalmadı.
hocam tam olarak şu an yapmaya çalışıpta yapamadığım şeyi yapmışsın .3g modem+ 3g router ile internete bağlı olan bilgisayarda hercules ile tcp server kuruyorum ancak bu sunucuya uzak bir IP den bağlanamıyorum.neyi eksik yapıyorum ?