GY-NEO6MV2 GPS Modülü ve Arduino Uno ile Konum Tespiti

alasko

MB Üyesi
Kayıt
17 Aralık 2016
Mesajlar
3
Tepkiler
1
Yaş
30
Merhaba, bizde ayni proje üzerinde çalışıyoruz Wpf de Bing maps üzerinde çizgi çizdirmeye çalışıyoruz yardımcı olabilir misiniz?
 
Konu sahibi
Konu sahibi
R

Rukiye Gümüş

MB Üyesi
Kayıt
11 Ekim 2015
Mesajlar
17
Tepkiler
7
Yaş
32
Üniv
BİLECİK ŞEYH EDEBALİ ÜNİ.
@alasko;
Merhaba, çok isterdim ama projemin harita üzerinde işaretleme kısmı eksik malesef. Ama tamamlamayı düşünüyorum, fırsat bulduğumda bitirebilirsem paylaşırım. İnşallah siz de kısa süre içinde kolaylıkla yaparsınız, kolay gelsin.
 

veyseldmr46

MB Üyesi
Kayıt
27 Şubat 2018
Mesajlar
10
Tepkiler
0
Yaş
27
Üniv
Selçuk
rükiye hanım bu konu hakkında birkaç sorum olacak size nasıl ulaşabilirim.
 

omerkerimoglu

MB Üyesi
Kayıt
12 Mayıs 2018
Mesajlar
2
Tepkiler
0
Yaş
31
Üniv
istanbul üniversitesi
Pdf dosyasindan kodu alirken karakterler degisiyor kod hata veriyor duzeltmelerime ragmen .ino dosyasi olursa cok sevinirim @Rukiye Gümüş
 
Konu sahibi
Konu sahibi
R

Rukiye Gümüş

MB Üyesi
Kayıt
11 Ekim 2015
Mesajlar
17
Tepkiler
7
Yaş
32
Üniv
BİLECİK ŞEYH EDEBALİ ÜNİ.
@omerkerimoglu , maalesef çalışan son halini bulamadım, 3 sene olmuş projeyi yapalı. Raporu LaTex' de yazmamdan kaynaklı karakterlerdeki sorun, hata aldığım için değiştirerek yazmıştım(tırnaklar, özel karakterler vs.).

Kodun genel algoritmasından yola çıkarak aşama aşama sıfırdan yazıp çalıştırmanızı tavsiye ederim, raporlarımda benim o şekilde yaptığımı görebilirsiniz. Her modülün ayrı ayrı çalıştığından emin olduktan sonra birleştirmek hataları çözmede kolaylık sağlıyor.

Ayrıca ben konum bilgisini kendim ayıklayıp anlamlandırmıştım, siz hazır kütüphanesini kullanıp kodu daha da sade hale getirebilirsiniz. Yanlış hatırlamıyorsam TinyGPS kütüphanesiyidi, o default kütüphanelerde yok ama indirip kullanabilirsiniz.

Maalesef bu tavsiyelerden başka elimden gelen bir şey yok. İyi çalışmalar dilerim.
 

kazimckaya

MB Üyesi
Kayıt
21 Mayıs 2018
Mesajlar
2
Tepkiler
0
Yaş
28
Üniv
selçuk üniversite
Projeye ait detaylı rapora buradan ulaşabilirsiniz. ilk mesaja eklendi.
Yorumlar ve öneriler için teşekkür ederim.
Proje Resmi

Eki Görüntüle 451

Projeye ait gerekli kodlar


PHP:
// Nisan 2015
/*
Proje Adı: GPS MODÜL İLE KONUM TESPİTİ
Proje Yürütücüsü: R.G.
Proje Danışman Hocası: -
Üniversite: -
Bölüm: Bilgisayar Mühendisliği
Proje Kapsamında Kullanılan Bileşenler :
-- 1.6.2 Sürümlü Arduino IDE
-- Arduino Uno R3 Geliştirme Platformu
-- GY-GPS6MV2 GPS Modülü
-- HC05 Bluetooth Modül
*/

// SoftwareSerial kütüphanesini ekliyoruz.
#include <SoftwareSerial.h>

// Sabitler ->

