! GSM Modül İle İnternet Uygulamaları !

Başlatan MrDarK, 30 Haziran 2012, 16:14:44

MrDarK

Alıntı yapılan: husel77 - 06 Mart 2015, 16:00:18
merhaba arkadaşlar;
ikitane telit gl865 modem ve iki tane sabit ip sim kartım var. iki modemi haberleşme yapmak istiyorum fakat temel at komutlarını karıştıra karıştıra kafam döndü. turkcell den sabit ip ve apn ismi "mgbs" verdiler. AT+CGDCONT satırına ip ve apn isimleri tanımlanıp nasıl bağlantı kurmam gerekiyor. Bilen arkadaşlar yardımcı olabilirse çok sevinirim.

AT+CGDCONT=1,"IP","mgbs","0.0.0.0",0,0
AT#USERID=""
AT#PASSW=""
AT#GPRS=1
Picproje Eğitim Gönüllüleri ~ MrDarK

husel77

Alıntı yapılan: MrDarK - 06 Mart 2015, 18:08:06
AT+CGDCONT=1,"IP","mgbs","0.0.0.0",0,0
AT#USERID=""
AT#PASSW=""
AT#GPRS=1


çok teşekkür ederim.
dediklerinizi yaptım ağa kayıt oldum herhalde; çünkü AT+CGPADDR=1 dediğimde tanımlanan statik IP numarasını görüyorum.Karşı modemede aynısını yaptım
AT#SD=1,0,80,"KARŞI MODEM IP",0,0,0 Komutu CONNECT cevabını alıyorum.
fakat bağlantıyı test edemiyorum. karşı modemde bilgisayara bağlı onun hyperterminalin de hiç birşey yazmıyor.
bu sorun nereden kaynaklanıyor acaba. yazdığım bir şeyi karşı hyperterminalde nasıl görebilirim? İlginize şimdiden teşekkür ederim.
80 olan port numarasından olabilir mi?

MrDarK

Alıntı yapılan: husel77 - 08 Mart 2015, 23:11:45
çok teşekkür ederim.
dediklerinizi yaptım ağa kayıt oldum herhalde; çünkü AT+CGPADDR=1 dediğimde tanımlanan statik IP numarasını görüyorum.Karşı modemede aynısını yaptım
AT#SD=1,0,80,"KARŞI MODEM IP",0,0,0 Komutu CONNECT cevabını alıyorum.
fakat bağlantıyı test edemiyorum. karşı modemde bilgisayara bağlı onun hyperterminalin de hiç birşey yazmıyor.
bu sorun nereden kaynaklanıyor acaba. yazdığım bir şeyi karşı hyperterminalde nasıl görebilirim? İlginize şimdiden teşekkür ederim.
80 olan port numarasından olabilir mi?

Karşıdaki modemi TCP Server olarak olarak kurmuş olmanız gerekiyor öncelikle, direkt TCP'den veri göndermezsiniz diye biliyorum, Server/Client olmadan. O yüzden öncelikle server ayarlarınızı görmek lazım. TCP ile ilgili yaptığınız ayarları inceleyin özellikle server client modlarını.
Picproje Eğitim Gönüllüleri ~ MrDarK

husel77

Alıntı yapılan: MrDarK - 09 Mart 2015, 09:37:40
Karşıdaki modemi TCP Server olarak olarak kurmuş olmanız gerekiyor öncelikle, direkt TCP'den veri göndermezsiniz diye biliyorum, Server/Client olmadan. O yüzden öncelikle server ayarlarınızı görmek lazım. TCP ile ilgili yaptığınız ayarları inceleyin özellikle server client modlarını.

Sağolun hocam teşekkür ederim.
siz tcp deyince yanlış yolda olduğumu anladım. Ben şunu yapmak istiyorum: Karşı modeme bağlantıyı kurup bu bağlantıyı bir nevi seri haberleşme yolu gibi kullanmak istiyorum. Önceki yaptığım işlem şu; karşıdaki modeme modbus olan bir cihaz bağlı ben atd0530XXXXXXi çevirmeli ağ bağlantısı yapıp cihazla  sorunsuz bir şekilde haberleştim. Fakat iletişim maliyetli olduğundan bunu ip "mgbs" üzerinden yapmam gerekiyor.   Bunun için  kullanmam gereken komutları işin açığı bilmiyorum. Nasıl bir yol önerirsiniz acaba? modemler telit gl865 dual v3.

MrDarK

#94
"mgbs" dediğiniz şey nedir ? Önceki mesajlarınızdan anladığım kadarıyla Static IP alabilmek için operatörden size özel APN açtırmışsınız. Bunuda IP'leri sabitlemek için kullanmışsınız. Bundan sonra çevirmeli bağlantı kurmayacağınıza göre mecburen GPRS üzerinden data transferi yapacaksınız. Bunun içinde 2 protokol var;

