28
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.

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

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 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

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.

Page 2: 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

Umjesto ove stranice umetnite izvornik Vašeg rada.

Da bi ste uklonili ovu stranicu obrišite naredbu \izvornik.

Page 3: 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

iii

Page 4: 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

SADRŽAJ

1. Uvod 1

2. Desktop aplikacija 32.1. Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.2. Pracenje aktivnosti korisnika . . . . . . . . . . . . . . . . . . . . . . 3

2.3. Prijava korisnika . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.4. Glavno sucelje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.5. Prozor za upravljanje parametrima . . . . . . . . . . . . . . . . . . . 5

3. Mobilna aplikacija 73.1. Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3.2. Mapiranje korisnika na više prostorija . . . . . . . . . . . . . . . . . 7

3.3. Trenutna lokacija korisnika . . . . . . . . . . . . . . . . . . . . . . . 7

3.4. Optimizacija aplikacije . . . . . . . . . . . . . . . . . . . . . . . . . 8

4. Lokalizacija korisnika putem jacine signala WiFi mreža 104.1. Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

4.2. Izrada fingerprinta (trening faza) . . . . . . . . . . . . . . . . . . . . 10

4.3. Klasifikacija zauzeca prostorije (faza lokalizacije) . . . . . . . . . . . 13

4.4. Rezultati i zakljucak . . . . . . . . . . . . . . . . . . . . . . . . . . 14

5. Server 155.1. Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

5.2. Autentifikacija korisnika . . . . . . . . . . . . . . . . . . . . . . . . 15

5.3. Servleti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5.3.1. Activity Servlet . . . . . . . . . . . . . . . . . . . . . . . . . 16

5.3.2. FCSpeedServlet Servlet . . . . . . . . . . . . . . . . . . . . 16

5.3.3. LocationServlet Servlet . . . . . . . . . . . . . . . . . . . . . 16

5.3.4. UnitsServlet Servlet . . . . . . . . . . . . . . . . . . . . . . 17

iv

Page 5: 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

6. ENHEMS baza podataka 186.1. Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

6.2. Tablice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

7. Izazovi i iskustva 20

8. Zakljucak 21

Literatura 22

v

Page 6: 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

1. Uvod

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

Page 7: 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

– 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

Page 8: 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

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

Page 9: 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

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

Page 10: 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

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

Page 11: 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

Slika 2.3: Desktop aplikacija - glavno sucelje

Slika 2.4: Desktop aplikacija - prozor za upravljanje parametrima

6

Page 12: 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

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

Page 13: 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

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

Page 14: 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

Slika 3.1: Mobilna aplikacija - glavno sucelje

9

Page 15: 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

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

Page 16: 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

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

Page 17: 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

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

Page 18: 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

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)

4.3. Klasifikacija zauzeca prostorije (faza lokalizacije)

Klasifikacija je ostvarena pomocu alata višekategorijskog robusnog linearnog progra-

miranja. Konkretnije, korišten je stroj s potpornim vektorima (Gaussova jezgra) radi

ceste primjene upravo u lokalizaciji korisnika putem WiFi mreža. Detalji nacina rada

ovog algoritma nece biti obradeni u ovom radu jer se rad koncentrira više oko izvedbe

programske podrške. Dovoljno je navesti samo osnove korištenog algoritma.

Nakon dobivanja fingerprinta, racunaju se prosjecne vrijednosti RSS-a za svaki AP

unutar svake osobe i pritom se ukljucuju u racun vrijednosti sa svakog mobilnog ure-

daja pomocu kojeg je raden fingerprint. Skup prosjecnih vrijednosti po AP-u za jednu

sobu oznacit cemo sa Fi (i je redni broj prostorije), dok dobiven skup vrijednosti tre-

nutnog mjerenja (iz kojeg želimo zakljuciti u kojoj se prostoriji nalazimo) oznacujemo

sa R. Sljedeci korak ce biti usporedivanje svakog Fi sa R, te zakljuciti koja se dva

13

Page 19: 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

skupa najviše poklapaju. Navedeno racunamo s funkcijom bliskosti (likehood func-

tion) L(Fi, R):

L(Fi, R) =n∑

i=1

KG(rMk; rFk

)

gdje jeKG funkcija Gaussove jezgra (Gauss kernel function), rMkprosjecna vrijednost

RSS-a za k-ti AP, a rFkvrijednost RSS-a za k-ti AP poslana s uredaja. Formula za