#define rx1Pin 3       // GPS bağlantısındaki rx pini. GPS.TX <-> ARDUİNO.RX
#define tx1Pin 4       // GPS bağlantısındaki tx pini. GPS.RX <-> ARDUİNO.TX
#define rx2Pin 6       // BLUETOOTH bağlantısındaki rx pini. BLUETOOTH.TX <->ARDUİNO.RX
#define tx2Pin 7       // BLUETOOTH bağlantısındaki tx pini. BLUETOOTH.RX <-> ARDUİNO.TX
#define sLed 11        // Sarı LED 11. pine bağlanacak.
#define kLed 12        // Kırmızı LED 12. pine bağlanacak.
#define yLed 13        // Yeşil LED 13. pine bağlanacak.

// GPS modül için kullanılacak seri haberleşme pinleri tanımlanıyor:
SoftwareSerial gps(rx1Pin, tx1Pin);

// BLUETOOTH modül için kullanılacak seri haberleşme pinleri tanımlanıyor:
SoftwareSerial bt(rx2Pin, tx2Pin);

// Değişkenler ->

byte byteGPS = 0;       // byte veri türü 0-255 arasındaki işaretsiz(pozitif) sayıları sakar.
int i = 0;              // int veri türü 2 byte'lık tam sayıları saklar.
int durum = 0;
int uydu = 0;
char dataGPS[100] = "";
char *parca;
char *GGA[15];

int key = 9;              // Bluetooth modülün key pini
void string();
void cikti(char **GGAPrint, char *veri);





void setup() {         // Kurulum kodları buraya yazılır, sadece bir kere çalıştırılır.

// Seri iletişim başlatılıyor..
Serial.begin(9600);    // Seri portla iletişimin 9600 baud hızında olacağı belirtiliyor.

// GPS seri port için kurulum.

pinMode(rx1Pin, INPUT);
pinMode(tx1Pin, OUTPUT);
gps.begin(9600);
// BLUETOOTH seri port için kurulum.

pinMode(rx2Pin, INPUT);
pinMode(tx2Pin, OUTPUT);
bt.begin(9600);
pinMode(key, OUTPUT);
digitalWrite(key, LOW);   //  BLUETOOTH modül için AT komutları kullanmadığım için KEY  pinini LOW //konumunda tutuyorum...


// Uydu sinyalleri kurulumu.

pinMode(kLed, OUTPUT);    // pinMode() fonksiyonu iki parametre alır.İlk parametre pini, ikinci parametre giriş mi //çıkış mı olacağını ifade eder.
pinMode(yLed, OUTPUT);
pinMode(sLed, OUTPUT);
digitalWrite(kLed, HIGH);  // kLed değişkeninin değerini HIGH yapar. Yani LED yanar.
digitalWrite(yLed, LOW);   // yLed değişkenin değerini LOW yapar. Yani LED sönük durumda.
digitalWrite(sLed, LOW);
// Bir uydu sinyali yokken kırmızı yansın, uydudan sinyal alınınca yeşil yansın.
}


