Android Cihazlar İçin Gps Tabanlı Konum Takip Sistemi Tasarımı Mustafa SOYSAL 1 Fatih KAYAALP 2 1 Düzce Üniversitesi, Müh. Fak., Bilg. Müh. Böl., 81620, Düzce, TÜRKİYE 2 Düzce Üniversitesi, Müh. Fak., Bilg. Müh. Böl., 81620, Düzce, TÜRKİYE mustafa@eryaz.net Özet- GPS (Global Positioning System; Küresel Yer Belirleme Sistemi ya da Küresel Konumlandırma Sistemi), düzenli olarak kodlanmış bilgi yollayan bir uydu ağıdır ve uydularla arasındaki mesafeyi ölçerek Dünya üzerindeki kesin yeri tespit etmeyi mümkün kılar. Günümüzde, telefonlara GPS özelliği eklendikten sonra tabanlı uygulamalar oldukça popüler hale gelmeye başladı. Foursquare vb uygulamalar çok önemli başarılar yakalamıştır. Uydular üzerinden cihazımız bulunduğu konumu alıyor. Bunun için cihazımızın içinde GPS entegresi mevcut olmalı. Bu entegre öncelike kendine yakın olan uyduyu buluyor sonra o uydudan kendi bulunduğu koordinatı talep ediyor. Günümüzde kullanımda olan 24 tane ABD nin GPS için hizmete soktuğu uydu bulunmaktadır [1]. Bu çalışmada Android cihazlarımızdaki GPS algılayıcısını kullanarak konum bilgilerini elde ettik. Bu konum bilgilerini uzak veritabına kayıt ettik ve daha sonra bu konum bilgileri kullanarak websitesi üzerinden konumların takibini sağladık. Ayrıca andoid cihazlarımızda da aynı bilgilerimizi kullanacağımız bir uygulama hazırladık. Anahtar Kelimeler- Eleman takip, Kim Nerede, Android, PHP
A GPS Based Location Detection System For Android Devices Abstract-GPS (Global Positioning System, or Global Positioning System), regularly a satellite network that sends information encoded by measuring the distance between the satellites and make it possible to identify the exact location on Earth. Today, GPS-based applications to be added after the phone started to become very popular. Foursquare application has achieved very significant achievements, etc. It is taking the position where the device via satellite. It should be available in our integrated GPS device. This integrated, first, then finds himself close to the satellite coordinates of where it is demanding its own satellite. Today, there are 24 units currently in use for satellites launched by the USA's GPS. In this study, we obtained the location information using GPS sensor on our Android device. We have registered in this location information to remote databases, and then we keep track of location via the website using the location information. We also prepare our application we use the same information in our andoid device. Key Words- Personnel Tracking, Who is Where, Android, PHP
1. GİRİŞ (INTRODUCTION) Kim-Nerede GPS konum bilgileri kullanılarak kişilerin konumlarının haritalar üzerinde görüntülendiği ve android platformu üzerinde yazılan personel-kişi projesidir.bu proje de sisteme kayıt olan kullanıcıların sisteme giriş yapmasının ardından arka planda konum bilgileri belirli aralıklarda veritabanına kayıt edilmektedir. Normal kullanıcılar için bir sosyal medya olan projede şirket bazlı olarak kullanıcılar gruplanmaktadır. Şirket yöneticileri konum bilgileri kayıt edilen kullanıcıların konumlarını websitesi aracılığı ile düzenli olarak takip onlar ile mesajlaabilmektedir. Konum bilgilerini elde etmek için GPS ve Network providerleri kullanılmıştır. Kullanıcıların konumları Google Map yardımı ile haritalar üzerinde gösterilmiştir. Uygulamanın sosyal medya boyutu kazanması için arkadaşlık ve arkadaşlar arası mesajlaşma modülü yazılmıştır. Sisteme üye olan kullanıcılar arkadaş arama, arkadaş ekleme, arkadaş konumlarını görme, arkadaşları ile mesajlaşma gibi işlemler yapabilmektedir. Yakınındaki arkadaşlarının konumlarını haritalar üzerinde görüntüleyebilmektedirler. Eğer bir kullanıcı herhangi bir şirket grubuna dahil olursa o şirkete dahil olan herkes ile otomatik olarak arkadaş olmaktadır. Şirket yöneticileri web sitesi üzerinden çalışanlarının konumlarının diger kullanıcılara görünmesini engelleyebilmektedir. Ayrıca çalışanlarına mesaj gönderip onların gönderdigi mesajları okuyabilmektedir. Bu şirkette çalışan bütün kullanıcıların konumlarını websitesi üzerinden takip edebilmektedir. Bu sayede aynı şirket çalışanları kendi iş arkadaşlarını uygulama üzerinde ekledikten sonra onların konumlarını görme yetkisine sahip olabilecektir. Onlar ile mesajlaşabilecektir.
2. YÖNTEM (METHOD) Bu kısımda yapılmış olan uygulamanın donanım ve yazılım altyapısı ile ilgili bilgiler verilmiştir. 2.1. GELİŞTİRME ORTAMI (Development Environment) 2.1.1. ANDROID STUDİO Android Studio, Android uygulamalarının geliştirildiği, üst seviye özelliklere sahip ve Google tarafından da önerilen resmi programlama aracıdır. Android Studio'nun kod geliştiricilere sunduğu temel özellikler şunlardır: [3] Gradle tabanlı, esnek proje inşa sistemi. Farklı özellik ve sürümlere göre çoklu APK çıktısı. Temel proje şablonlarıyla hızlı ve kolay proje üretimi. Ekran tasarımlarını kolaylaştıran sürükle-bırak özellikli zengin editör. Uygulamanın performansı, kullanılabilirliği, farklı sürümlerde çalışabilirliğinin kontrol edilebileceği test araçları. Kolay ve güvenli APK imzalanması. Ek uğraşa gerek kalmadan Google hizmetlerini uygulamaya ekleyebilme. 2.1.2. PHPMyAdmin PhpMyAdmin, PHP ile yazılmış açık kaynak kodlu bir araçtır. Başlıca kullanım amacı İnternet üzerinden MySQL veritabanı yönetimidir. Veritabanı oluşturma ve silme, tablo ekleme/değiştirme/silme, alan ekleme/değiştirme/silme, SQL sorguları çalıştırma, kullanıcıları, yetkileri ve alan anahtarlarını yönetme gibi işlevleri yapabilen ücretsiz bir yazılımdır [4]. PhpMyAdmin yapılabilecek işlemler: Veritabanı açılabilir Kullanıcı tanımlanabilir
Tablolar oluşturulabilir Tablolara veri ekleme, silme, düzenleme, optimize etme, Veritabanlarının yedeği alma ve yedeği açabilme Txt dosyasından SQL kodlarını okuyup çalıştırma Tablolarda yeni alan açma, istediğimiz alanı silme Veritabanının optimize edilmesi Veritabanını SQL sorguları gönderme 2.2. PROGRAMLAMA DİLLERİ (Programming Language) 2.2.1 MySQL MySQL, altı milyondan fazla sistemde yüklü bulunan çoklu iş parçacıklı (multithreaded), çok kullanıcılı (multi-user), hızlı ve sağlam (robust) bir veritabanı yönetim sistemidir [5]. UNIX, OS/2 ve Windows platformları için ücretsiz dağıtılmakla birlikte ticari lisans kullanmak isteyenler için de ücretli bir lisans seçeneği de mevcuttur. Linux altında daha hızlı bir performans sergilemektedir. Kaynak kodu açık olan MySQL'in pek çok platform için çalıştırılabilir ikilik kod halindeki indirilebilir sürümleri de mevcuttur. Ayrıca ODBC sürücüleri de bulunduğu için birçok geliştirme platformunda rahatlıkla kullanılabilir [5]. Geliştiricileri, 500'den fazlası 7 milyon kayıt içeren 10.000 tablodan oluşan kendi veritabanlarını (100 gigabyte civarında veri) MySQL'de tuttuklarını söylüyorlar. Web sunucularında en çok kullanılan veritabanıdır, asp, php gibi birçok web programlama dili ile kullanılabilir. MySQL, tuttuğu tablolarla çok kullanıcılı sistemlerde söz konusu olan erişim hakları sorununu başarılı bir şekilde çözmektedir. MySQL'in 4.0 sürümü ile birlikte "transaction" desteği, 4.1 sürümüyle birlikte de alt sorgu desteği eklenmiştir. Ayrıca "veri tutarlılığını (referential integrity)" sağlama işinin programcıya bırakılması tercih edilmiştir, ancak bu bir dezavantaj olarak görülmeyebilir. Çünkü pek çok veritabanı
programcısı VTYS'lerdeki veri tutarlılığının esnek olmayan, zorlayıcı bir özellik olduğunu düşünmektedir. MySQL için çok çeşitli grafiksel arayüze sahip programlar mevcuttur. Bunlar içerisinden en bilineni yine MySQL'i geliştiren firma tarafından geliştirilmiş ücretsiz bir yazılım olan MySQL GUI Tools'dur. MySQL yönetimi için bir Türk firmasi tarafından geliştirilen Database Master yazılımı modern bir grafiksel arayüze sahip olup, kolay bir kullanım sağlamaktadır. Bunun yaninda PHP ile geliştirilmiş phpmyadmin diğer alternatif bir yazılımdır. 2.2.2 PHP PHP : Hypertext Preprocessor (Türkçe: Üstünyazı Önişlemcisi ) (Aslen: Personal Home Page - Kişisel Ana Sayfa), internet için yaratılmış, sunucu taraflı, çok geniş kullanımlı, genel amaçlı, HTML içerisine gömülebilen betik ve programlama dilidir. İlk kez 1995 yılında Rasmus Lerdorf tarafından yaratılan PHP'nin geliştirilmesi bugün PHP topluluğu tarafından sürüdürülmektedir. Ocak 2013 itibariyle 244 milyondan fazla web sitesi PHP ile çalışırken, 2.1 milyon web sunucusunda PHP kurulumu bulunmaktadır [6]. PHP kodları PHP işleme modülü bulunan bir web sunucusu tarafından yorumlanır ve çıktı olarak web sayfası üretilir. Bu kodlar veriyi işlemek üzere harici bir dosyaya kaydedilerek çağırılabildiği gibi doğrudan HTML kodunun içine de gömülebilir. PHP özgür bir yazılım olup PHP Lisansı ile dağıtılmaktadır. Bu lisans kullanım şartları kısmında GNU Genel Kamu Lisansı ile örtüşmese de, PHP tüm web sunuculara ve hemen hemen tüm işletim sistemi ve platforma ücretsiz olarak yüklenebilir [6]. 2.2.3 ANDROID
Android, Google, Open Handset Alliance ve özgür yazılım topluluğu tarafından geliştirilmiş olan, Linux tabanlı, mobil cihaz ve cep telefonları için geliştirilmekte olan, açık kaynak kodlu bir mobil ücretsiz bir işletim sistemidir. Sistem açık kaynak kodlu olsada, ufak ama çok önemli kısmın google tarafından kodları kapalıdır, google bu kısmın kendisi dışında ulaşılmasını istemiyor. Desteklenen uygulama uzantısı ".apk"dir. Google tarafından ücretsiz olmasının sebebi, sistemin daha hızlı ve çabuk gelişmesi, birçok popüler marka tarafından kullanılması ve bu sayede reklamlarını daha fazla kişiye ulaşmasını sağlamaktır. Google bir reklam firmasıdır, reklam alarak para kazanır, android sistemi üzerinde çalışan Google Play marketteki oyun ve uygulamalar üzerinde aldığı reklamları yayınlamaktadır, bu şekilde daha fazlasını kazanmaktadır [7]. Android, aygıtların fonksiyonelliğini genişleten uygulamalar yazan geniş bir geliştirici grubuna sahiptir. Android için halihazırda 1 milyondan fazla uygulama bulunmaktadır. Google Play Store ise, Android işletim sistemi uygulamalarının çeşitli sitelerden indirilebilmesinin yanı sıra, Google tarafından işletilen kurumsal uygulama mağazasıdır. Geliştiriciler, ilk olarak aygıtı, Google'ın Java kütüphanesi aracılığıyla kontrol ederek Java dilinde yazmışlardır. Open Handset Alliance, 5 Kasım 2007'de Android'i kurduğunu duyurmuştur ve ardından 34 adet donanım, yazılım ve telekom şirketi, mobil cihazlar için telif hakkı olmayan bir işletim sisteminin teknolojinin gelişimi için yararlı olduğu konusunda hem fikir olmuşlardır. Android, Linux çekirdeği üzerine inşa edilmiş bir mobil işletim sistemidir. Bu sistem ara katman yazılımı, kütüphaneler ve API C diliyle yazılmıştır. Uygulama yazılımları ise, Apache harmony üzerine kurulu Java-uyumlu kütüphaneleri içine alan uygulama iskeleti üzerinden çalışmaktadır. Android, derlenmiş Java kodunu çalıştırmak için dinamik çevirmeli (JIT) Dalvik sanal makinesini kullanır ve cihazların fonksiyonelliğini artıran uygulamaların geliştirilmesi için çalışan geniş bir programcı-geliştirici çevresine sahiptir. Tablo 2.2.3.1: Android Sürümleri
Sürüm Kod Adı Yayın Tarihi 1.1 Astro 9 Şubat 2009 1.2 Bender 16 Mart 2009 1.5 Cupcake 30 Nisan 2009 1.6 Donut 15 Eylül 2009 2.0 Eclair 26 Ekim 2009 2.1 Ocak 2010 2.2 Froyo 20 Mayıs 2010 2.3 Gingerbread 6 Aralık 2010 3.0 3.1 3.2 Honeycomb Şubat 2011 Temmuz 2011 Kasım 2011 4.0 Ice Cream Sandwich 19 Ekim 2011 4.1 4.2 4.3 Jelly Bean 9 Temmuz 2012 29 Ekim 2012 24 Temmuz 2013 4.4 KitKat 31 Ekim 2013 5.0 5.0.1 5.0.2 5.1.0 Lollipop 12 Kasım 2014 2 Aralık 2014 19 Aralık 2014 10 Mart 2015 3. PROJENİN TANIMI VE İÇERİĞİ (PROJECT DESCRIPTION AND CONTENT)
Projenin Android uygulama kısmı tamamlanmıştır. Bu kısımda uygulamanın sayfalarından ve projenin çalışmasından bahsedilecektir. Uygulama apk dosyası Android cihazlara indirildikten sonra telefonu kurulumu gerçekleştirilir. Daha sonra uygulama açılır. Üyelik bilgilerimiz varsa sisteme direk giriş yapılır. Yok ise kayıt olunabilir. Bu kayıt sırasında kullanıcıların telefon kimlik bilgilerini okunup sisteme kayıt edilir. Şekil 3.1: Üye Anasayfa Şekil 3.1 de uygulama anasayfası görüntülenmektedir. Bu sayfada konunum sayfasından bulunduğumuz konumun adres bilgilerini elde edebiliriz. Neredeyim kısmından ise konum bilgilerimizi harita üzerinde görüntüleyebiliriz. Arkadaşlarım kısmında arkadaş olduğumuz kişileri listeleyip bu kişilerin son olarak ne zaman online olduklarını görüp onların son konumlarını harita üzerinde görüntüleyebiliriz. Arkadaş isteklerim kısmından bize gelen arkadaşlık isteklerini kabul veya red edebiliriz. Arkadaş ara kısmından arkadaşlarımızı arayıp onlara arkadaşlık istekleri gönderebiliriz. Arkadaşlarımdan çıkar kısmından istediğimiz kişileri arkadaşlıktan çıkarabiliriz. Yakınımdakiler kısmından bütün arkadaşlarımızın son konumlarını tek bir harita üzerinde görüntüleyebiliriz. Ayrıca mesajlar kısmından arkadaş olduğumuz kişiler ile mesajlaşabiliriz. Sistemin web site kısmı tasarım halindedir. Web sitesi kısmı tamamlandıktan sonra kurumsal olarak kayıt işlemleri yapılacaktır. Kullanıcılar herhangi bir şirkete katıldıktan sonra o gruptakiler ile otomatik olarak arkadaş olup sistemin bütün özelliklerinden faydalanabileceklerdir. Şirket yöneticiler şirketinde çalışan kişilerin bu uygulamadan gelen konum bilgilerini web sitesi üzerinden harita üzerinde görüp takip işlemini anlık olarak yapabilecektir. Çalışanları ile bu web sitesi üzerinden haberleşebilecektir. 4. SONUÇ VE TARTIŞMA (CONCULUSION AND DISCUSSION)
Bu proje ile GPS sinyalleri alınıp MySQL veritabanına kayıt edilmiştir. Daha sonrasında ise bu veriler projenin activitylerinde kullanılarak bir takip uygulaması yapılmıştır. Bu uygulamada sisteme kayıt olmak çok basit ve ücretsizdir. Sisteme üye olduktan sonra üye anasayfası oluşturulmuş ve programın bütün işlevselliği bu sayfada gösterilmiştir. Kullanıcılar bu uygulama ile bulundukları konumun adres bilgisine ve harita üzerinde ki konumuna kolayca ulaşabileceklerdir. Ayrıca arkadaş listelerine tanıdıkları kişileri ekleyip bunları bunların konum bilgilerine ulaşacaklardır. Ve bu kişiler ile program üzerinden mesajlaşacaklardır. Kullanıcıların son konum bilgileri belirli aralıklar ile otomatik olarak kayıt altına alınmaktadır. Ayrıca herhangi bir şirket grubuna üye olduktan sonra çalışma arkadaşları ile otomatik olarak arkadaş olacaktır. Onlar ile konuşup onların son konum bilgilerini elde edebilecektir. Şirket yöneticileri de web sitesi üzerinden çalışanlarının konum bilgilerini haritalar üzerinden anlık olarak takip edebilmektedir. Proje ilk versiyonunda bir çok eksiklikler tespit edilmiştir. Bir sonraki sürümde bu eksikliklerin giderilmesi düşünülmektedir. Özellikle bir sonraki versiyonda uygulamaya push notification eklenecektir. Böylece kullanıcılara anlık bildirim gelmesi saglanacaktır. Tasarımda düzenlemeler yapılacaktır. Sayfa içlerinde gösterilen veriler sadelikten kurtarılıp tasarımsal olarak göze hitap etmesi sağlanacaktır. Web tasarımı tamamlandıktan sonra şirketlerin özel olarak başvurusu ile şirket açılıp istenen kullanıcılar bu şirkete üye edilebilecektir. Web sitesi üzerinden haritalar üzerinden çalışanlarını takip edip onlara mesaj gönderebileceklerdir. 5. KAYNAKLAR (REFERENCES) [1]. www.bilgiustam.com/gps-nedir-ve-nasil-calisir/. [2].gelecegiyazanlar.turkcell.com.tr/konu/android/egitim/android-301/androiddekonum-servisleri.
[3].gelecegiyazanlar.turkcell.com.tr/konu/android/egitim/android-201/android-studioyutaniyalim. [4]. tr.wikipedia.org/wiki/phpmyadmin. [5]. tr.wikipedia.org/wiki/mysql. [6]. tr.wikipedia.org/wiki/php. [7].ÖGÜTMEN, NİZAR. Profesyonel Uygulamalarla Android Programlama Ögrenin. s.l. : KODLAB, 2013. [8]. FIRAT, A.Kerim. ANDROİD PROGRAMLAMA. s.l. : KODLAB, 2014. [9]. TAÇ, MUHARREM. ANDROİD PROGRAMLAMA. s.l. : DİKEY EKSEN, 2013. [10]. blog.necatievren.com/icerik.php?id=29.