SVEU ˇ CILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RA ˇ CUNARSTVA ZAVRŠNI RAD br. 4900 Lokalizacija korisnika u prostoru korištenjem otiska ja ˇ cine signala dostupnih WiFi mreža i desktop aplikacija za integraciju korisnika sa sustavom grijanja i hla ¯ denja Teo Toplak Zagreb, lipanj 2017.
28
Embed
Lokalizacija korisnika u prostoru korištenjem otiska ...bib.irb.hr/datoteka/902509.zavrsni.pdf · generirani na serverskoj strani pomocu biblioteke GRAL, te aplikacija radi´ caching
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
SVEUCILIŠTE U ZAGREBUFAKULTET ELEKTROTEHNIKE I RACUNARSTVA
ZAVRŠNI RAD br. 4900
Lokalizacija korisnika u prostorukorištenjem otiska jacine signaladostupnih WiFi mreža i desktop
aplikacija za integraciju korisnikasa sustavom grijanja i hladenja
Teo Toplak
Zagreb, lipanj 2017.
Umjesto ove stranice umetnite izvornik Vašeg rada.
Da bi ste uklonili ovu stranicu obrišite naredbu \izvornik.
Ovaj rad obuhvaca izradu programske podrške u sklopu projekta “Unapredenje ka-
paciteta istraživanja, razvoja i transfera tehnologije vezanih uz sustave gospodarenja
energijom u zgradama” akronima ENHEMS-Buildings. Cilj projekta je mogucnost ra-
zvoja vlastitih kompetitivnih rješenja u podrucju ucinkovitog upravljanja potrošnjom
energije u zgradama uz partnerstvo Fakulteta elektrotehnike i racunarstva Sveucili-
šta u Zagrebu (FER) i Državnog hidrometeorološkog zavoda (DHMZ). U potpunosti
je razvijena desktop aplikacija te je nadograden postojeci server i android aplikacija
zajedno sa realizacijom lokalizacije korisnika u prostoru putem WiFi mreže. Demons-
tracija razvijenih tehnologija se nalazi na 9. i 10. katu neboderske zgrade FER-a (C
zgrada). U trenutku pisanja ovog rada poslužitelj za mobilnu i desktop aplikaciju se
nalazi na racunalu na 9. katu pokretan na aplikacijskom serveru Apache Tomcat. Tre-
nutni korisnici su osoblje na navedenim katovima C zgrade. Server koristi postojecu
infrastrukturu (senzore,ventilokonvektore,instalacije grijanja. . . ) i bazu podataka EN-
HEMS za ostvarenje svojih funkcija.
Glavne funkcionalnosti koje izradena programska podrška treba zadovoljavati:
– Desktop aplikacija
• Logiranje preko korisnickih kredencijala FER weba
• Odabir željene temperature prostorije
• Odabir maksimalne dozvoljene brzine vrtnje ventilokonvektora
• Prikaz grafova dobivenih ocitavanjem podataka iz senzora
• Pridodjeljivanje upravljackih elemenata nad više prostorija jednoj osobi
• Pracenje aktivnosti korisnika na racunalu s instaliranom aplikacijom
• HTTPS protokol sa serverom
– Mobilna aplikacija
• Pridodjeljivanje upravljackih elemenata nad više prostorija jednoj osobi
• Prikaz lokalizacije korisnika u prostoru putem WiFi mreža
1
– Serverska aplikacija
• API za spremanje aktivnosti korisnika
• API za lokalizaciju korisnika u prostoru
• API za postavljanje dozvoljene brzine vrtnje ventilokonvektora
• Implementacija lokalizacije korisnika u prostoru putem fingerprint-a
Dodatan rad koji je obraden u ovom dokumentu je proizvod nepredvidljivih pona-
šanja sustava, nadogradnje koje su se kroz praksu istaknule kao korisne i eksperimen-
tiranja kako bi se proizvela zanimljiva, i poželjno, bolja rješenja.
2
2. Desktop aplikacija
2.1. Uvod
Desktop aplikacija je implementirana u jeziku Java. GUI je razvijen pomocu Swing
skupa alata. Za enkripciju podataka prema serveru (SSL) je korišten Bouncy Castle
API. Poticaj razvoja u navedenim tehnologijama je bio “Write once run anywhere”
(WORA) pošto korisnici koriste aplikaciju na razlicitim platformama. Glavna svrha
aplikacije je kontroliranje parametara za sustav grijanja i hladenja, njihov detaljni pre-
gled i pracenje aktivnosti korisnika. Aplikacija je zamišljena kao pozadinski servis
najviše radi pracenja aktivnosti korisnika te je zato smještena u sistemsku traku opera-
cijskog sustava (Slika 2.1) i trebala bi se pokretati zajedno sa operacijskim sustavom.
Otvaranjem programa iz sistemske trake korisniku je prezentiran GUI na kojem može
upravljati parametrima sustava i ostalim funkcionalnostima koje program donosi. Ti-
jekom implementiranja podrške za postavljanje programa u sistemsku traku dolazi do
potencijalnih problema rada aplikacije jer time aplikacija mora komunicirati s opera-
cijskim sustavom na nižoj razini, a takvo ponašanje je drugacije za svaki operacijski
sustav i time više nepredvidljivo. Medutim operacijski sustav Windows je najzastup-
ljeniji medu korisnicima te bi aplikacija na takvoj platformi trebala raditi bez greške.
U slucaju da dolazi do problema na odredenim operacijskim sustavima, korisnicima ce
biti podijeljena verzija aplikacije koja nije integrirana u sistemsku traku nego u task-
bar. U nastavku je opis pojedinih funkcionalnosti aplikacije i njihove implementacije.
2.2. Pracenje aktivnosti korisnika
Pod pracenjem aktivnosti korisnika se podrazumijeva analizom da li korisnik trenutno
koristi svoje racunalo s pokrenutim desktop programom ili ne. Navedeno je imple-
mentirano jednostavnim pracenjem pokreta pokazivaca racunala. Vremenski interval
3
Slika 2.1: Desktop aplikacija - pozicija u sistemskoj traci
unutar kojeg se osluškuje pomicanje pokazivaca je jedna minuta. Aplikacija periodicki
šalje informaciju serveru da li je u navedenom intervalu miš pomaknut ili ne. U slu-
caju da je pokazivac pomaknut aplikacija šalje serveru jedinicu, inace nula. Pracenje
pokazivaca se osluškuje na globalnoj razini operacijskog sustava što znaci da neovisno
na kojem prozoru je fokus, ocitanje ce uvijek biti aktivno.
2.3. Prijava korisnika
Pokretanje aplikacije ukljucuje prijavu korisnika u sustav. Ako je korisnik nedavno
koristio aplikaciju i uspješno se prijavio, na serverskoj strani ce biti pohranjen token
koji ce omoguciti prijavu bez unošenja korisnickog imena i lozinke (token je valjan
jedan dan i osvježava se svaki put kada se korisnik opet prijavi putem njega). U slucaju
da je token nepostojan otvara se prozor za prijavu kao na slici 2.2
2.4. Glavno sucelje
Nakon uspješne prijave u sustav aplikacija se pokrece i minimizira u sistemsku traku.
Za otvaranje glavnog sucelja aplikacije nužno je odabrati opciju „Open“izbornika pri-
kazanog na Slici 2.1. Glavno sucelje daje prikaz svih raspoloživih podatka o izabranoj
prostoriji u padajucem izborniku (Slika 2.3). Pritiskom na element jedne od tri mje-
renih velicina (temperatura, CO2 i vlažnost) prikazuje se prikladan graf. Grafovi su
generirani na serverskoj strani pomocu biblioteke GRAL, te aplikacija radi caching is-
tih da bi se umanjio broj upita prema serveru. Graf pokazuje trenutno mjerenje, njegov
datum i mogucnost odabira vremenskog intervala prikaza. U slucaju kada je jedna od
mjerenih velicina nedostupna, primjerice radi kvara senzora, odredeni element nece
prikazivati vrijednost nego jednostvno naznaciti nedostupnost mjerena sa “- - -” kao
4
Slika 2.2: Desktop aplikacija - prijava korisnika
na slici 2.3.
2.5. Prozor za upravljanje parametrima
Element koji je zadužen za kontroliranje parametara se nalazi u gornjem lijevom kutu.
Trenutno postavljene vrijednosti su vidljive iz glavnog sucelja, a pritiskom na gumb
“Promjeni” se dobiva prozor za slike 2.4 koji omogucuje njihovu promjenu. Postoje
tri razine snage ventilokonvektora, dok prvi gumb indicira na njegovo potpuno isklju-
civanje.
5
Slika 2.3: Desktop aplikacija - glavno sucelje
Slika 2.4: Desktop aplikacija - prozor za upravljanje parametrima
6
3. Mobilna aplikacija
3.1. Uvod
Mobilna aplikacija je pisana za Android mobilni operacijski sustavu u programskom
jeziku Java. Glavna svrha ove aplikacije je mobilno upravljanje sustavima za grija-
nje i hladenje, prikaz mjerenja, te ima kljucnu ulogu u lokalizaciji korisnika putem
WiFi mreža. Android je bio poželjniji odabir od iOS-a kako ciljana grupa korisnika
za demonstraciju više koristi Android mobilne uredaje. Mobilna aplikacija je za pro-
jekt vec bila razvijena u diplomskom radu Lipnik (2015) te su ovdje navedene samo
nadogradnje na postojecu aplikaciju.
3.2. Mapiranje korisnika na više prostorija
Nadogradnja obuhvaca mapiranje više prostorija na jednog korisnika dok je prije bilo
omoguceno da korisnik ima pridodijeljena samo jednu prostoriju, te je zato ubacen
padajuci izbornik kao na slici 3.1. Mobilna aplikacija sada dodatno koristi UnitsServlet
iz potpoglavlja 5.3.4 pomocu kojeg dohvaca sve prostorije raspoložive korisniku te ih
ispisuje u izborniku. Kako je sada aplikacija dužna dohvacati grafove za svaku od
prostorija, u svrhu optimizacije, napravljen je caching grafova, te se navedeni grafovi
ne dohvacaju prije nego korisnik pošalje upit za prikazom odredene prostorije.
3.3. Trenutna lokacija korisnika
Osim navedenog dodan je i element koji prikazuje trenutnu lokaciju korisnika (više o
lokalizaciji korisnika u poglavlju 4). Jedina zadaca mobilne aplikacije je poslati listu
ocitanih RSS vrijednosti s uparenim odgovarajucim BSSID vrijednostima, poslati ih
na server(odnosno na LocationServlet opisan u potpoglavlju 5.3.3) te ispisati na suce-
lje string koji je vracen.
7
Bitan dio implementacije je ponašanje algoritma za ocitavanje signala. Algoritam oci-
tavanja signala i slanja upita prema serveru je bio prvotno riješen jednostavnim peri-
odicnim intervalima koji su u slucaju kratkih perioda prebrzo slali podatke, opterecu-
juci sebe kao klijenta i servera koji je trebao procesirati te podatke, dok bi u slucaju
dužih perioda lociranje imalo premalo podataka. Bitno je napomenuti da svako ocita-
vanje signala cini posebna dretva te je proces ocitavanja vremenski zahtjevan – to znaci
da u slucaju da je postavljeni vremenski interval bio kraci od ocitavanja signala jedne
dretve, pojavile bi se dretve koje bi se paralelno izvršavale što bi vodilo velikom troše-
nju resursa uredaja. Radi navedenog, razmatrala se druga opcija koja je bila ocitavati
signale nakon završetka prethodnog ocitavanja. Ovakav nacin bi pak znao preoptere-
civati server jer je iz samog eksperimentiranja zakljuceno da neki uredaji imaju jacu
procesnu snagu i samim time intervali ocitavanja bi bili znatno kraci (tijekom testiranja
bi jedan uredaj mogao imati brzinu ocitavanja od oko 200 milisekundi, a drugi 8000
milisekundi), te bi time dobivali i više tocaka nego potrebno za jednostavnu lokali-
zaciju korisnika. Kako bi dobili najbolje rezultate napravljen je hibridni model koji
je koristio elemente prve i druge opcije – ocitavanja su bila diktirana samim ureda-
jem koja bi bila ogranicena vremenskim intervalom koji je služio kao granica najbržeg
ocitavanja signala.
3.4. Optimizacija aplikacije
Nakon navedenih dodataka aplikaciji uslijedila je optimizacije iste pošto je korišteno
više paralelnih dretva unutar pozadinskih procesa. HTTP klijent aplikacije koji je do-
sad bio upravljan održavanjem jedne veze prema serveru, a sada je zamijenjen thread-
safe klijentom koji je u stanju podnositi vece zahtjeve aplikacije. Svi pozadinski servisi
funkcioniraju asinkrono i ne blokiraju UI.
8
Slika 3.1: Mobilna aplikacija - glavno sucelje
9
4. Lokalizacija korisnika putem jacinesignala WiFi mreža
4.1. Uvod
U sklopu ovog rada je napravljena lokalizacija korisnika u prostoru korištenjem otiska
jacine signala dostupnih WiFi mreža. Odabran mehanizam WiFi lokalizacije je bila
putem fingerprint otiska jacine signala. Nakon dobivenog fingerprint-a koristi se alat
višekategorijskog robusnog linearnog programiranja da bi se dobila konacna lokacija
korisnika u prostoru.
Lokalizacija u unutarnjim prostorima se može napraviti pomocu IrDA, ultrazvuka,
bluetooth-a, i radio frekvencija. Radio frekvencije koje se mogu pronaci u gotovo
svakoj zgradi, pogotovo u obliku WiFi signala, su temelj u vecini dizajna pametnih
kuca. Kod WiFi mreža se mogu koristiti deterministicke ili probabilisticke metode.
Deterministicke mogu procijeniti lokalizaciju brže koristeci klasicne tehnike poput tri-
lateracije ili triangulacije, dok su probabilisticke metode pouzdanije i preciznije jer
koriste više informacija, ali su kalkulacije zahtjevnije. Informacije koje fingerprint al-
goritam koristi mogu biti deterministicke i probabilisticke što slijedi iz njegove prirode
racunanja lokacije. Algoritmi mjerenja lokacije u zatvorenom prostoru su trilateracija,
triangulacija, analiza scene, mrtvo racunanje i ostali hibridni algoritmi. Fingerprint
algoritam spada u skupinu analize scene i najcešce je korišten algoritam u toj grupi
mjerenja. Fingerprinting ima dvije faze: treniranje i lokalizacija, koje ce se detaljnije
obraditi u nastavku.
4.2. Izrada fingerprinta (trening faza)
Metoda lokalizacije korisnika u zatvorenim prostorima danas je najcešce ostvarena pu-
tem WiFi fingerprint-a. Fingerprint je skup podataka dobiven ocitavanjem svih dos-
10
tupnih WiFi mreža i njihovih signala u odredenom vremenskom intervalu. Za svaku
prostoriju se bilježe jacine signala te ih se potom organizira unutar jedne grupe iden-
tificirane nazivom prostorije. Kako bi ostvario ovaj zadatak razvio sam svoju Android
aplikaciju za izradu fingerprinta. Razlog je bio moguca nepouzdanost vec postojecih
open-source aplikacija te mogucnost izrade aplikacije po mjeri kako bi dobio željen
format bilježenja podataka i potpunu kontrolu nad svim parametrima i uvjetima u ko-
jima se izraduje fingerprint. Graficko sucelje razvijene aplikacije je prikazano slikom
4.1.
Slika 4.1: Android aplikacija za izradu fingerprinta
Aplikacija ima polja za unos opcenitog naziva fingerprinta i naziva prostorije.
“Last scan interval” prikazuje koja je brzina ocitavanja signala – naime, zakljuceno je
da svaki mobilni uredaj ocitava signale razlicitom brzinom ali i takoder da se ta brzina
ocitavanja razlikuje kroz vrijeme na svakom uredaju (ovisno o brzini kretanja, jacini
signala na koji je mobitel povezan, postotku istrošenosti baterije itd.). Ovaj parametar
sam ukljucio u sucelje kako bi korisnik mogao napraviti proizvoljan broj ocitavanja u
odredenoj prostoriji te kako bi konacni rezultati bili što tocniji. Ocitavanje signala je
u aplikaciji implementirano tako da se pokrece novo nakon što je prijašnje ucitavanje
završilo. Gumb “Start” pokrece snimanje podataka lokalno u tekstualnu datoteku koja
se nalazi na uredaju. Sa “Stop” se prekida snimanje, “Clear file” gumb oznacava bri-
sanje tekstualne datoteke koja je bilježila podatke i “Export” služi kako bi se navedena
datoteka mogla poslati na uredaj koji ce vršiti obradu podataka. Klikom na “Export”
11
se dobije lista opcija kojima se datoteka može poslati kao na slici 4.2.
Slika 4.2: Android aplikacija za izradu fingerprinta - slanje podataka
Format i izgled dobivenog mjerenja za jednu prostoriju unutar datoteke se nalazi na
slici 4.3. Važno je napomenuti da je BSSID1 vece važnosti od samog SSID2-a signala
jer SSID nije nužno unikatan kao što je i primjer na slici, a što je slucaj upravo na 9.
katu neboderske zgrade FER-a gdje se nalazi puno AP3-a s istim SSID-om.
Slika 4.3: Izgled tekstualne datoteke fingerprinta
Nakon testiranja rada aplikacije krenulo se u praksu. Kolega i ja smo na raspolaga-
nju imali tri uredaja s kojima smo otišli na 9. kat neboderske zgrade FER-a i napravili1Basic Service Set Identifier2Service Set Identifier3Access point
12
fingerprint. Imali smo ogranicen pristup prostorijama ali smo uspjeli prikupiti mje-
renja osam prostorija ukljucujuci hodnik (slika 4.4). Bilo je bitno prikupiti podatke
susjednih prostorija kako bi se mogla bolje ispitati kasnija klasifikacija. U ovom tre-
nutku je važno napomenuti da je kasnije fingerprint za prostor hodnika (C900 na slici
4.4) izbacen iz kalkulacija jer je previše remetio konacne rezultate i nije bilo potrebe
za lociranjem korisnika unutar hodnika (razlog dobivanja loših rezultata radi prostora
C900 je njegovo prostiranje uzduž cijelog kata cime je zahvacao širok spektar RSS vri-
jednosti). U slucaju da bi bilo potrebno locirati korisnika unutar hodnika, bolja praksa
bi bila podijeliti prostor hodnika na više manjih cjelina i raditi fingerprint za svaku
cjelinu.
Slika 4.4: Tlocrt prostorija s izradenim fingerprintom (oznaceno crvenom bojom)
Lokalizacija korisnika u prostoru korištenjem otiska jacine signala dostupnihWiFi mreža i desktop aplikacija za integraciju korisnika sa sustavom grijanja i
hladenja
Sažetak
Ovaj rad obuhvaca izradu programske podrške u sklopu projekta ENHEMS-Buildings
uz cilj ucinkovitog upravljanja potrošnjom energije u zgradama. Programska podrška
ukljucuje nadogradenu Android mobilnu aplikaciju i Java EE server te novu Java de-
sktop aplikaciju za integraciju korisnika sa sustavom grijanja i hladenja. U sklopu
programske podrške izradena je i lokalizacija korisnika u prostoru putem WiFi mreža
putem mobilne aplikacije koristeci metodu otiska jacine signala. Demonstracija pro-
jekta se nalazi na 9. katu neboderske zgrade FER-a.