void loop() {  // Ana kod buraya yazılır. Durmadan tekrarlayarak çalışır.
if(bt.available()){
bt.println("GPS Verileri Bekleniyor...");
}
Serial.println("GPS Verileri Bekleniyor...");
// GPS seri porttan gelen verileri okumak için yapılan hazırlıklar.
while(gps.available())
{
memset(dataGPS, 0, sizeof(dataGPS));     // Önceki okumaları kaldırır. dataGPS=0 olacak.
//memset(p1,p2,p3) : Bu fonksiyon üç tane parametre alır. p3 boyutunda p1 verisine p2 yi //atar.

byteGPS = 0;  // Verileri kaldırır.
byteGPS = gps.read();                    // GPS seri porttan gelen verileri okur.
delay(1000);                             // 1 saniyelik gecikme.

// İstenilen Stringi(Karakter Dizisi) bul.
while(byteGPS != '$')
{

    byteGPS = gps.read();
}
//Stringi bir diziye kaydet.
i = 1;
dataGPS[0] = '$';
while(byteGPS != '*')   // * işaretinin olduğu yer sağlama verilerinin başladığı yerdir //byte GPS * İşertine eşit olmadığı sürece dataGPS dizisine veriler kaydedililir.
{

    byteGPS = gps.read();
    dataGPS[i] = byteGPS;
    i++;
}
dataGPS[i] = '/0';
string();                // string() olarak tanımladığımız fonksiyonu çağırıyoruz.
}  // GELEN VERİLERİN SONU
}  // LOOP SONU
/*
Bu Fonksiyon( İşlev )  enlem ve boylam almak için ihtiyacımız olan verileri tanımlamamıza olanak sağlar ...
*/
void string()
{
i=0;
memset(GGA, 0 ,sizeof(GGA));  // Önceki okumaları kaldırır.
parca = strtok(dataGPS, ",");  // strtok(): (String Tokenizer): Karakter dizisini parçalamak için kullanılır.
if (strcmp(parca, "$GPGGA") == 0)
//strcmp(p1,p2): p1 ve p2'yi karşılaştırır. Eşitse 0, p1 büyükse 0'dan büyük küçükse 0'dan küçük bir değer gönderir.
{
   while (parca != NULL)
   {
     parca = strtok (NULL, ",");
     GGA[i] = parca;
     i++;
   }

   cikti(GGA, "$GPGGA");      // Verileri görüntülemek için bu fonksiyonu çağırırız.

}

}
/*
Bu fonksiyon GPS'den alınan verilerin seri monitörde yazılmasını düzenler.
*/
void cikti(char **GGAPrint, char *veri)
{
   durum = atoi(GGAPrint[5]); // atoi içindeki strig olan parametresini int türüne çevirir.
   uydu = atoi(GGAPrint[6]);

   if(veri == "$GPGGA" && durum == 1)
   {

    digitalWrite(yLed, HIGH);        // Uydu sinyali alındı, yeşil LED yansın.
    digitalWrite(kLed, LOW);         // Kırmızı LED sönsün.


    Serial.println("");
    Serial.println("---------------------------------------");    // Verileri satır satır //gönderir. Yani imleci bir alt satıra geçirir.
    Serial.print("UTC Saat -> ");    // Veriyi aynı satıra yazar.
    Serial.println(GGAPrint[0]);
    Serial.print("Enlem -> ");
    Serial.print(GGAPrint[1]);
    Serial.println(GGAPrint[2]);
    Serial.print("Boylam -> ");
    Serial.print(GGAPrint[3]);
    Serial.println(GGAPrint[4]);
    Serial.print("GPS Kalitesi : 0=null; 1= GPS sabit -> ");
    Serial.println(durum);
    Serial.print("Uydu Sayısı -> ");
    Serial.println(uydu);
    Serial.print("Yatay Hassasiyet Kaybı -> ");
    Serial.println(GGAPrint[7]);
    Serial.print("Anten Yüksekliği -> ");
    Serial.print(GGAPrint[8]);
    Serial.println(GGAPrint[9]);
    Serial.print("Geoid Ayırma -> ");
    Serial.print(GGAPrint[10]);
    Serial.println(GGAPrint[11]);
    Serial.println("---------------------------------------");
    Serial.println("");
    if(bt.available())
   {
       digitalWrite(sLed, HIGH);         // Sarı LED yansın.
       bt.println("ENLEM VE BOYLAM DEGERLERI");
       bt.print("ENLEM:");
       bt.print(GGAPrint[1]);
       bt.println(GGAPrint[2]);
       bt.print("BOYLAM:");
       bt.print(GGAPrint[3]);
       bt.println(GGAPrint[4]);
 
      }
  }
else          // Eğer uydu bağlantısı yoksa
{
   digitalWrite(kLed, HIGH);    // Kırmızı LED yansın.
   digitalWrite(yLed, LOW);     // Yeşil LED sönsün.
   Serial.println("");
   Serial.println("------------------------------");
   Serial.println("|---------BEKLEME KONUMU-----|");
   Serial.println("------------------------------");
   Serial.println("");

   if(bt.available())
   {
     digitalWrite(sLed, HIGH);         // Sarı LED yansın.
     bt.print("BEKLEME DURUMU");
     bt.print("KONUM BILGILERI ALINAMIYOR...");

   }


}
}

/*
GGA - essential fix data which provide 3D location and accuracy data.

$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47

Where:
     GGA          Global Positioning System Fix Data
     123519       Fix taken at 12:35:19 UTC
     4807.038,N   Latitude 48 deg 07.038' N
     01131.000,E  Longitude 11 deg 31.000' E
     1            Fix quality: 0 = invalid
                               1 = GPS fix (SPS)
                               2 = DGPS fix
                               3 = PPS fix
                   4 = Real Time Kinematic
                   5 = Float RTK
                               6 = estimated (dead reckoning) (2.3 feature)
                   7 = Manual input mode
                   8 = Simulation mode
     08           Number of satellites being tracked
     0.9          Horizontal dilution of position
     545.4,M      Altitude, Meters, above mean sea level
     46.9,M       Height of geoid (mean sea level) above WGS84
                      ellipsoid
     (empty field) time in seconds since last DGPS update
     (empty field) DGPS station ID number
     *47          the checksum data, always begins with *

*/
Projede GPS Modülü ile alınan verilerin ayıklanarak, enlem ve boylam bilgilerine ulaşılması ve bunların BLUETOOTH Modül ile android işletim sistemine sahip bir telefona gönderilmesi sağlanmıştır.