Gaussovu jezgru je:

KG(rMk; rFk

) =1√2πσ

exp

(− (rMk

− rFk)2

2σ2

)gdje je σ prilagodljiv parametar koji oznacava dužinu Gaussove jezgre i centar rFk

.

Nakon eksperimentiranja ss vrijednosti σ i tocnosti dobivenih rezultata, vrijednost

σ = 0.25 je odabrana jer je davala najbolje rezultate. Nakon što je za svaku i-tu

prostoriju izracunata vrijednost bliskosti, prostorija koja ima najvecu vrijednost uzeta

je kao trenutna lokacija korisnika. U slucaju da odreden broj AP-eva uopce nije dos-

tupan, pretpostavlja se da se korisnik nalazi u nekoj prostoriji za koji nije napravljen

fingerprint iako ce funkcija bliskosti davati nekakve vrijednosti.

4.4. Rezultati i zakljucak

Trenutni rezultati su zadovoljavajuci za potrebe ovog rada. Mehanizam je u stanju

pogoditi unutar koje se prostorije ili njezine okoline korisnik nalazi s ponekim osci-

lacijama koje su zanemarive gledajuci duže vremenske intervale. Efikasnost i tocnost

korištenog mehanizma je teško odrediti pošto jacina signala (RSS) ovisi o puno faktora

kao što su razliciti tipovi mobilnih uredaja, kvarovi i varijacije izvora jacine signala

pojedinog AP-a, predmeti koji se nalaze izmedu primatelja i pošiljatelja signala (po-

gotovo metali, magneti), cak i kretnje ljudi po prostorijama mogu utjecati na jacinu

signala itd. Poboljšanja efikasnosti mehanizma su moguca pomocu više podatka iz

fingerprinta, sakupljanja fingeprinta iz svih prostorija, kolaborativnog povrata infor-

macija korisnika i korištenja drugacijih algoritama.

14

Page 20: 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

5. Server

5.1. Uvod

Server je implementiran pomocu Java Servlet tehnologije kao REST servis. Slicno kao

i mobilna aplikacija, dio servera je vec napravljeno u diplomskom radu Lipnik (2015)

ali u ovom slucaju su nastupile vece promjene. Promjene su ukljucivale mapiranje više

korisnika na više prostorija, implementaciju lokalizacije korisnika u prostoru, modifi-

ciranje postojecih, i dodavanje novih Servlet-a te dohvat i upravljanje parametrom br-

zine vrtnje ventilatora. Takoder radi povecanih upita prema serveru bilo ga je i nužno

skalirati prema zahtjevima.

5.2. Autentifikacija korisnika

Vec je spomenuto da server koristi tokene za autentifikaciju korisnika – ovo potpo-

glavlje opisuje nacin rada takvog mehanizma. Za autentifikaciju nije korišten poseban

framework nego je samostalno implementiran. Mehanizam je sljedeci: nakon uspješne

prijave korisnika na sustav, server radi novi token koji se zapravo sastoji od generiranog

hash-a. Server token posprema lokalno i uparuje ga sa korisnickim identifikatorom, a

drugu kopiju šalje prijavljenom klijentu koji bi trebao primljeni token spremiti lokalno

na enkriptirano mjesto. Na svaki sljedeci zahtjev klijent sprema dodijeljeni token u

parametre zahtjeva nakon cega server radi usporedbu predanog i lokalno spremljenog

tokena, te u slucaju podudaranja tokena, korisnik je autentificiran. Na serverskoj strani

je to implementirano filterom na zahtjeve koji u slucaju ispravnog tokena presrece zah-

tjev i posprema informacije korisnika u atribut sesije.

15

Page 21: 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

5.3. Servleti

Nove funkcionalnosti konacnog servera se mogu strukturalno opisati kroz Servlet-e

kao u nastavku ovog poglavlja. Svi sevleti koji nemaju opis u ovom radu nalaze se u

diplomskom radu (Lipnik, 2015). Servlet-i s mapiranim URL uzorcima su prikazani u

tablici 5.1.

Tablica 5.1: Novi Servlet-i servera s mapiranim URL uzorkom

Servlet URL

ActivityServlet /Activity

FCSpeedServlet /FCspeed

LocationServlet /Location

UnitsServlet /Units

5.3.1. Activity Servlet

Server kroz POST zahtjev prima parameter “activity” koji indicira na to da li je odreden

