System lokalizacji GPS Pracownia problemowa 2008 Stanisław Gwara Plan prezentacji: ► Zarys projektu ► Potencjalne zastosowania ► Główne założenia ► Architektura ► Użyte rozwiązania Zarys projektu: ► Tematem niniejszego projektu jest system umożliwiający obserwację położenia urządzeń odbierających sygnał GPS. System ten oprócz śledzenia „na bieżąco” pozycji żądanego modułu GPS pozwala również na składowanie i zarządzanie danymi o historii przebytej przez urządzenie trasy przy użyciu przeglądarki. Potencjalne zastosowania systemu: ► Lokalizacja przedstawicieli handlowych firmy Możliwość obserwowania za pomocą kilku kliknięć obecnej pozycji wybranego pracownika oraz trasy jaką przebył. ► System zabezpieczający samochód: W tym wariancie moduł (GPS + modem GPRS) jest na stałe zainstalowany w samochodzie w trudno dostępnym miejscu i co zadany okres czasu przesyła dane o aktualnej pozycji samochodu. Potencjalne zastosowania systemu: ► System śledzenia komunikacji miejskiej: Podobnie jak w powyżej, z tą różnicą że wyniki w postaci aktualnej pozycji tramwaju/autobusu można obserwować w ogólnodostępnej witrynie internetowej. Główne założenia projektu ► Prosta architektura klient-serwer. ► Bezpieczeństwo – w wypadku kiedy przesyłane dane mogą być istotne z punktu widzenia szpiegostwa przemysłowego wskazane jest wykorzystanie np. SSL. ► Wykorzystanie różnych darmowych i ciekawych rozwiązań. ► Łatwość w dostosowywaniu aplikacji do potrzeb firmy. Główne założenia projektu: ► Łatwy dostęp do danych o położeniu/trasie – dostęp odbywa się za pomocą przeglądarki internetowej – jest to jedyna aplikacja której potrzebuje klient chcący obserwować dane urządzenie. ► Niskie koszty użytkowania – W wypadku kiedy przybliżone położenie urządzenia jest znane (np. podczas śledzenia komunikacji miejskiej) nie są przesyłane pełne koordynaty tylko interesująca nas część. Dodatkowo istnieje możliwość ustawienia interwału przesyłania danych. Architektura ► Schemat ogólny: Internet GPRS GPRS Komputer PC Agent mobilny Serwer firmowy Architektura ► Częścią wspólną wszystkich wariantów użycia takiego systemu jest serwer. Serwer odpowiada za odbieranie połączeń oraz składowanie i udostępnianie danych o aktualnym położeniu/przebytej trasie. Aktualne rozwiązanie to wielowątkowy serwer napisany przy użyciu Javy. Dodatkowo w użyciu jest serwer http Apache. Służy on do udostępniania witryny z mapą i kontrolkami zarządzającymi. Architektura ► Część mobilna systemu różni się w zależności od zastosowania. W przypadku lokalizacji położenia pracowników danej firmy jest to PDA + GPS + telefon GPRS Bluetooth Telefon komórkowy Bluetooth PDA GPS Architektura ►W takim wariancie moduł GPS jest na stałe zainstalowany w samochodzie przedstawiciela handlowego. Aplikacja zbierająca dane działa na PDA, w tle. Aplikacja ta łączy się poprzez bluetooth z modułem GPS, odczytuje zdania w formacie NMEA-0183, parsuje je do zadanej postaci i wysyła poprzez modem GPRS (w tym wypadku dowolny telefon komórkowy) Architektura ► Rozwiązanie to zostało stworzone dla potrzeb określonej firmy gdzie w użyciu były już palmtopy korzystające z modemu GPRS w telefonie komórkowym. W takiej sytuacji jedynym dodatkowym kosztem jest moduł GPS. Niestety wadą takiego rozwiązania jest wysokie zużycie baterii (utrzymywanie połączeń bluetooth) oraz konieczność zrywania/wznawiania połączenia gdy pracownik oddali się od modułu GPS. Architektura ► Powyższe problemy rozwiązuje użycie jednego urządzenia – bardziej zaawansowanego telefonu (np. Samsung Omnia) który ma wbudowany moduł GPS. Dzięki temu że część mobilna jest napisana w Javie zmiany w oprogramowaniu w porównaniu do poprzedniego wariantu są minimalne. Architektura ►W przypadku systemu śledzącego samochód moduł GPS połączony z modemem GPRS jest zainstalowany na stałe w samochodzie. Możliwa jest też dalsza integracja i sprawdzanie np. informacji o tym czy samochód jest aktualnie uruchomiony. Użyte rozwiązania ► ► ► Apache – w projekcie tym serwer http jest używany do udostępniania strony, na której wyświetlane jest położenie urządzenia GPS i dane o przebytej trasie. Bluecove – implementacja JSR-82 (API Javy dla technologii Bluetooth). Jest to projekt stworzony przez Intela, obecnie rozwijany przez ochotników. Umożliwia wyszukiwanie urządzeń Bluetooth i połączenie z nimi za pomocą kilku linii kodu. Google Maps – serwis google został użyty do prezentacji danych lokalizacyjnych. Korzystanie z map google jest niezwykle proste dzięki zaawansowanemu API. Użyte rozwiązania Dostęp do API odbwa się z poziomu JavaScript. Do korzystania z Google Maps API wymagany jest bezpłatny klucz, który może uzyskać każdy użytkownik konta google. Klucz pozwala na dostęp z jednej domeny lub katalogu domeny. Google Maps API umożliwia zintegrowanie ze stroną internetową w pełni funkcjonalnej mapy, z własnymi danymi i funkcjami do obsługi zdarzeń. ► Mysaifu – open sourcowa maszyna wirtualna Javy dla platformy Windows Mobile. Obecnie jest to jedyna sensowna i darmowa maszyna wirtualna dla tej platformy, co ciekawe rozwijana przez jedną osobę. ► SQLite – System zarządzania bazą danych, obecnie wdrażany. ►