BLUETOOTH Modülün etki alanı kısa mesafelerle sınırlı. Bu yüzden projenin ikinci aşamasında GSM Modülü kullanarak verilerin telefona sms olarak gönderilmesiyle ilgili çalışıyorum.

[PDF]https://www.muhendisbeyinler.net/forum/dosyalar/gps-modulu-ve-arduino-uno-ile-konum-tespiti-pdf.1011/[/PDF]
Proje Resmi

Eki Görüntüle 451

Projeye ait gerekli kodlar


PHP:
// Nisan 2015
/*
Proje Adı: GPS MODÜL İLE KONUM TESPİTİ
Proje Yürütücüsü: R.G.
Proje Danışman Hocası: -
Üniversite: -
Bölüm: Bilgisayar Mühendisliği
Proje Kapsamında Kullanılan Bileşenler :
-- 1.6.2 Sürümlü Arduino IDE
-- Arduino Uno R3 Geliştirme Platformu
-- GY-GPS6MV2 GPS Modülü
-- HC05 Bluetooth Modül
*/

// SoftwareSerial kütüphanesini ekliyoruz.
#include <SoftwareSerial.h>

// Sabitler ->

#define rx1Pin 3       // GPS bağlantısındaki rx pini. GPS.TX <-> ARDUİNO.RX
#define tx1Pin 4       // GPS bağlantısındaki tx pini. GPS.RX <-> ARDUİNO.TX
#define rx2Pin 6       // BLUETOOTH bağlantısındaki rx pini. BLUETOOTH.TX <->ARDUİNO.RX
#define tx2Pin 7       // BLUETOOTH bağlantısındaki tx pini. BLUETOOTH.RX <-> ARDUİNO.TX
#define sLed 11        // Sarı LED 11. pine bağlanacak.
#define kLed 12        // Kırmızı LED 12. pine bağlanacak.
#define yLed 13        // Yeşil LED 13. pine bağlanacak.

// GPS modül için kullanılacak seri haberleşme pinleri tanımlanıyor:
SoftwareSerial gps(rx1Pin, tx1Pin);

// BLUETOOTH modül için kullanılacak seri haberleşme pinleri tanımlanıyor:
SoftwareSerial bt(rx2Pin, tx2Pin);

// Değişkenler ->

byte byteGPS = 0;       // byte veri türü 0-255 arasındaki işaretsiz(pozitif) sayıları sakar.
int i = 0;              // int veri türü 2 byte'lık tam sayıları saklar.
int durum = 0;
int uydu = 0;
char dataGPS[100] = "";
char *parca;
char *GGA[15];

int key = 9;              // Bluetooth modülün key pini
void string();
void cikti(char **GGAPrint, char *veri);





void setup() {         // Kurulum kodları buraya yazılır, sadece bir kere çalıştırılır.

// Seri iletişim başlatılıyor..
Serial.begin(9600);    // Seri portla iletişimin 9600 baud hızında olacağı belirtiliyor.

// GPS seri port için kurulum.

pinMode(rx1Pin, INPUT);
pinMode(tx1Pin, OUTPUT);
gps.begin(9600);
// BLUETOOTH seri port için kurulum.

pinMode(rx2Pin, INPUT);
pinMode(tx2Pin, OUTPUT);
bt.begin(9600);
pinMode(key, OUTPUT);
digitalWrite(key, LOW);   //  BLUETOOTH modül için AT komutları kullanmadığım için KEY  pinini LOW //konumunda tutuyorum...


// Uydu sinyalleri kurulumu.

pinMode(kLed, OUTPUT);    // pinMode() fonksiyonu iki parametre alır.İlk parametre pini, ikinci parametre giriş mi //çıkış mı olacağını ifade eder.
pinMode(yLed, OUTPUT);
pinMode(sLed, OUTPUT);
digitalWrite(kLed, HIGH);  // kLed değişkeninin değerini HIGH yapar. Yani LED yanar.
digitalWrite(yLed, LOW);   // yLed değişkenin değerini LOW yapar. Yani LED sönük durumda.
digitalWrite(sLed, LOW);
// Bir uydu sinyali yokken kırmızı yansın, uydudan sinyal alınınca yeşil yansın.
}


