GPRS üzerinden GPS bilgisi göndermek(Telit)

Başlatan LukeSkywalker, 15 Eylül 2008, 20:46:42

LukeSkywalker

Arkadaşlar bu modülden kullananlar bir yardımcı olursa makbule geçer. GPS bilgisini GPRS üzerinden bir IP numarasına aktarmak için nasıl bir yol izlemeliyiz?

controller

iki yöntem var. ya harici bir mikrodenetleyici kullanarak gps seri portundan aldığın veriyi tekrar modem portundan göndereceksin, yada modülün içindeki phyton yorumlayıcı için program yazıp yine gps den aldığın bilgiyi gprs üzerinden aktaracaksın.
Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

LukeSkywalker

AT komutla modem çıkışlarından GPS bilgisini okuyamıyor muyuz hocam? Yani iki ayrı usart birimi kullanmaya gerek var mı hem GPS hem de GPRS için?

controller

at komutları ile modem portundan gps bilgisini okuyabiliyorsun. ancak gprs bağlantısı kurduğun zaman modem portu direkt gprs socket bağlantısına yönlendiriliyor. yani gprs bağlantısı kurduktan sonra bağlantıyı kesmeden at komutlarını kullanamıyorsun. bu durumda önce gps bilgisini at komutları ile okuyup sonra gprs bağlantısı kurup okuduğun bilgiyi göndermen gerekir. yeni bilgi göndereceğin zaman gprs bağlantısını kesip at komutları ile yeni gps bilgisini alıp tekrar gprs bağlantısı kurarak gönderebilirsin. yani sürekli bağlan-kes, bağlan-kes durumu olur.
gprs ile socket bağlantısı kurmak için birkaç komut daha vardı onları inceleyebilirsin. harici denetleyici yerine modülün içindeki phyton yorumlayıcıyı kullanırsan, programdan her iki seri porta da erişim sağlayabiliyorsun. yani bir port sürekli gprs bağlantısı sağlıyor, diğer porttan gps bilgisini alıyorsun.
Hesabım OG tarafından haksız bir şekilde pasif yapılmıştır.

LukeSkywalker


_md_

Merhaba arkadaşalar bende bu konu üzerinde çalışmaya başlayacağım inşallah hangi gprs modülünü ne gps modülünü önerirsiniz?

LukeSkywalker

Telit marka GM862-GPS üzerinde hem GPS hemde GPRS barındırıyor. Ben şu anda birtane edindim. Ramazandan sonra çalışmalara başlıyorum.

_md_

Merhaba Hocam nereden ve kaça aldın?




http://www.digitaldawgpound.org/nick84/post=222#comment-9487

bu linkte işine yarayacak birşeyler olabilir.

LukeSkywalker

Alıntı yapılan: "_md_"Merhaba Hocam nereden ve kaça aldın?




http://www.digitaldawgpound.org/nick84/post=222#comment-9487

bu linkte işine yarayacak birşeyler olabilir.
Ankarada epsilontek diye bir firmadan edindim. İnternet siteleri mevcut.

volpii

arkadaşlar elinizde sadece gps den aldığı bilgiyi lcd de gösteren devre varmı acaba formda aradım bi arkadaş sony chipli yapmış fakat hiç devre şeması filan yok yardımcı olursanız sevinirim

sigmoid

bir arkadaş için mikroc de aşağıdaki kodları yazmıştım. GPS modülü pic in usart portuna bağlanmıştır. 2400 bps ile haberleşilmektedir. GPS ten sürekli mesaj akmaktadır. Koordinat bilgileri $GPRMC ile başlayan satırda yazıyor. O nedenle usartan gelen verilerde önce bu satırla başlayan veri bulunuyor. Sonra bu satır bir temp registerına atılıyor.  aşağıdaki kodlarda gpstemp e attım. bu temptteki satırda koordinat bilgileri virgüllerle ayrılmıştır. programı uzun süre önce yazdığımdan dolayı hangi virgülden sonra enlem veya boylam bilgisi geldini hatırlamıyorum.

gprmc satırı aşağıdaki gibidir. önce bu satırı bulup gpstemp dizisine atıyorum. sonra gps2text fonksiyonunu her çalıştırıldığında iki virgül arasındaki yazıyı lcdtext e atıyor.

$GPRMC,204001,V,4104.4207,N,02905.2399,E,0.000,0.0,110308,3.9,E*68


const char *msgtext = "GPS Konum";
const char *msgesit=" = ";
const char *msguydu="Uydu";
const char *msgaraniyor="aranıyor.";
const char *msgbaglanildi="baglanildi.";
const char *msgsaat="Saat";
const char *msgboylam="Boylam";
const char *msgenlem="Enlem";


char gpstemp[80],lcdtext[20];
unsigned short gpstempkonum;   //gpstempten en son okunan yeri tutar.
void strcopy(char *hedef,const char *kaynak);
unsigned short usarttemp,uydudurum;


void usart_oku();
void virgulatla(unsigned short virgulsay);
void gps2text();
void gprmcoku();