korisnik aktivan ili ne. Ocekuje vrijednost nula ili jedan, gdje jedinica predstavlja

aktivnost a nula neaktivnost. Vrijednost se sprema u tablicu 6.4

5.3.2. FCSpeedServlet Servlet

Server kroz POST zahtjev prima parametar “fcspeed”. Moguce su samo vrijednosti

0,1,2 i 3, gdje nula predstavlja gašenje ventilatora, a svaka uzastopna brojka predstavlja

odredenu snagu vrtnje.

5.3.3. LocationServlet Servlet

Server kroz POST zahtjev prima parameter “rsss” koji je formata JSON. JSON treba

u sebi sadržavati listu parova (BSSID,RSS) za svaki Access point. Vraca String koji je

naziv prostorije u kojoj se korisnik nalazi ili odredenu informaciju poput “Neodreden

prostor” ili “Greška na serveru”. Nakon odredene lokacije, identifikator prostorije se

sprema u tablicu 6.5. Interno server na prvi zahtjev za lokaciju korisnika pokrece parser

tekstualne datoteke sa slike 4.3 koji priprema podatke fingerprinta u radnu memoriju

spremne na obradivanje zahtjeva.

16

Page 22: 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

5.3.4. UnitsServlet Servlet

Ovaj Servlet je implementirati uz potrebu da se na više korisnika mapira više pros-

torija. Tako iz ovog servleta klijent može dohvatiti koje prostorije su pridodijeljene

prijavljenom korisniku. Kroz GET upit se dobiva JSON koji sadrži listu prostorija.

17

Page 23: 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

6. ENHEMS baza podataka

6.1. Uvod

ENHEMS baza podataka sadrži sve kljucne podatke za projekt kao što su podatci svih

senzora, upravljackih parametara, prostorija, korisnika i njihovih aktivnosti, okupira-

nosti prostorija i slicno. Koristi MySQL sustav za upravljanje bazom podataka. Uz

korištene istih tablica navedenih u radu Lipnik (2015), u nastavku su navedene nove ili

modificirane tablice.

6.2. Tablice

Tablica 6.1: control_vars tablica

NAME TYPE DESCRIPTION

rowID BIGINT(20) NOT NULL (PK)

UnitID INT(11) zone ID (FK)

Timestamp TIMESTAMP(6) row timestamp

User_ID INT(11) user ID

FCSpeed FLOAT fan speed

FCValve FLOAT fan valve value

Tablica 6.2: username_table2 tablica

NAME TYPE DESCRIPTION

rowID BIGINT(20) NOT NULL (PK)

Unit_ID INT(11) unit ID

Username TEXT username

User_ID TEXT user ID

18

Page 24: 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

Tablica 6.3: fan_speed_limit tablica

NAME TYPE DESCRIPTION

rowID BIGINT(20) NOT NULL (PK)

Timestamp TIMESTAMP(6) row timestamp

fan_speed_limit INT(11) fan speed limit

User_ID INT(11) user ID

UnitID INT(11) zone ID (FK)

Tablica 6.4: user_activity tablica

NAME TYPE DESCRIPTION

rowID BIGINT(20) NOT NULL (PK)

Timestamp TIMESTAMP(6) row timestamp

activity INT(11) is user active

User_ID INT(11) user ID

Tablica 6.5: user_wifi_location tablica

NAME TYPE DESCRIPTION

rowID BIGINT(20) NOT NULL (PK)

Timestamp TIMESTAMP(6) row timestamp

Unit_ID INT(11) unit ID

User_ID INT(11) user ID

19

Page 25: 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

7. Izazovi i iskustva

Tijekom razvoja došlo je do raznih neocekivanih iskustva. Ovo poglavlje služi kako bi

se osvrnulo na tijek i uvid u razvoj aplikacija tijekom njihove implementacije.

Izazove u razvoju je najviše cinilo neocekivano ponašanje dijelova sustava kada su

bili upogonjeni u demonstraciji. Dobar primjer je preopterecenost servera koja je nas-

tala nakon distribucije aplikacije korisnicima jer server nije bio skaliran prema novim

uvjetima rada. Pojavile su se razlicite greške na aplikacijama jer nisu nativne te su

se koristile na razlicitim platformama, i u razlicitim uvjetima, gdje je primijecena ve-

lika važnost logiranja podataka svake aplikacije kako bi se kasnije potencijalna greška

mogla ispraviti. Višedretvenost je rješavala probleme skalabilnosti ali i predstavljala