void loop() {  // Ana kod buraya yazılır. Durmadan tekrarlayarak çalışır.
if(bt.available()){
bt.println("GPS Verileri Bekleniyor...");
}
Serial.println("GPS Verileri Bekleniyor...");
// GPS seri porttan gelen verileri okumak için yapılan hazırlıklar.
while(gps.available())
{
memset(dataGPS, 0, sizeof(dataGPS));     // Önceki okumaları kaldırır. dataGPS=0 olacak.
//memset(p1,p2,p3) : Bu fonksiyon üç tane parametre alır. p3 boyutunda p1 verisine p2 yi //atar.

byteGPS = 0;  // Verileri kaldırır.
byteGPS = gps.read();                    // GPS seri porttan gelen verileri okur.
delay(1000);                             // 1 saniyelik gecikme.

// İstenilen Stringi(Karakter Dizisi) bul.
while(byteGPS != '$')
{

    byteGPS = gps.read();
}
//Stringi bir diziye kaydet.
i = 1;
dataGPS[0] = '$';
while(byteGPS != '*')   // * işaretinin olduğu yer sağlama verilerinin başladığı yerdir //byte GPS * İşertine eşit olmadığı sürece dataGPS dizisine veriler kaydedililir.
{

    byteGPS = gps.read();
    dataGPS[i] = byteGPS;
    i++;
}
dataGPS[i] = '/0';
string();                // string() olarak tanımladığımız fonksiyonu çağırıyoruz.
}  // GELEN VERİLERİN SONU
}  // LOOP SONU
/*
Bu Fonksiyon( İşlev )  enlem ve boylam almak için ihtiyacımız olan verileri tanımlamamıza olanak sağlar ...
*/
void string()
{
i=0;
memset(GGA, 0 ,sizeof(GGA));  // Önceki okumaları kaldırır.
parca = strtok(dataGPS, ",");  // strtok(): (String Tokenizer): Karakter dizisini parçalamak için kullanılır.
if (strcmp(parca, "$GPGGA") == 0)
//strcmp(p1,p2): p1 ve p2'yi karşılaştırır. Eşitse 0, p1 büyükse 0'dan büyük küçükse 0'dan küçük bir değer gönderir.
{
   while (parca != NULL)
   {
     parca = strtok (NULL, ",");
     GGA[i] = parca;
     i++;
   }

   cikti(GGA, "$GPGGA");      // Verileri görüntülemek için bu fonksiyonu çağırırız.

}

}
/*
Bu fonksiyon GPS'den alınan verilerin seri monitörde yazılmasını düzenler.
*/
void cikti(char **GGAPrint, char *veri)
{
   durum = atoi(GGAPrint[5]); // atoi içindeki strig olan parametresini int türüne çevirir.
   uydu = atoi(GGAPrint[6]);

   if(veri == "$GPGGA" && durum == 1)
   {

    digitalWrite(yLed, HIGH);        // Uydu sinyali alındı, yeşil LED yansın.
    digitalWrite(kLed, LOW);         // Kırmızı LED sönsün.


    Serial.println("");
    Serial.println("---------------------------------------");    // Verileri satır satır //gönderir. Yani imleci bir alt satıra geçirir.
    Serial.print("UTC Saat -> ");    // Veriyi aynı satıra yazar.
    Serial.println(GGAPrint[0]);
    Serial.print("Enlem -> ");
    Serial.print(GGAPrint[1]);
    Serial.println(GGAPrint[2]);
    Serial.print("Boylam -> ");
    Serial.print(GGAPrint[3]);
    Serial.println(GGAPrint[4]);
    Serial.print("GPS Kalitesi : 0=null; 1= GPS sabit -> ");
    Serial.println(durum);
    Serial.print("Uydu Sayısı -> ");
    Serial.println(uydu);
    Serial.print("Yatay Hassasiyet Kaybı -> ");
    Serial.println(GGAPrint[7]);
    Serial.print("Anten Yüksekliği -> ");
    Serial.print(GGAPrint[8]);
    Serial.println(GGAPrint[9]);
    Serial.print("Geoid Ayırma -> ");
    Serial.print(GGAPrint[10]);
    Serial.println(GGAPrint[11]);
    Serial.println("---------------------------------------");
    Serial.println("");
    if(bt.available())
   {
       digitalWrite(sLed, HIGH);         // Sarı LED yansın.
       bt.println("ENLEM VE BOYLAM DEGERLERI");
       bt.print("ENLEM:");
       bt.print(GGAPrint[1]);
       bt.println(GGAPrint[2]);
       bt.print("BOYLAM:");
       bt.print(GGAPrint[3]);
       bt.println(GGAPrint[4]);
 
      }
  }
else          // Eğer uydu bağlantısı yoksa
{
   digitalWrite(kLed, HIGH);    // Kırmızı LED yansın.
   digitalWrite(yLed, LOW);     // Yeşil LED sönsün.
   Serial.println("");
   Serial.println("------------------------------");
   Serial.println("|---------BEKLEME KONUMU-----|");
   Serial.println("------------------------------");
   Serial.println("");

   if(bt.available())
   {
     digitalWrite(sLed, HIGH);         // Sarı LED yansın.
     bt.print("BEKLEME DURUMU");
     bt.print("KONUM BILGILERI ALINAMIYOR...");

   }


}
}