void main()
{

  usart_init(4800);
  TRISB = 0;                // PORTB is output
  Lcd_Init(&PORTB);         // Initialize LCD connected to PORTB

  
  while(1)
  {

                gprmcoku();


                Lcd_Cmd(Lcd_CLEAR);       // Clear display
                Lcd_Cmd(Lcd_CURSOR_OFF);  // Turn cursor off
                strcopy(lcdtext,msgtext);
                lcd_out(1,2, lcdtext);            //ilk satıra GPS Konum yaz
                
                
                virgulatla(1);
                gps2text();               //uydu durumunu yazıyor. önce A veya V harfi gözükür.
                uydudurum=lcdtext[0];
                lcd_out(2,1,lcdtext);
                strcopy(lcdtext,msguydu);
                lcd_out(2,3,lcdtext);
                if(uydudurum=='A')
                {
                  strcopy(lcdtext,msgbaglanildi);
                  lcd_out(2,8,lcdtext);
                }
                else if(uydudurum=='V')
                {
                  strcopy(lcdtext,msgaraniyor);
                  lcd_out(2,8,lcdtext);
                }
                

                strcopy(lcdtext,msgenlem);        //enlem yaz
                lcd_out(3,1,lcdtext);
                strcopy(lcdtext,msgesit); //                eşittir yaz.
                lcd_out_cp(lcdtext); //ekrana eşittir çıkmazsa bu satırı sil.
                gps2text();          //enlem bilgisini lcdtext at.
                lcd_out_cp(lcdtext);
                
                strcopy(lcdtext,msgboylam);  //boylam yaz.
                lcd_out(4,1,lcdtext);
                strcopy(lcdtext,msgesit); //                eşittir yaz.
                lcd_out_cp(lcdtext); //ekrana eşittir çıkmazsa bu satırı sil.
                virgulatla(1);       //1 virgül sonrada boylam bilgisi geliyor.
                gps2text();
                lcd_out_cp(lcdtext); //boylamı yazdır.
                //gpstext() i her çağırdığında sonraki virgülden sonraki veriyi lcdtexte atar.
                //eğer sonrakini yazdırmak istemezsen virgulatla(1) çağır, veya atlamak istediğin veri sayısını gir.
                //ilkinde ben 3 virgul atladım



                 delay_ms(500); //her yarım saniyede bir ekrana gps verilerini yaz.
  }
  

}

//usarttan 1 byte okur ve usarttemp e yazar.
void usart_oku()
{
 while(!Usart_Data_Ready());
 usarttemp=Usart_Read();
}


//dataları alırken kaçıncı virgulden sonrasını almak istiyorsan o kadar virgul atlamanı sağlar.
void virgulatla(unsigned short virgulsay)
{
 unsigned short i=0;      //atlanan virgul sayısı
 while(i<virgulsay)
 {
     if(gpstemp[gpstempkonum]==',')
     {
           i++;
     }
     gpstempkonum++;
 }
}

//gps verisini virgule kadar alır ve lcdtexte atar
//ekrana lcd_out ile kendimiz yazdırmalıyız
void gps2text()
{
 unsigned short i=0;
 while(1)
 {
     if(gpstemp[gpstempkonum]==',')
     {
             gpstempkonum++;
             break;
     }
     lcdtext[i]=gpstemp[gpstempkonum];
     gpstempkonum++;
     i++;
  }
  lcdtext[i]=0;
}


//grpmc satırını bulur ve gpstemp dizisine atar.
void gprmcoku()
{

 gpstempkonum=0;
 t1:
 
         usart_oku();
          if(usarttemp!='$')
              goto t1;
          usart_oku();
          if(usarttemp!='G')
              goto t1;
          usart_oku();
          if(usarttemp!='P')
              goto t1;
          usart_oku();
          if(usarttemp!='R')
              goto t1;
          usart_oku();
          if(usarttemp!='M')
              goto t1;
          usart_oku();
          if(usarttemp!='C')
              goto t1;
          usart_oku();
          if(usarttemp!=',')
              goto t1;         //$GPRMC, karakterleri yoksa döngü başına git.
              
          while(gpstempkonum<80)
          {
            usart_oku();
            if(usarttemp=='\n')
                break;             //yeni satır gelince çık.
            gpstemp[gpstempkonum]=usarttemp;
            gpstempkonum++;
          }
          gpstemp[gpstempkonum]=0;
          gpstempkonum=0;

}


void strcopy(char *hedef,const char *kaynak)
{
  while(*kaynak)
    *hedef++ = *kaynak++;
    
  *hedef=0;
}

CoşkuN

Arkadaşlar bu Telit GPS-GPRS modülünün fiyatı nedir acaba bilen var mı?

volpii

Alıntı yapılan: "CoşkuN"Arkadaşlar bu Telit GPS-GPRS modülünün fiyatı nedir acaba bilen var mı?

arkadaşa ek olarak birde nerden temin edebiliriz özellikle sony gps okuyucuyu

_md_

telit'inkiler oldukça güzele benziyor ben bayramda sora yazıcı oğluna gidip araştırmayı düşüüyorum size bilgileri aktarırım.

LukeSkywalker

Arkadaşlar Sony chipsetli modül artık satılmıyor ama özellikleri aynı olup daha kaliteli sinyal alanı
www.denizelektronik.com da satılıyor(sirfstar III)

Telit'in fiyatı 95 Euro...

Bu arada Telit GM862 GPS için 50 pin molex board to board konnektörü PCB üzerine yüzey montaj tekniği ile lehimlemem gerekiyor. Yalnız konektörün iki bacağı arasındaki mesafe 0.5mm. Nasıl bir yol izlemeliyim? Havyayla yapmak mümkün değil gibi..Aşağıda datasheeti var. Yardımcı olursanız sevinirim..

http://www.sparkfun.com/datasheets/Prototyping/537480504_sd.pdf