GeoFencing

GeoFencing - wyznaczanie wirtualnych stref.

Geofencing jest również określane jako  geo-ogrodzenie, wirtualne ogrodzenie, geograficzne ogrodzenie czy też cyfrowe ogrodzenie. Bardziej sensownym jednak tłumaczeniem jest strefa.  Pozwala wyznaczyć wybrany obszar  lokalizacji geograficznej w świecie rzeczywistym.

Geofencing to jedna z podstawowych technologii projektowania i budowy inteligentnych domów. Automatycznie otwierająca i zamykająca się brama wjazdowa lub garażowa.Inteligentny dom w oparciu o informacje naszej lokalizacji geofencingowej otworzy bramę wjazdową i umożliwi wjazd na posesję. Może także ją zamknąć gdy wyjedziemy z domu.

Napisaliśmy specjalne oprogramowanie na telefon z sytemem android umożliwiające zastosowanie geofencingu również w naszym systemie. Lokalizacja użytkowanika oparta jest o GPS telefonu. Wydzielona strefa ogrodzenia może mieć różny kształt. Dla uproszczenia zdefiniowaliśmy, że jest to okrąg o wybranym promieniu.  Gdy użytkownik wjedzie w strefę może nastąpić automatyczne otworzenie bramy bądź pojawi się komunikat z możliwością jej otworzenia.  Tak samo można zdefiniować wyjazd ze strefy.

Obsługa strefy przewiduje 4 przypadki:

  • Wejście do strefy
  • Wyjście ze strefy
  • Przebywanie w strefie
  • przebywanie poza strefą

 

Do otwierania bramy potrzebne są nam dwa przypadki. Wejście lub wyjście ze strefy. Wszystko byłoby idealnie gdyby nie to, że system GPS ma swoją niedokładność. W różnych przypadkach np. warunki pogodowe, umiejscowienie telefonu (np samochód, budynek) pozycja GPS może się zmieniać np:

Aby jednoznacznie określić położenie - w strefie lub poza nią należy zastosować pewną tolerancję dla strefy przy wejściu do strefy i wyjściu z niej. Najprościej zrobić to definiując dwa różne obszary. Mniejszy dla wejścia większy dla wyjścia ze strefy.

Wejście do strefy nastąpi dopiero po przekroczeniu wewnętrznej "bariery". Wyjście zaś zewnętrznej. Dzięki zastosowaniu takiej histerezy omijamy problem niedokładności pomiaru systemu.

Aplikacja na telefon. ELFRO - GeoFencing

Google udostepnia specjalne api do swoich map umożliwiające definiowanie dowolnych stref. Jednakże jest to cięzkie rozwiązanie wymaga integracji z mapami google akceptacji warunków usług, dokonywanie odpowiednich płatności i wielu innych czynników. Dlatego napisaliśmy własne rozwiązanie. Nie bazuje ono na żadnych rozwiązaniach dodatkowych. Oprogramowanie jest dzięki temu lekkie i nikt nas dodatkowo nie śledzi. Oczywiście poza samym google :) i aplikacjami którym chcąc nie chcąc i tak wyraziliśmy zgodę na lokalizację. No ale to jest temat na zupełnie inny artykuł.

Po uruchomieniu aplikacji automatycznie schowana jest ona w pasku powiadomień:

Powiadomienie jest także widoczne w oknie blokady telefonu.

Po kliknięciu w powiadomienie otworzy się okienko:

Przy pierwszym uruchomieniu funkcje nie będą działać prawidłowo. Należy skonfigurować program. W tym celu klikamy w 3 kropki po prawej stronie. Pojawi się menu:

Możemy zamknąć program, lub wybrać konfigurację:

Na górze konfiguracji mamy krótki status o bieżącej pozycji odległości od punktu 0 strefy, oraz bieżącym statusie położenia tj czy użytkownik jest w strefie poza nią czy właśnie wchodzi lub wychodzi ze strefy. Poniżej znajduje się konfiguracja elementów. Punkt 0 jest to środek strefy od którego oznaczamy odległość. Np środek bramy itp.

Definiujemy nazwę naszej strefy a później ustalamy położenie punktu 0. Zrezygnowano tu z map. Należy wpisać położenie manualnie lub wybrać bieżące położenie jako punkt 0 klikając w przycisk POBIERZ Z AKTUALNEGO POŁOŻENIA. Położenie podajemy jako liczbę (standard google maps). Nie zainstalowano tu żadnych mapek do wyboru położenia ze względu na prostotę aplikacji jej rozmiar jak i obciążanie telefonu.

Następnie należy podac promienie stref. Wewnętrzną - do wejscia w strefę jak i zewnętrzną - do wyjścia ze strefy. Dobrze aby różnica stref wynosiła więcej jak 10 m - unikniemy wtedy błędów lokalizacji systemu GPS.

Poniżej podajemy linki do otworzenia i zamknięcia bramy. Są to polecenia(zapytania) które program wysyła do serwera aby mógł on wykonać określoną czynność.

W przeciwieństwie do wielu aplikacji zastosowany tu mechamizm pozwala na pracę z serwerem po protokóle http jak i https. Umożliwia także pracę gdy serwer wystawia niewłaściwy, lub własny niepotwierdzony certyfikat.

Dodanie do linku znacznika czasu spowoduje, że każde zapytanie będzie trochę inne - omija to buforowanie przeglądarek, serwerów proxy itp - zalecane jest włączenie tej opcji.

Autoryzacja. Jeżeli praca z serwerem wymaga autoryzacji należy wpisać niezbędne wymagane dane. Na razie program wspiera jedynie metodę BASIC authorisation.

Można przetestować działanie linków klikając w odpwiedni przycisk Testuj.... Jeżeli komunikacja jest poprawna pojawi sie  obok napis OK.

Następnie ustalamy kolejne opcje programu:

Tryb auto open i auto close - czy program ma automatycznie wykonywać odpowiednią akcję przy wyjściu ze strefy lub wejściu do strefy.

Jeżeli te opcje nie są zaznaczone po wykryciu wyjścia lub wejścia pojawi się okno dialogowe z zapytaniem.

 

Jeżeli zaznaczono odpowiednie opcje nie pojawi się okienko tylko wykonana zostanie przypisana akcja do zdarzenia.

Pozostałe dwie opcje Nie pokazuj okna dialogowego przy wejściu i wyjściu ze strefy działają tylko wtedy gdy nie jest włączony tryb auto open/close. Gdy są załączone po prostu nie pojawi się okno podczas wejścia/wyjścia ze strefy - nie dzieje się nic. Generowany jest tylko komunikat słowny.

Nie używaj komunikatów głosowych. Podczas normalnej pracy program generuje informacje głosowe (należy odpowiednio ustawić syntezer mowy w ustawieniach telefonu tj. domyślny język) Jeżeli nie chcemy aby się nam telefon odzywał sam ;) zaznaczamy tą opcję.

Uruchamiaj ze startem telefonu - program będzie się automatycznie uruchamiał gdy wyłączymy i włączymy telefon ponownie.


Aplikacja nie jest dostępna w sklepie google play. Udostępniamy ją za darmo jedynie dla naszych klientów.

Na życzenie klienta nożemy wykonać dowolną aplikację na zamówienie do sytemu windows jak i android.

 

Script logo