/*
GGA - essential fix data which provide 3D location and accuracy data.

$GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47

Where:
     GGA          Global Positioning System Fix Data
     123519       Fix taken at 12:35:19 UTC
     4807.038,N   Latitude 48 deg 07.038' N
     01131.000,E  Longitude 11 deg 31.000' E
     1            Fix quality: 0 = invalid
                               1 = GPS fix (SPS)
                               2 = DGPS fix
                               3 = PPS fix
                   4 = Real Time Kinematic
                   5 = Float RTK
                               6 = estimated (dead reckoning) (2.3 feature)
                   7 = Manual input mode
                   8 = Simulation mode
     08           Number of satellites being tracked
     0.9          Horizontal dilution of position
     545.4,M      Altitude, Meters, above mean sea level
     46.9,M       Height of geoid (mean sea level) above WGS84
                      ellipsoid
     (empty field) time in seconds since last DGPS update
     (empty field) DGPS station ID number
     *47          the checksum data, always begins with *

*/
Projede GPS Modülü ile alınan verilerin ayıklanarak, enlem ve boylam bilgilerine ulaşılması ve bunların BLUETOOTH Modül ile android işletim sistemine sahip bir telefona gönderilmesi sağlanmıştır.

BLUETOOTH Modülün etki alanı kısa mesafelerle sınırlı. Bu yüzden projenin ikinci aşamasında GSM Modülü kullanarak verilerin telefona sms olarak gönderilmesiyle ilgili çalışıyorum.

[PDF]https://www.muhendisbeyinler.net/forum/dosyalar/gps-modulu-ve-arduino-uno-ile-konum-tespiti-pdf.1011/[/PDF]
bitirme projem gps takip projesi rica etsem bana bi ulaşabilir misiniz
kkazimckaya@gmail.com
 
Konu sahibi
Konu sahibi
R

Rukiye Gümüş

MB Üyesi
Kayıt
11 Ekim 2015
Mesajlar
17
Tepkiler
7
Yaş
32
Üniv
BİLECİK ŞEYH EDEBALİ ÜNİ.
@kazimckaya,
Detaylarını 3 sene önce paylaştım aslında kardeşim : ) Kaynak kodları, adımlar, materyaller, kullandığım kaynaklar tüm detaylarıyla raporlarımın ikisinde de mevcut.

Daha spesifik bir sorun varsa, aldığın bir hata veya işleyişte bir sıkıntı onlar konusunda yardımcı olmak isterim, istediğini sorabilirsin.
 

Eray Çınar

MB Üyesi
Kayıt
2 Mart 2019
Mesajlar
2
Tepkiler
0
Yaş
28
Meslek
öğrenci
Üniv
Zonguldak Bülent Ecevit Üni.
@Rukiye Gümüş Siz gsm modül için QUECTEL M95 modülünü kullanmışsınız. Benim yapacağım projede sadece kullanılan gsm modülünün sadece sms özelliğini kullanmak istiyorum . Sim800L modülü ile kullanmamda sıkıntı yaratırmı. Düşüncelerinizi merak ediyorum.
 
Konu sahibi
Konu sahibi
R

Rukiye Gümüş

MB Üyesi
Kayıt
11 Ekim 2015
Mesajlar
17
Tepkiler
7
Yaş
32
Üniv
BİLECİK ŞEYH EDEBALİ ÜNİ.
@Eray Çınar , merhaba Sim800L-Gsm/Gprs modülünü daha önce kullanmadım ama ufak bir araştırma yaptığımda, aşağıdaki ekran görüntüsünden de anlayabileceğimiz gibi sms gönderim işlemi için kullanılmasında herhangi bir sıkıntı olacağını düşünmüyorum.