1- TCP Protokolü (Data Kaybı Olmaz)
2- UDP Protokolü (Datanın kaybı önemsizdir)

TCP seçtiğinizi farz ediyorum, bununla ilgili AT komutları var. TCP Server , Client kodlarını araştırın. Aynısının UDP olan yapıları var. TCP Server Client uygulaması yapmaya çalışın aktif pasif bağlantı şekilleri var. Aktif bağlantı sizin arama yaparak elde ettiğiniz bağlantının aynısı.
Picproje Eğitim Gönüllüleri ~ MrDarK

husel77

Alıntı yapılan: MrDarK - 09 Mart 2015, 15:33:13
"mgbs" dediğiniz şey nedir ? Önceki mesajlarınızdan anladığım kadarıyla Static IP alabilmek için operatörden size özel APN açtırmışsınız. Bunuda IP'leri sabitlemek için kullanmışsınız. Bundan sonra çevirmeli bağlantı kurmayacağınıza göre mecburen GPRS üzerinden data transferi yapacaksınız. Bunun içinde 2 protokol var;

1- TCP Protokolü (Data Kaybı Olmaz)
2- UDP Protokolü (Datanın kaybı önemsizdir)

TCP seçtiğinizi farz ediyorum, bununla ilgili AT komutları var. TCP Server , Client kodlarını araştırın. Aynısının UDP olan yapıları var. TCP Server Client uygulaması yapmaya çalışın aktif pasif bağlantı şekilleri var. Aktif bağlantı sizin arama yaparak elde ettiğiniz bağlantının aynısı.

Teşşekkürler hocam deneyip sonucu döneceğim.

husel77

yaptıklarım şu şekilde hocam;

server
AT+CGDCONT=1,"IP","mgbs"
AT#GPRS=1
AT#FRWL=1,"karşı ıp","0.0.0.0"
AT#SKTL=1,0,1024,255

(client):
AT+CGDCONT=1,"IP","mgbs"
AT#GPRS=1
AT#SKTD=0,1024,"server IP"

bağlantı yapıyorum.
connect cevabınıda aldım fakat hyperterminal den yazdıklarımı göremedim. yazılanları online görebilsem olay çözülmüş olacak. bağlantı bitince yazılanları çıkıyor dtr ayarlarında bir sorun var herhalde?

MrDarK

İki bağlantıda da mgbs yazmadan önce şu kodu çalıştır

AT&K0
Picproje Eğitim Gönüllüleri ~ MrDarK

Cemoka

Selamlar,

Aslen arıcıyım...Hobi olarak elektronikle uğraşıyorum....

Her iki uğraşı birleştirip bir gözlem kovanı yapmaya karar verdim.

Arduino Mega kullanıyorum.... Farkındayım rakip alandayım ama buradaki GPRS ile veri gönderme konusu çok işime yaradı.

Kovandan aldığım verileri 15 dakikada bir SD karta yazdırıyorum....

Yine 15 dakikada bir GPRS ile veritabanına da göndermek istiyorum.

Aşağıdaki kodu kullanarak bunu başardım:

<?php 
$x = $_GET["xKoor"];
$y = $_GET["yKoor"];
if(file_exists("x.txt")&&file_exists("y.txt")){
$dosya = fopen ('x.txt' , 'w') or die ("Dosya açılamadı!"); 
fwrite ($dosya,$x) ;
$dosya = fopen ('y.txt' , 'w') or die ("Dosya açılamadı!"); 
fwrite ($dosya,$y) ;
}
else{
touch ("x.txt") or die ("Dosya Yaratılamadı!") ; 
$dosya = fopen ('x.txt' , 'w') or die ("Dosya açılamadı!"); 
fwrite ($dosya,$x) ;
touch ("y.txt") or die ("Dosya Yaratılamadı!") ; 
$dosya = fopen ('y.txt' , 'w') or die ("Dosya açılamadı!"); 
fwrite ($dosya,$y) ;
}

?>


Burada koordinat yerine sprintf yaptığım veriyi x veya y dosyasına yazdırabiliyorum.

Tabii bunu yapmanın daha uygun şekli vardır ama dediğim gibi amatör olarak bu işlerle uğraşıyorum ve ancak ufak değişiklikler ile

kodu tamamlayabiliyorum.

Şimdi, ihtiyacam olan mesele 15 dakikada bir bu verilerin log dosyasında (x veya y) alt alta yazılması.

Şu anda silinerek yazılıyor.

Yani PHP koduna ihtiyaç var....