probleme prevelikom korištenju resursa uredaja. Bilo je i problema s demonstrativnom

okolinom jer je na mreži koju je sustav koristio bilo razlicitih sigurnosnih ogranicenja

koje je postavio CIP1. Osim toga dolazilo je do cestih problema nastalih iz mijenjanja i

najmanjih funkcionalnosti aplikacija jer nije bilo trivijalno testirati svaku upogonjenu

aplikaciju nakon izmjena na jednoj od njih. Bilo je važno temeljito testirati svaku apli-

kaciju prije distribuiranja jer ne postoji nikakav sustav verzioniranja ili zakrpa aplika-

cija putem mreže.

1Centar Informacijske Potpore, FER

20

Page 26: 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

8. Zakljucak

Napravljena je programska podrška koja zadovoljava sve planirane funkcionalnosti u

radu. Desktop aplikacija, mobilna aplikacija i server su sada dio distribuiranog sustava

koji potpomažu svrhu ENHEMS-Buildings projekta – ucinkovito upravljanje potroš-

njom energije u zgradama. Sigurno je reci da su trenutne aplikacije lako nadogradive

te da postoji potencijal za daljnje unaprijedene sustava koje ce voditi sve pametnijem

i efikasnijem sustavu. Kako je tema pametnih zgrada i dalje jako popularna u vidu

informacijsko-komunikacijskih tehnologija, postoji puno prostora za implementaciju

novih kompetitivnih rješenja u sklopu ovog projekta.

Buduci rad bi mogao ukljucivati bolje implementirane algoritme (kao što je u slucaju

WiFi lokalizacije povratna informacija korisnika za bolje treniranje fingerprinta), iz-

radu frontenda za server kao i API za sve CRUD operacije, lokalizaciju korisnika preko

drugih mehanizama za bolju preciznost, web aplikaciju kao drugu verziju trenutne de-

sktop aplikacije i iOS mobilnu aplikaciju. Trenutne podatke koji se upisuju bazu po-

dataka o lokaciji korisnika treba iskoristiti za automatsko prilagodavanje temperatura

prostorija, ventilokonvektora i drugih uredaja koji utjecu na energetsku ucinkovitost

zgrade. Takoder ima prostora za napredak u pogledu strojnog ucenja koje bi služilo

predvidanju ponašanja korisnika.

Radom na ovakvim zahtjevnim programskim rješenjima je izazovan inženjerski po-

sao na kojem se mogu dobiti odlicna iskustva kako iz programskog inženjerstva tako

iz najmodernijih tehnoloških rješenja, koja dalje mogu biti korištenja za povezivanje

znanja s konkretnim zadatcima i samostalnost u rješavanju razlicitih problema.

21

Page 27: 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

LITERATURA

Informacije o projektu, 2013. URL http://www.enhems-buildings.fer.

hr/enhems-buildings/about_the_action/action_info.

Stjepan Lipnik. Mobilna aplikacija za pracenje i upravljanje klimom unutarnjeg pros-

tora. Magistarski rad, Fakultet elektrotehnike i racunarstva, Zagreb, 2015.

Yuanzhu Chen Yan Luo, Orland Hoeber. Enhancing wi-fi fingerprinting for

indoor positioning using human-centric collaborative feedback, 2013. URL

https://hcis-journal.springeropen.com/articles/10.1186/

2192-1962-3-2.

Ahmet Sertbas Zeynep Turgut, Gulsum Zeynep Gurkas Aydin. Indoor localiza-

tion techniques for smart building environment, 2016. URL http://www.

sciencedirect.com/science/article/pii/S1877050916302757.

22

Page 28: 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

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.

Kljucne rijeci: Java, Android, WiFi lokalizacija, mobilna aplikacija, desktop aplika-

cija

Indoor localization of users using WiFi fingerprinting and desktop applicationfor integration of users in cooling and heating system

Abstract

This thesis includes developing software support for ENHEMS-Buildings project

with purpose of creating solutions for energy efficient buildings. Developed software

includes upgraded Android application, Java EE server and new Java desktop appli-

cation for integration of users in heating and cooling system. Besides developed sof-

tware, indoor localization of users using WiFi fingerprinting was made. Demonstration

of working project is on 9th floor at skyscraper building of Faculty of Electrical Engi-

neering an Computing, Zagreb.

Keywords: Java, Android, WiFi localization, mobile application, desktop application