Gözden kaçırılmaması gereken en önemli nokta 4.2 V nin üzerinde voltaj vermemek. Kendi çalıştığım modülden yola çıkarak şunları söyleyebilirim; optimum voltaj değerinde sorunsuz çalışırken bu değerin üstünde verilirse kart yanıyor, altında besleme verilirse de çalışıyor gibi görülmesine rağmen işlevlerini gerçekleştiremiyor. Yani ışığı yanıyor siz çalıştığını zannediyorsunuz ama sms alıp/gönderme işlemini yapamıyor.

Projenizde kolaylıklar dilerim.

1829
 

Eray Çınar

MB Üyesi
Kayıt
2 Mart 2019
Mesajlar
2
Tepkiler
0
Yaş
28
Meslek
öğrenci
Üniv
Zonguldak Bülent Ecevit Üni.
@Rukiye Gümüş Fikirleriniz için çok teşekkür ederim. Ek olarak söylemek istediklerim proje taslağını yaratırken arduino 3.3 v çıkışından beslemek niyetindeyim. Eğer sizin dediğiniz gibi çalışıyor gibi gözükürse mecbur gelirim bölücü devresi yapmak zorundayım. Sim800L ve Gy-ne06m gps modüllerini ilk defa kullanacağım. Tekrardan teşekkür ederim.
 

mk0348

MB Üyesi
Kayıt
5 Mayıs 2019
Mesajlar
1
Tepkiler
0
Yaş
43
Meslek
Öğretmen
Üniv
Gazi
GY-NEO6m kullanarak konumu android telefonda harita üzerinde nasıl görebiliriz acaba?
 

Emre Karadağ

MB Üyesi
Kayıt
13 Mayıs 2019
Mesajlar
1
Tepkiler
0
Yaş
28
Meslek
Mekatronik Mühendisi
Üniv
Gaziosmanpaşa
detaylı ve sade bir kod paylaşmışsınız teşekkürler. Bir Sorunum var. Mega kullanıyorum gps den veri alamıyorum TinyGPS kütüphanesini kullanarak temiz veri alıyorum ama kod çok karmaşık rf ile bunu göndereceğim için sade bir kod gerekiyor sizin ki gibi. GPS den veri okuyo while döngüsüne giriyor lakin geri kalan işlemleri yapmıyor neden olabilir? Kullandığım modül=
Linki görmek için izniniz yoktur Giriş yap veya kayıt ol.
tek gps denemesi yapıyorum şuan
 

ykancan

MB Üyesi
Kayıt
12 Şubat 2020
Mesajlar
1
Tepkiler
0
Yaş
42
Meslek
memur
Üniv
yüksek okul
Sim800L ve Neo6mv2 modüllerini kullanarak, konum bilgisini SMS yoluyla almak için Arduino kodlarını paylaşmak istiyorum. Devreyi denedim ve konumu link halinde SMS olarak aldım. Kodlama geliştirilebilir (Mesela SMS gönderilecek numarayı sabit tuttum, istenirse herhangi bir telefondan gelen mesaja konum SMS olarak yine aynı hat üzerinden gönderilebilir.)
Yalnız Sim800L çok hassas bir modül, yüksek akım veya voltajda hemen bozuluyor (Ben devreyi, motosikletimin gizli bir yerine bağlayıp hırsızlığı karşı önlem almayı düşünüyordum ancak, uygulama aşamasında yüksek voltajdan dolayı müdülü yaktım (5v Regülator kullanmıştım ancak çıkışında 7.5 volt varmış, arızalıymış, denemeden bağladığım için GSM modülü bozuldu), bu sebeple sağlam bir DC Converter kullanmak gerekir.). Aynı voltajı Gps cihazına da vermişim ancak ona bir şey olmadı, sanırım o modülde voltaj koruması da var, yine de dikkatli olmak lazım. Kodlama aşamasında Arduinonun 5V ve Gnd pinleri iki modülü de beslemeye yetiyor ve veri alıp gönderebiliyor (denedim). Ancak uygulamada Arduino iki modüle de yetmez, besleme yapmak lazım, arduino zarar görebilir.