Yardımcı olabilirseniz arıcılık sektörüne de bir katkınız olur  ;D

Not: Çok karmaşık olmayan PHP scriptlerine de yönlendirirseniz yine fayda olur.

Teşekkürler.

MrDarK

#99
Alıntı YapŞimdi, ihtiyacam olan mesele 15 dakikada bir bu verilerin log dosyasında (x veya y) alt alta yazılması.

Şu anda silinerek yazılıyor.

Yani PHP koduna ihtiyaç var....

Arkadaşlar sizden tek ricam ;

Lütfen okumayı bilelim ilk mesajı okuyorsun neden devamını okumuyoruz ? Zaten verilmiş cevaplar bunlar. Rica ediyorum lütfen.

https://www.picproje.org/index.php/topic,40229.msg438730.html#msg438730

DipNot : Kimseyi rakip olarak görmüyoruz. Elde ettiğiniz her başarıyı her kodu istediğiniz yerde kaynak belirterek yayınlayabilirsiniz. Satabilirsiniz yeterki paylaşmayı bilelim.
Picproje Eğitim Gönüllüleri ~ MrDarK

Cemoka

Haklısınız gözden kaçmış...özür dilerim.....

Yardımlarınız için teşekkür ederim....

Rakip olma meselesi Arduino(Atmega) - PIC serisi ile ilgiliydi.....

Bu amatörlükle bir şey satmayı zaten düşünmem....

Kolay gelsin....

Cemoka

Alıntı yapılan: LukeSkywalker - 01 Ocak 2015, 09:57:56
Verileri sürekli ekranda gösterebilmek için veri.php isimli dosyayı çağırıyorum ve x, y txt dosyalarına veri yazdırıyorum. Index.php ile de verileri gösteriyorum. Bu sebeple GET komutunu şu şekilde değiştirdim:
GET /veri.php?xKoor=13&yKoor=85 HTTP/1.1<cr><lf>


Index.php ile verileri nasıl gösteriyorsunuz ? Yazılımı paylaşmanız mümkün mü ?

LukeSkywalker

#102
index.php aşağıdaki gibi;
<?php 
Header("Refresh: 3;");  // sayfayı 3 saniyede bir refresh eder.

$dosya = fopen ('x.txt' , 'r') or die ("Dosya açılamadı!");
$satir = fgets ( $dosya, 5 ) ;// x.txt dosyasındaki ilk satırdan 5 byte veri okuyacak
print("Sicaklik1 = $satir");

$dosya = fopen ('y.txt' , 'r') or die ("Dosya açılamadı!");
$satir = fgets ( $dosya, 5 ) ;// y.txt dosyasındaki ilk satırdan 5 byte veri okuyacak
print("<br />");//sayfada gösterirken alt satıra geçer.
print("Sicaklik2 = $satir");

?>

Cemoka

LukeSkywalker...

Cevabınız için teşekkürler.....

İki mesele kaldı....

Birincisi x ve y dosyalarına silmeden verileri alt alta yazdırmak.

Bunun ilk kısmını yardımlarınızla başardım.... Fakat verileri alt satıra yazdırmayı başaramadım.  Yan yana yazıyor.

"/n" " / r" ve "r / n" hatta bunların tek tırnaklı versiyonlarını da denedim. Ama olmadı.....

İkincisi de index sayfasından x ve y sayfalarının tek satırını değil tümünü görüntülemek.

Bu saatten sonra PHP öğrenmek istemiyorum....Böyle kıyı kıyı çözebilirsek ne mutlu  :P .... Yardımlarınız için teşekkürler.....


husel77

#104
Alıntı yapılan: MrDarK - 11 Mart 2015, 08:05:11
İki bağlantıda da mgbs yazmadan önce şu kodu çalıştır

AT&K0

Selam hocam;

geçen hafta uzun zamandır beklediğimiz bebeğimiz dünyaya geldi. Bu yüzden çalışmalarıma ara vermiştim. Allahım herkese bu mutluluğu yaşatsın.

neyse dedğiniz gibi AT&K0 komutu çalıştırınca sorun çözüldü. Tam istediğim gibi bir bağlantı kurdum. Size çok teşekkür ederim.

biliyorum çok oldum ama şimdi yeni bir sorun oluştu. +++ ile bağlantıyı bitirince NO CARRIER cevabını alıyorum. fakat yeniden bağlantı kurmaya çalışınca hata veriyor. karşı modeme  AT#SKTL=1,0,1024,255  komutunu yazdıktan sonra bağlantı kurabiliyorum. AT#SKTL=1,0,1024,255 komutu otomatik çalıştırmak mı gerekiyor yoksa başka bir komuta mı ihtiyacım var?