Uygulama şu şekilde çalışıyor >>> Sim800L modülünün içerisinde takılı bulunan Simkart numarasına "Nerdesin" yazılı bir mesaj geldiği zaman, Neo6mv2 Gps modülü o an aldığı GPS konumunu bir değişkende tutuyor, GSm modülü bu bilgileri, google haritaların linki halinde SMS yolu ile belirtilen numaraya geri gönderiyor. Zaten konum link halinde geldiği için üstüne tıklandığında direk Google haritalar uygulamasından konumu takip edebiliyorsunuz.

Bağlantı için, Arduinonun 9 ve 10 nolu pinlerine sırasıyla GPS (Neo6 mv2) modülünün Tx ve Rx pinleri, Arduinonun 2 ve 3 nolu pinlerine ise GSM (Sim800L) modülünün Tx ve Rx pinleri bağlanıyor. Diğer bağlantıları aşağıda sundum.
*** Gps cihazının konum bilgisi alabilmesi için, eğer evde bulunuyorsanız cama yakın bir yerde bulunmanız halinde çok yakın bir konum bilgisi veriyor, ben en alt katta evin içinden, cama yakın bir yerden denedim ve yaklaşık 15 metre kadar bir opsiyonla konumumu doğru gösterdi, zaten modülün + - (5) metre opsiyonu var.
Sim800L gsm cihazı içerisindeki hattın çektiği her yerden çekiyor. İlk bağlantı kurulduğunda (güç verildiğinde), birinci kırmızı ışık sürekli yanarken yanındaki diğer kırmızı ışık hızlı hızlı yanıp sönüyor, hat bağlantısı kurulduğunda ise ikinci kırmızı ışık (3) saniye arayla yanıp sönmeye başlıyor ve Gsm operatörü ile iletişim kurulduğu anlaşılıyor. İkinci ışık sürekli hızlı hızlı yanmaya devam ediyorsa, operatör ile bağlantı kuramamış demektir, hattın çektiği bir yere geçmeniz gerekir.
Ancak GPS cihazı evin iç kısımlarından çekmiyor (Bu cihazın konum bilgisini alması biraz uzun sürüyor, sabırla bekleyin, bazen 5 dakika beklediğim oldu, konum bilgisini almaya başlayınca mavi ışık sürekli yanıp sönüyor. Eğer uzun süre mavi ışık yanmazsa yer değiştirin ve açık alana yakın bir yere geçin, konum bilgisini almaya başlayınca mavi ışık yanmaya başlayacaktır.)

Bağlantı şeması şu şekilde;
--------------------------------------------------
------Arduino----------Neo6mv2 (GPS Modülü)
Pin>>>(9)-----------------(Tx)
Pin>>>(10)----------------(Rx)
Pin>>>(5V)---------------(Vcc)
Pin>>>(Gnd)-------------(Gnd)
--------------------------------------------------
------Arduino-----------Sim800L (GSM Modülü)
Pin>>>(2)------------------(Tx)
Pin>>>(3)------------------(Rx)
Pin>>>(5V)-------------(5Vin)(Power)
Pin>>>(Gnd)------------(Gnd)(Power)
Pin>>>(Gnd)------------(Gnd)(Uart TTL)

Ekli Dosyalar:
GpsGSMuygulama.rar >>
Arduino çalışması
TinyGPSPlus-master.zip >>> Neo6mv2 için Tinygps++ kütüphanesi

Acemi olduğum ve elektronik konusunda akademik bilgim olmadığı için bu kodları yabancı kaynaklardan araştırarak ve arduino programının içerisindeki kütüphanelerden araştırıp kendimce derleyerek hazırladım. Hatalar varsa özür diliyorum. Saygılar...
 

Dosyalar

Son düzenleme:

markup

MB Üyesi
Kayıt
21 Şubat 2016
Mesajlar
225
Tepkiler
44
Yaş
33
Meslek
Endüstri mühendisi
Üniv
Gazi Üniversitesi
25x25mm ölçülerinde seramik anten ürüne montajlı olarak gönderilmektedir. Kullanımı oldukça kolay olan modül üzerinde besleme girişi, toprak bağlantısı ve Rx/Tx pinleri bulunmaktadır.


Bu yazımda sizlere bir kaç basit adımla GPS modülü Arduino Uno ile nasıl kullanacağınızı anlatacağım.

Öncelikle Arduino Uno ile Modül arasındaki bağlantıları aşağıda belirttiğim gibi yapınız.

Aduino Pin >> GPS Modül
Pin 3 >> Pin Rx
Pin 4 >> Pin Tx
GND >> GND
5V >> 5V
 
Yukarı Alt