Upload
others
View
3
Download
1
Embed Size (px)
Citation preview
SVEUČILIŠTE U ZAGREBU
FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA
ZAVRŠNI RAD br. 4876
Predviđanje okupiranosti prostorije na
temelju povijesnih podataka o
okupiranosti iz očitanja niskoenergetskog
Bluetooth beacon sustava
Hari Barić
Zagreb, lipanj 2017.
Sadržaj
1.Uvod ............................................................................................................ 4
2. BLE tehnologija .......................................................................................... 6
2.1 Oglašavanje i otkrivanje ........................................................................ 6
2.2 Softverski model ................................................................................... 6
2.3 Utjecaj na bateriju ................................................................................. 8
2.4 Tehničke specifikacije BLE beacona..................................................... 9
3. Prikupljanje podataka o okupiranosti ........................................................ 10
3.1 Konfiguracija beacona ........................................................................ 10
3.2 Mobilna aplikacija................................................................................ 12
3.2.1 Pozadinski servis mobilne aplikacije ............................................. 13
3.2.2 BackgroundScanService .............................................................. 13
4. Poslužitelj ................................................................................................. 16
5. Predviđanje okupiranosti .......................................................................... 17
5.1 Generiranje podataka ......................................................................... 17
5.2 Neuronske mreže................................................................................ 18
5.2.1. Unakrsna provjera ....................................................................... 20
5.2.2. Optimizacija modela ................................................................... 20
5.3 Predviđanje okupiranosti prostorije ..................................................... 22
6. Zaključak .................................................................................................. 23
7. Literatura .................................................................................................. 25
1.Uvod
Ušteda energije kao jedna od primarnih tema današnjice sve je
aktualnija, stoga se postavlja pitanje kako primjenom suvremenih tehnologija
možemo smanjiti potrošnju energije u zgradama koje troše oko 40% ukupne
energije koju čovječanstvo danas koristi.
Poznavanjem stanja okupiranosti prostorije te točnim predviđanjem
okupiranosti značajno se može unaprijediti energetska učinkovitost zgrada
ukoliko se navedene informacije koriste pri upravljanju sustavima grijanja i
hlađenja u zgradama.
ENHEMS-Buildings projekt kojeg je vodio Fakultet elektrotehnike i
računarstva Sveučilišta u Zagrebu (FER) od 2013. do 2015. godine, pomoću
informacijsko-komunikacijskih tehnologija upravlja potrošnjom energije u
zgradama, te kao ključne komponente obuhvaća optimalno i prediktivno
upravljanje sustavima, meteorologiju i otvorene sustave za prijenos
informacija u zgradi [5].
Jedan dio ENHEMS-Buildings projekta je nativna Android aplikacija koja
omogućuje korisnicima pregled trenutnih vrijednosti temperature, vlažnosti
zraka i udjela CO2 u prostorijama, te pregled povijesnih podataka za svaki od
navedenih parametara u više vremenskih raspona [6]. Dijagram cijelog
sustava može se vidjeti na Slika 1.
Slika 1 Dijagram sustava
U okviru ovog rada u navedenu mobilnu aplikaciju dodana je
funkcionalnost pozadinskog servisa za detekciju BLE beacona (eng.
Bluetooth Low Energy Beacon), tj. BLE odašiljača pomoću kojih se realizira
sakupljanje podataka o okupiranosti u odabranim prostorijama 9. kata
neboderske zgrade FER-a u svrhu lokalizacije korisnika i radi poboljšanja
uštede energije temeljem navedenih podataka. Zbog proširenja
funkcionalnosti mobilne aplikacije, bilo je potrebno implementirati
odgovarajući pozadinski servis za poslužiteljsko računalo koji obrađuje
podatke o okupiranosti i sprema ih u bazu podataka. Zatim je pomoću
povijesnih podataka o okupiranosti realiziran algoritam predviđanja
okupiranosti prostorije korištenjem neuronskih mreža (eng. neural networks)
prikladne strukture, te je verificirana njegova efikasnost.
2. BLE tehnologija
BLE (engl. Bluetooth Low Energy) ili Bluetooth Smart bežična je
tehnologija koju je napravila tvrtka Bluetooth Special Interest Group [1].
Navedena tehnologija najčešće se koristi u granama poput zdravstva,
fitness-a, bluetooth beacona i sigurnosti. U odnosu na klasičnu Bluetoothu
tehnologiju, glavna karakteristika BLE tehnologije je u tome što ima znatno
smanjenu potrošnju električne energije dok joj cijena ostaje u rangu sa
standardnom Bluetooth tehnologijom.
Mobilni operacijski sustavi, uključujući iOS, Android, Windows Phone i
BlackBerry te macOS, Linux, Windows 8 i Windows 10 nativno podržavaju
Bluetooth Smart. Bluetooth Special Interest Group predviđa da će do 2018.
godine više od 90% pametnih telefona koji podržavaju Bluetooth tehnologiju
podržavati i Bluetooth Smart [1].
2.1 Oglašavanje i otkrivanje
BLE uređaji otkrivaju se pomoću procesa koji se temelji na emitiranju
paketa za oglašavanje (engl. advertising packets). Navedeni proces postiže
se koristeći 3 različita kanala (frekvencije) kako bi se izbjegle smetnje.
Uređaji koji emitiraju pakete te uređaji koji skeniraju iste, prolaze kroz 3
kanala u svakom koraku u nizu. To znači da u prosjeku postoji vjerojatnost
od 1 naprema 9 za uređaj koji skenira da otkrije paket za oglašavanje dok se
pokazalo da je vjerojatnost puno manja u praksi. Kao posljedica male
vjerojatnosti detektiranja paketa za oglašavanje, vrijeme potrebno da se
otkrije neki BLE uređaj vrlo je varijabilno i u prosjeku puno veće nego
frekvencija pri kojoj uređaji emitiraju pakete.
2.2 Softverski model
Svi Bluetooth Smart (BLE) uređaji koriste softverski model GATT
(engl. Generic Attribute Profile). Sučelje programiranja aplikacija (engl. API)
koje nudi operacijski sustav koji podržava Bluetooth Smart upravo se bazira
na konceptima GATT-a [1]. GATT koristi sljedeću terminologiju:
Klijent
- uređaj koji inicira GATT naredbe i zahtjeve, te prihvaća odgovore, npr.
pametni telefon
Poslužitelj
- uređaj koji prima GATT naredbe i zahtjeve, te vraća odgovore, npr.
BLE beacon
Svojstvo
- vrijednost podatka koji se šalje između klijenta i poslužitelja, npr.
razina napona baterije
Opisnik
- opisnik pruža dodatnu informaciju o svojstvu. Npr. vrijednost
temperature kao svojstvo prikazuje jedinicu u celzijusima, te
maksimalne i minimalne vrijednosti koje senzor mjeri. Opisnici nisu
obvezni – svako svojstvo može imati proizvoljni broj opisnika.
Servis
- kolekcija srodnih svojstava koja zajedno surađuju kako bi obavili
određenu funkciju. Npr. servis termometra koji sadrži svojstvo o
vrijednosti izmjerene temperature, te vremenski interval između
mjerenja
Identifikator
- servisi, svojstva i opisnici kolektivno se nazivaju atributima, a
identificiraju se pomoću UUID-a (engl. Universally unique identifier).
Na korisniku je da izabere nasumični UUID za svoje potrebe, ali tvrtka
Bluetooth SIG rezervirala je raspon UUID-a (u formi xxxxxxxx-0000-
1000-8000-00805F9B34FB) za standardne atribute. Zbog efikasnosti,
identifikatori su reprezentirani u obliku 16 bitnih ili 32 bitnih vrijednosti
u protokolu, umjesto 128 bitnih vrijednost potrebnih za reprezentaciju
cijelog UUID-a. Npr. atribut koji opisuje informacije o uređaju (eng.
Device Information) adresira se skraćenim kodom 0x180A, umjesto da
se piše puni UUID u obliku „0000180A-0000-1000-...“ .
GATT operacije
- GATT protokol nudi razne naredbe pomoću kojih klijent otkriva
informacije o poslužitelju. To uključuje:
Oktrivanje UUID-a za sve primarne uređaje
Pronađi servis s danim UUID-om
Pronađi sekunderne servise s danim primarnim servisom
Otkrij sva svojstva za dani servis
Nađi svojstva koja odgovaraju danom UUID-u
Pročitaj sve opisnike za određeno svojstvo
Naredbe su također predviđene za čitanje (prijenos podataka od
poslužitelja prema klijentu) i pisanje (od klijenta prema poslužitelju)
vrijednosti svojstva:
vrijednost se može pročitati temeljem UUID-a svojstva ili preko
handle vrijednosti
operacije pisanja uvijek identificiraju svojstvo preko handle
vrijednosti, ali imaju mogućnost odabira jeli potreban odgovor
od poslužitelja ili ne
operacije 'Long read' i 'Long write' koriste se u slučaju kada je
veličina vrijednosti svojstva podataka veća od MTU-a (eng.
Maximum transmission unit) radio veze
GATT također pruža funkcionalnost notifikacija (eng. notifications) i
indikacija (eng. indications). Klijent može napraviti zahtjev za
notifikacijom za određeno svojstvo od poslužitelja. Poslužitelj tada
može poslati traženu vrijednost klijentu svaki put kada to bude
moguće. Npr. senzor za temperaturu kao poslužitelj može obavijestiti
klijenta (npr. pametni telefon) svaki put nakon što obavi novo mjerenje.
Time se izbjegava potreba za klijentom da čeka (eng. poll) poslužitelja,
što bi zahtjevalo da poslužiteljska radio veza bude konstanto u
operativnom stanju.
2.3 Utjecaj na bateriju
Bluetooth Smart dizajniran je tako da omogućuje uređajima malu
potrošnju energije. Studija tvrtke koja se bavi softverom za bluetooth
beacone, Aislelabs, utvrdila je da uređaji kao što su beaconi koji mjere
udaljenost (eng. proximity beacons) , u prosjeku mogu nesmetano raditi u
vremenskom razmaku od 1 do 2 godine koristeći bateriju od 1,000 mAh. To
je izvedivo isključivo iz razloga što Bluetooth Smart tehnologija koristi
protokol koji odašilje malene pakete u odnosu na stariju Bluetooth Classic
tehnologiju koja također može slati i audio podatke zbog svoje visoke
podatkovne propusnosti. Važno je naglasiti da Android i iOS uređaji imaju
različite utjecaje na bateriju ovisno u kojem režimu skeniranja operiraju te
koliko je BLE uređaja u neposrednoj blizini. Razvojem novijih i modernijih
čipova te optimizacijom softvera, Android i iOS uređaji danas imaju
zanemarivu potrošnju energije u realnim scenarijima korištenja.
2.4 Tehničke specifikacije BLE beacona
Bluetooth Smart tehnologija djeluje u istom rasponu spektra (2.400 –
2.4835 GHz ISM band) kao i klasična Bluetooth tehnologija, ali koristi drugi
skup kanala. Umjesto 79 kanala koji rade na frekvenciji od 1 MHz, Bluetooth
Smart radi s 40 kanala pri frekvenciji od 2 MHz. Podaci se odašilju koristeći
Gaussovu frekvencijsku modulaciju (eng. Gaussian frequency shift
modulation), koja je slična načinu na koji se podaci odašilju kod klasične
Bluetooth tehnologije. Brzina slanja podataka je 1 Mbit/s dok je najjača snaga
emitiranja 10 mW. Bluetooth Smart koristi frekvencijsko poskakivanje (eng.
frequency hopping) za suzbijanje pojava smetnje. Usporedbu tehničkih
specifikacija između tehnologije Bluetooth Classic i Bluetooth Smart (BLE)
tehnologije možemo vidjeti u Tablica 1.
Tehnička
specifikacija
Klasična Bluetooth
tehnologija
Bluetooth Smart
tehnologija
Domet (teoretski
maksimum)
100 m >100 m
Brzina prijenosa u
zraku
1-3 Mbit/s 1Mbit/s – 2 Mbit/s
Sigurnost 56/128-bit te ovisno
o korisničkoj
definiciji u
aplikacijskom sloju
128-bit AES Counter Mode
CBC-MAC te ovisno o
korisničkoj definiciji u
aplikacijskom sloju
Latentnost 100 ms 6 ms
Minimalno vrijeme za
slanja podataka
100 ms 3 ms
Potrošnja energije 1 W 0.01-0.50 W (ovisno o
primjeni)
Maksimalna potrošnja
električne struje
<30 mA <15 mA
Tablica 1
3. Prikupljanje podataka o okupiranosti
Za prikupljanje podataka o okupiranosti korištena je tehnologija
Bluetooth Smart (BLE) na KontaktIO Bluetooth USB beaconima. Beaconi su
uređaji koji emitiraju Bluetooth signal u određenom vremenskom intervalu.
Navedeni beaconi izabrani su iz razloga što imaju konstantan izvor energije
preko USB sučelja zbog čega nemaju ograničenja u performansama, te
mogu slati maksimalan broj paketa u jedinici vremena radi veće preciznosti i
boljih rezultata. Oni pružaju aplikacijama informacije o svojoj lokaciji u
lokalnom okruženju te ovisno o svojoj konfiguraciji mogu se koristiti u raznim
primjenama poput:
navigacije u zatvorenom prostoru (eng. indoor navigation),
praćenje imovine (eng. asset tracking),
praćenje zaposlenika (eng. employee tracking),
marketing temeljen na korisničkoj udaljenosti od beacona (eng.
proximity marketing).
3.1 Konfiguracija beacona
Konfiguracija Kontakt beacona obavlja se preko mobilne Android
aplikacije. Mjenjanjem željenih parametara za konfiguraciju, oni se također
ažuriraju na Cloud servisu, te se isto tako mogu promjeniti preko web
aplikacije. Nakon odabira željenih parametara, podaci za konfiguraciju se
preko Bluetooth protokola zapisuju u sami beacon uređaj.
Signal koji se odašilje od strane beacona te prima od strane Android
uređaja ovisi o mnogo parametara. Razni predmeti i objekti, ljudi te razni
elektronički uređaji mogu dovesti do varijacija u primljenom signalu preko
kojeg se određuju podaci o okupiranosti, stoga je potrebno odabrati najbolju
moguću konfiguraciju.
Najvažniji parametar za konfiguraciju beacona je TX Power level,
odnosno snaga pri kojoj će se odašiljati signal. Bitno je napomenuti da
Blueooth signal može prolaziti kroz betonski zid, a za potrebe određivanja u
kojoj prostoriji se korisnik nalazi, pogotovo u slučaju da je prostorija malih
dimenzija (širina ili duljina <2 m) može doći do pogrešnih rezultata ako se
signali preklapaju kao što je ilustrirano na Slika 2, npr. ako korisnik koji je
ušao u prostoriju A dohvati signal iz susjedne sobe B u sustavu će se
registrirati da je korisnik istovremeno i u sobi A i u sobi B.
Slika 2. Preklapanje signala u prostoriji
U ovom slučaju za parametar TX Power level izabrana je vrijednost 0,
tj. jačina signala koju odašilje beacon je -30 dBm što bi značilo da je domet
signala koju emitira beacon oko 2 m. U Tablica 2 mogu se vidjeti ostale
vrijednosti parametra TX Power level koje su omogućene za konfiguraciju.
Za komunikacijski protokol izabran je Eddystone protokol koji je ujedno
i cross-platform što znači da ne radi samo na iOS i Android uređajima, već
na bilo kojem uređaju koji podržava komunikaciju s Bluetooth beaconima.
Kao što je navedeno prije u tekstu, beaconi šalju Bluetooth signale u
određenom vremenskom intervalu dok se komunikacijskim protokolom
opisuje format u kojem će se slati podaci preko signala. Eddystone paket
sastoji se od UUID-a, tj. identifikatora beacona, a kao dodatne parametre
može se zadati URL koji će se otvoriti na pametnom telefonu ili nekom
drugom Bluetooth uređaju prilikom primitka paketa, te parametar TLM u
kojem se mogu zapisati određeni podaci koje želimo poslati od strane
beacona.
Interval oglašavanja, tj. parametar advertising interval postavljen je na
vrijednost od 50 ms iz razloga kako bi se povećala vjerojatnost da klijent
(pametni telefon) dobije određeni paket, koji se iz prije obrazloženih razloga
može lagano izgubiti ovisno o radnoj okolini.
Hex vrijednost TX Power level Snaga transmisije
[dBm]
Domet [m]
E2 0 -30 dBm 2 m
EC 1 -20 dBm 4 m
F0 2 -16 dBm 10 m
F4 3 -12 dBm 20 m
F8 4 -8 dBm 30 m
FC 5 0 dBm 60 m
04 6 4 dBm 70 m
Tablica 2. snage transmisije i dometi za različite postavke TX Power level na BLE beaconu
3.2 Mobilna aplikacija
U okviru ovog rada implementirana je dodatna funkcionalnost
ENHEMS mobilne aplikacije zadužena za detekciju BLE beacona
postavljenih u prostorijama na 9. katu neboderske zgrade FER-a. Mobilna
aplikacija zasnovana je na operacijskom sustavu Android te je napisana u
programskom jeziku Java. Minimalna verzija Android operacijskog sustava
potrebna za pokretanje aplikacije je 4.1 Jelly Bean kako bi se aplikacija
mogla koristiti i na starijim uređajima.
Mobilna aplikacija radi sigurnosti zahtjeve prema poslužitelju šalje
preko protokola HTTPS (eng. HTTP over TLS/SSL), uključujući i podatke o
okupiranosti prostorija, što omogućuje sigurnu komunikaciju između klijenta i
poslužitelja.
3.2.1 Pozadinski servis mobilne aplikacije
Pozadinski servis (eng. Service) komponenta je sučelja za
programiranje aplikacija operacijskog sustava Android, te je ujedno zadužena
za prikupljanje podataka o BLE beaconima. Pozadinski servis namijenjen je
za obradu dugotrajnih operacija u pozadini operacijskog sustava, a poziva ga
određena aplikacija pozivom metode startService. U slučaju da se korisnik
odluči prebaciti na drugu aplikaciju, te ako je aplikacija ugašena od strane
korisnika ili ju operacijski sustav ugasi zbog manjka radne memorije,
pozadinski servis može neovisno nastaviti svoj rad [2]. Prilikom skeniranja
BLE beacona, pozadinski servis implementiran u ENHEMS mobilnoj aplikaciji
(BackgroundScanService) zadužen je za periodično skeniranje beacona, te
asinkronu komunikaciju sa poslužiteljem kojemu se šalju podaci. Između
aplikacije i navedenog servisa nema direktne komunikacije (osim tijekom
inicijalizacije), što omogućuje da se skeniranje beacona u pozadini odrađuje
neovisno o tome ako je aplikacija otvorena ili zatvorena.
3.2.2 BackgroundScanService
Prilikom pokretanja ENHEMS mobilne aplikacije, pokreće se
LoginActivity, što je zapravo početna aktivnost aplikacije koja omogućuje
korisnicima prijavu u sustav. Nakon unosa korisničkog imena i lozinke,
LoginActivity provjerava postoji li aktivni token u privatnoj memoriji aplikacije
koji je dodijeljen u slučaju da se korisnik ulogirao u sustav u vremenskom
razmaku od 24 sata. Na taj način korisnik ne mora svaki put unositi podatke
u slučaju da želi koristiti aplikaciju.
Nakon uspješne prijave u sustav, poziva se nova aktivnost
CurrentActivity koja prikazuje glavni ekran aplikacije. CurrentActivity se
prilikom svoje inicijalizacije spaja na poslužitelj HTTP protokolom, koji zatim
šalje upit prema bazi podataka o trenutno registriranim prostorijama kojima je
pridjeljen jedan BLE beacon. U slučaju da dođe do greške na poslužitelju ili
bazi podataka, odnosno ako aplikacija ne dobije nužne podatke kako bi znala
točno koje Bluetooth uređaje traži, BackgroundScanService neće se
pokrenuti i aplikacija će dalje nastaviti nesmetano s radom, ali dakako bez
mogućnosti skeniranja beacona. Ako se podaci uspiju dohvatiti, stvara se
nova instanca BakcgroundScanService-a koja tada započinje sa skeniranjem
BLE beacona u pozadini aplikacije. Na Slika 3 može se vidjeti CurrentActivity
kako u trenutku nakon inicijalizacije ispisuje na ekran poruku da su uspješno
dohvaćeni podaci o registriranim sobama i beaconima.
Slika 3. Poruka o uspješnom dohvatu BLE podataka
Nakon pokretanja BackgroundScanService-a, instancira se primjerak
razreda ProximityManager koji je zadužen za konfiguraciju parametara za
skeniranje Bluetooth uređaja. BLE tehnologija nudi dvije predefinirane duljine
intervala za skeniranje. Prva je ranging koji pruža najveće performanse iz
razloga što je skeniranje cijelo vrijeme aktivno, ali time se gubi na efikasnosti
zbog veće potrošnje baterije. Drugi interval skeniranja zove se monitoring. U
tom režimu rada aktivno se skenira u periodu od 8 sekundi, te se zatim
zaustavlja skeniranje i čeka sljedećih 30 sekundi do sljedećeg aktivnog
perioda. ProximityManager konfiguriran je na način da skenira u monitoring
režimu zbog puno veće efikasnosti, tj. zbog značajno manje potrošnje
baterije. ProximityManager također nudi 3 parametra koja određuju snagu pri
kojoj će se izvršavati skeniranje. To su low_power, balanced i low_latency.
Prvi parametar obavlja skeniranje u režimu rada s najmanjom potrošnjom
energije, te je ujedno iz tog razloga izabran pošto je ušteda energije prioritet
tijekom dužih intervala skeniranja, dok ostala dva parametra konzumiraju
više energije, ali uz bolje performanse.
Nakon konfiguracije ProximityManager-a , potrebno mu je predati
implementaciju objekta EddystoneListener koji je pretplaćen na promjene
prilikom detekcije BLE beacona. EddystoneListener objekt mora
implementirati dvije metode nužne za detekciju. Prva metoda koja se poziva
kada je otkriven beacon zove se onEddystoneDiscovered. Naime ova
metoda se poziva samo nakon što je beacon prvi puta detektiran prilikom
ulaska u njegov domet signala. Metoda se može ponovno pozvati za pojedini
beacon samo u slučaju da je korisnik izašao iz dometa signala beacona, tj.
nakon poziva druge metode potrebne za implementaciju onEddystoneLost,
koja se poziva nakon što korisnik izađe iz dometa signala beacona. Pri
svakom pozivu navedenih metoda, asinkrono se uspostavlja veza sa
poslužiteljem, te se šalju podaci o okupiranosti pojedinog korisnika u JSON
formatu koji će biti opisan kasnije u tekstu.
U slučaju da se ENHEMS mobilna aplikacija ugasi, ili je automatski
ugašena od strane operacijskog sustava, pozadinski servis za skeniranje
beacona nastaviti će nesmetano skenirati u pozadini. Naime ako korisnik
odluči zaustaviti pozadinsko skeniranje, to je moguće preko tzv. application
drawer-a koji se nalazi u odjeljku za obavijesti (eng. notification bar) grafičkog
sučelja. Tijekom cijelog životnog ciklusa BackgroundScanService-a može se
vidjeti poruka o aktivnom skeniranju, te se isto tako može prekinuti skeniranje
u bilo kojem trenutku pritiskom gumba kao što je prikazano na Slika 4.
Obavijest o aktivnom skeniranjuSlika 4 .
Slika 4. Obavijest o aktivnom skeniranju
4. Poslužitelj
Zadatak poslužitelja je obraditi zahtjeve koji se šalju preko mobilne
aplikacije, tj. nakon obrade podatke o okupiranosti spremiti u bazu podataka.
Poslužiteljski servis radi na Apache Tomcat poslužitelju te koristi Java Servlet
tehnologiju za obrađivanje zahtjeva.
Kada korisnik uključi svoju mobilnu aplikaciju, radi se upit prema
poslužitelju kako bi se dohvatile sve prostorije u kojima su postavljeni
beaconi, na taj način mobilna aplikacija zna koje Bluetooth uređaje treba
tražiti. Navedeni upit mapiran je na tzv. InitServlet. InitServlet posebna je
implementacija razreda Servlet, a njegova zadaća je da na HTTP GET upit
mobilne aplikacije, uspostavi vezu s bazom podataka, te iz tablice
ble_location (Slika 5) izvuče informacije o svim beaconima pridjeljenim
pojedinim prostorijama koje će mobilna aplikacija pretraživati. Nakon što
InitServlet dobije željene podatke, oni se pretvaraju u JSON (eng. JavaScript
Object Notation) String, te se vraćaju u HTTP odgovoru mobilnoj aplikaciji.
Slika 5. Tablica u bazi podataka ble_location
U trenutku kada mobilna aplikacija detektira BLE beacon ili izgubi vezu
s istim, mobilna aplikacija šalje HTTP POST zahtjev kako bi se podatak o
trenutnoj okupiranosti upisao u bazu podataka. Podatak je formatiran u
JSON formatu na način da se registrira trenutno vrijeme u kojem je došlo do
detekcije beacona, zatim u kojoj sobi je došlo do detekcije, status sobe
(korisnik je ušao ili izašao), te ID korisnika i beacona. U slučaju kada mobilna
aplikacija detektira beacon, u tablicu user_location u polje ble_status upisuje
se '1', dok u slučaju kada se izgubi signal od pojedinog beacona koji je
zadnji put oktriven, upisuje se '0'. Servlet zadužen za upisivanje navedenih
podataka u bazu zove se InsertBLEServlet. Format tablice s upisanim
podacima može se vidjeti na Slika 6.
Slika 6. Tablica u bazi podataka user_location
5. Predviđanje okupiranosti
Kako bi se što bolje povećala energetska učinkovitost zgrada, u ovom
radu razvijena je funkcionalnost generiranja ispitnih podataka okupiranosti
prostorija, čime se tvori dovoljan skup podataka za korištenje prilikom učenja
neuronske mreže za predviđanje okupiranosti.
5.1 Generiranje podataka
Ulazne varijable za neuronsku mrežu najviše se odnose na vrijeme u
kojem je korisnik prisutan u nekoj prostoriji. To se većinom odnosi na dan i
sat za koje se predviđa stanje okupiranosti. Drugi parametri koji su se koristili
kao ulazni podaci su identifikatori pojedine prostorije, te identifikator
pojedinog korisnika.
Prva ulazna varijabla, dan u tjednu, koristi se kako bi se moglo
napraviti predviđanje za pojedine dane u tjednu. Očekuje se da stanje
okupiranosti ovisi od dana do dana za pojedinog korisnika, te se uključuje
kao ulazni parametar kako bi klasifikator korišten za predikciju mogao postići
bolji rezultat. Dan u tjednu određen je cjelobrojnim brojem na intervalu [0,6],
gdje 0 označava ponedjeljak, a 6 nedjelju. Druga ulazna varijabla broj je sati,
koristi se kako bi se moglo u određenom vremenu tijekom dana odretiti stanje
okupiranosti u prostoriji, dok su preostala dva parametra identifikatori za
korisnika i prostoriju, potrebni kako bi mogli identificirati koji korisnik se nalazi
u određenoj prostoriji.
Prilikom generiranja podataka, uzeo se vremenski interval od dva
tjedna. Zatim se za svakog korisnika odredila vjerojatnost da se nalazi u
prostoriji u određenom vremenu koje se generira prema Gaussovoj razdiobi
kako bi se dobili što realniji podaci. Na navedeni način simuliralo se vrijeme
dolaska korisnika u prostoriju, te isto tako odlazak u vremenskom intervalu za
koji se vjeruje da se korsnik ne nalazi u sobi. U Tablica 3 prikazan je opis
ulaznih podataka za neuronsku mrežu.
Varijabla Tip varijable Kratki opis
Dan u tjednu Cjelobrojna Redni broj dana u
tjednu
Vrijeme Cjelobrojna Vrijeme u satima
ID Korisnika Cjelobrojna Identifikator korisnika
ID Prostorije Cjelobrojna Identifikator prostorije
Tablica 3. Opis ulaznih podataka
5.2 Neuronske mreže
Izabrani pristup za predviđanje okupiranosti prostorija neuronske su
mreže. One su se pokazale kao dobra metoda zbog lakog učenja zavisnosti
između ulaznih varijabli. Neuronska mreža sastoji se od neurona koji su
međusobno povezani, te na svojem ulazu primaju jedan ili više ulaza koje na
određeni način zbrajaju kako bi se dobio izlaz (tj. aktivacija). Obično se broj
svih ulaza ponderira, te se zbroj predaje nelinearnoj funkciji koja se zove
aktivacijska funkcija. Neuronske mreže podijeljene su na slojeve koji se
mogu razvrstati kroz 3 osnovna oblika: ulazni sloj, skriveni sloj (sastoji se od
jednog ili više slojeva) te izlazni sloj. Najčešće korištene mreže su
unaprijedne neuronske mreže (engl. feed-forward neural networks) kao npr.
višeslojni perceptron (engl. Multilayer Perceptron) te neuronske mreže s
radijalnim baznim funkcijama (engl. Radial Basis Function Network).
Prednost neuronskih mreža mogućnost je nelinearnog modeliranja
zavisnosti između ulaznih varijabli. U ovom radu predviđanje okupiranosti
neuronskom mrežom može se prikazati sljedećim izrazom koju koristi
višeslojni perceptron:
𝑓(𝑥) = 𝑊2𝑔(𝑊1𝑇𝑥 + 𝑏1) + 𝑏2
gdje 𝑓 predstavlja funkciju koju uči klasifikator za svaki neuron u skrivenom
sloju gdje su 𝑊1 ∈ 𝑅𝑚 i 𝑊2, 𝑏1, 𝑏2 ∈ 𝑅 parametri modela. 𝑊1 predstavlja
težinu ulaznog sloja, a 𝑊2 predstavlja težinu skrivenog sloja, dok 𝑏1
predstavlja pristranost koja se dodaje skrivenom sloju mreže, a 𝑏2 pristranost
koja se dodaje izlaznom sloju.
𝑔(∙): 𝑅 → 𝑅 je aktivacijska funkcija, tj. funkcija tangens hiperbolni:
𝑔(𝑧) = 𝑒𝑧 − 𝑒−𝑧
𝑒𝑧 + 𝑒−𝑧
Za funkciju gubitka (engl. loss function) klasifikator koristi sljedeći izraz:
𝑔𝑢𝑏𝑖𝑡𝑎𝑘(𝑦, �̂�, 𝑊) = −𝑦𝑙𝑛(�̂�) − (1 − 𝑦) ln(1 − �̂�) + 𝛼 ||𝑊||22
gdje je 𝛼 ||𝑊||22 član L2-regularizacije ili kazna (engl. penalty), koji kažnjava
kompleksne modele gdje je 𝛼 > 0 nenegativni hiperparametar koji kontrolira
veličinu kazne.
Počevši od nasumičnih težina, višeslojni perceptron minimizira funkciju
gubitka tako što uzastopno ažurira navedene težine. Nakon što se izračuna
gubitak, on se propagira unazad (engl. backpropagation) od izlaznog sloja do
prethodnih slojeva, te se svakom težinskom parametru ažurira vrijednost
kako bi se smanjio gubitak. Pomoću gradijentnog spusta (engl. gradient
descent), računa se gradijent ∇𝑔𝑢𝑏𝑖𝑡𝑎𝑘𝑊 s obzirom na težine, te se odbija
od 𝑊. To možemo opisati izrazom:
𝑊𝑖+1 = 𝑊𝑖 − 𝜖∇𝑔𝑢𝑏𝑖𝑡𝑎𝑘𝑤𝑖
gdje 𝑖 predstavlja korak u iteraciji, a 𝜖 stopu učenja koja ima vrijednost veću
od 0. Nakon određenog broja iteracija, algoritam se zaustavlja [6].
5.2.1. Unakrsna provjera
Kako ne bi došlo do prenaučenosti li podnaučenosti modela
neuronske mreže koristi se metoda pod imenom unakrsna provjera (engl.
cross-validation). Kod unakrsne provjere skup ulaznih podataka razdvaja se
na dva djela: skup za učenje (engl. training set) i skup za provjeru (engl.
validation set). Model se uči na skupu za učenje, a njegovu generalizacijsku
sposobnost provjeravamo na skupu za provjeru. Budući da klasifikator nije
učen na primjerima iz skupa za provjeru, na ovaj način može se vrlo dobro
procijeniti kako će se klasifikator ponašati na neviđenim primjerima. Što se
bolje klasificira hipoteza sa primjerima iz skupa za provjeru, to će biti bolja
generalizacijska sposobnost, odnosno lakše ćemo predvidjeti slične primjere
koje mreža još nije vidjela. Pogreška hipoteze mjerena na skupu koji nije
korišten za učenje (engl.off- training-set error) zove se pogreška
generalizacije [5].
5.2.2. Optimizacija modela
Za optimizaciju modela koristio se algoritam pod imenom Adam što
dolazi od Adaptive Moments Estimation. Baziran je na stohastičkom
optimizatoru gradijenta prvog reda što omogućuje algoritmu malu potrošnju
memorije i efikasno izvršavanje. Navedeni algoritam prati uprosječno
kretanje gradijenta i kvadrata gradijenta uz eksponencijalno zaboravljanje [7].
Korekcija se radi prema uprosječenom gradijentu, a ne izračunatom (tj. efekt
momenta). U nastavku može se vidjeti pseudokod algoritma [4].
1. Algoritam Adam
1. Osiguraj: Korak veličine 휀 (predložena zadana vrijednost: 0.001)
2. Osiguraj: Eksponencijalne stope propadanja za procjene momenta, 𝜌1 𝑖 𝜌2 na
intervalu [0,1). (predložene zadane vrijednosti: 0.9 i 0.999 respektabilno)
3. Osiguraj : Mala konstanta 𝛿 korištena za numeričku stabilizaciju (predložena zadana
vrijednost 10−8)
4. Inicijaliziraj parametre 𝜽
Inicijaliziraj prvu i drugu varijablu momenta s = 0, r = 0
Inicijaliziraj vremenski korak t = 0
ponavljaj dok nije dostignut uvjet zaustavljanja
Uzmi mali skup uzoraka od m uzoraka iz skupa za učenje {𝒙(𝟏), … , 𝒙(𝒎)} s
odgovarajućim izlazom 𝒚(𝒊).
Izračunaj gradijent: 𝒈
← 𝟏
𝒎 𝛁 𝜽 ∑ 𝑳(𝒇(𝒙(𝒊); 𝜽), 𝒚(𝒊) )𝒊
𝒕
← 𝒕 + 𝟏
Ažuriraj pristranu procjenu prvog momenta: 𝒔
← 𝝆𝟏𝒔 + (𝟏 − 𝝆𝟏)𝒈
Ažuriraj pristranu procjenu drugog momenta: 𝒓
← 𝝆𝟐𝒓 + (𝟏 − 𝝆𝟐)𝒈ʘ𝒈
Ispravi pristranost u prvom momentu: 𝒔 ̂
← 𝒔
𝟏−𝝆𝟏𝒕
Ispravi pristranost u drugom momentu: : 𝒓 ̂
← 𝒓
𝟏−𝝆𝟐𝒕
Izračunaj ažurirane parametre: ∆𝜽 = −𝝐 �̂�
√𝒓 ̂+ 𝜹
Primjeni ažurirane parametre: 𝜽
← 𝜽 + ∆𝜽
završi petlju
Kako bi se dobila što manja pogreška na skupu podataka za
validaciju,tj. kako bi predviđanja bila što točnija, potrebno je optimizirati tzv.
hiperparametre. Prilikom optimizacije hiperparametara, kao skup podataka
za učenje koristilo se 80% ulaznih podataka, dok se skup podataka za
validaciju sastojao od 20% ulaznih podataka. Budući da ne postoji primjeren
način kako izabrati hiperparametre, pogotovo kod složenijih sustava,
koristimo iscrpno traženje parametara iteriranjem kroz sve parametre, dok se
ne pronađe najmanja pogreška predikcije na skupu podataka za validaciju.
Na Slika može se vidjeti dio ispisa prilikom traženja hiperparametara, te na
kraju izabrane parametre za koje se dobio najbolji rezultat, tj. gdje je
pogreška na skupu za validaciju minimalna.
Slika 7. Traženje hiperparametara
Nakon optimizacije hiperparametara, dobivamo neuronsku mrežu
strukture koja koristi četiri ulazne varijable: dan u tjednu, broj sati,
identifikator korisnika i identifikator sobe. Izlaz neuronske mreže je '0' u
slučaju da se traženi korisnik ne nalazi u prostoriji, te '1' u slučaju da se
nalazi. Prilikom odabira hiperparametara, tražila se najmanja greška na
validacijskom skupu i najveća uspješnost koja se računa prema izrazu:
𝑢𝑠𝑝𝑗𝑒š𝑛𝑜𝑠𝑡(𝑦, �̂�) = 1
𝑛𝑢𝑧𝑜𝑟𝑎𝑘𝑎 ∑ 1(�̂�𝑖 = 𝑦𝑖)
𝑛𝑢𝑧𝑜𝑟𝑎𝑘𝑎− 1
𝑖=0
gdje je �̂�𝑖 uzorak izlaza iz predviđenog skupa, a 𝑦 uzorak izlaza iz skupa za
validaciju. Faktor učenja kod gradijentnog spusta 𝛼 određen je na vrijednost
od 10−6, dok je najbolje rezultate dala aktivacijska funkcija tangens
hiperbolni. Uspješnost neuronske mreže na validacijskom skupu je 96.53%.
5.3 Predviđanje okupiranosti prostorije
Nakon optimizacije hiperparametara, neuronska mreža sprema se na
disk kako bi se mogla kasnije koristiti za predviđanje. Prilikom generiranja
podataka izgeneriralo se 3 korisnika kojima je pridjeljena određena prostorija
s time da je najveća vjerojatnost da se nalaze u svojoj sobi u određenom
vremenu. Želimo li predvidjeti hoće li se neki korisnik u određenom vremenu
nalaziti u željenoj prostoriji, napravljena je jednostavna desktop aplikacija s
grafičkim sučeljem koja nam to omogućava. Potrebno je odabrati željene
ulazne podatke, što su ujedno ulazni podaci izgenerirane neuronske mreže.
U navedenom primjeru na Slika možemo vidjeti kako je aplikacija predvidjela
da se korisnik nalazi u sobi za navedeno vrijeme.
Slika 8. Aplikacija za predviđanje okupiranosti
6. Zaključak
Kako bi na što efikasniji i jednostavniji način smanjili energetsku
potrošnju zgrada, bitno je prepoznati tehnologije s kojima je to najlakše, te
najefikasnije napraviti. Bluetooth Low Energy pokazala se kao odlična
tehnologija za akviziciju podataka o okupiranosti prostorija za razliku od
standardne i zastarjele Bluetooth tehnologije, jer nudi značajno manju
potrošnju baterije i prisutna je na gotovo svim pametnim telefonima
današnjice. Bitno je naglasiti da je u opticaju i nova Bluetooth 5 tehnologija,
koja nudi još dvostruko brži prijenos podataka, i troši još manje energije od
trenutne Bluetooth Low Energy tehnologije, što znači da će se u skoroj
budućnosti Bluetooth beaconi moći koristiti sve više i efikasnije.
U ovom radu opisana je i implementirana funkcionalnost akvizicije
podataka korištenjem BLE tehnologije na Android mobilnim uređajima, te je
proširena poslužiteljska strana poslužitelja pokrenutog u sklopu ENHEMS-
Buildings projekta kako bi mobilna aplikacija mogla dohvaćati i spremati
podatke. Određenom konfiguracijom beacona, uključujući i odabir mjesta na
koje će se beaconi postaviti u prostoriji, mogu se dobiti precizne informacije o
okupiranosti prostorija tijekom dužeg vremenskog perioda.
Generiranjem podataka o okupiranosti pokušalo se na što realniji
način simulirati okupiranost korisnika u prostorijama neboderske zgrade
FER-a. U obzir su uzeta tipična vremena dolaska korisnika na radno mjesto,
okvirno vrijeme pauze, te vremena odlaska s radnog mjesta kako bi se
provjerila izvodljivost algoritma za predviđanje u realnim slučajevima.
Navedeni podaci zatim su korišteni za predviđanje okupiranosti pomoću
neuronskih mreža određenih struktura, te se pokazalo da su rezultati
predviđanja zadovoljavajući na vremenskoj bazi od jednog sata.
7. Literatura
[1] Bluetooth BLE 2017. www.bluetooth.com
[2] Android Activity and Service 2017. https://developer.android.com
[3] Load forecast of a university building for application in microgrid power
flow optimization. http://ieeexplore.ieee.org/document/6850579
[4] Diederik P.Kingma, Jimmy Lei Ba. Adam: A Method for Stochastic
Optimization
[5] Jan Šnajder, Bojana Dalbelo Bašić. Strojno učenje. 2014.
[6] Machine Learning in Python . http://scikit-learn.org
[7] Duboko učenje – Optimizacija parametara modela. Marko Čupić. 2016.
Predviđanje okupiranosti prostorije na temelju povijesnih podataka o
okupiranosti iz očitanja niskoenergetskog Bluetooth beacon sustava
Sažetak: Poznavanjem stanja okupiranosti prostorije te točnim
predviđanjem okupiranosti značajno se može unaprijediti
energetska učinkovitost zgrada ukoliko se navedene
informacije koriste pri upravljanju sustavima grijanja i hlađenja
zgrada. U ovom radu realizirano je sakupljanje podataka o
okupiranosti u odabranim prostorijama 9. kata neboderske
zgrade FER-a na minutnoj rezoluciji u postojeću bazu podataka
za upravljanje sustavom grijanja i hlađenja, korištenjem
niskoenergetskog Bluetooth beacon sustava za akviziciju
navedenih podataka, te algoritam predviđanja okupiranosti
prostorije na temelju povijesnih podataka o okupiranosti,
korištenjem neuronskih mreža prikladne strukture.
Ključne riječi: bluetooth, android, ble, predviđanje okupiranosti prostora
Prediction of Room Occupancy Based on Historical Occupancy Data from
Readings of the Bluetooth Low Energy Beacon System
Abstract: With knowledge of room occupancy data, as well as correct
prediction of occupancy data, it is possible to greatly improve
energy efficiency of buildings if they are used for controlling
heating and cooling systems of the building. Implementation of
acquiring occupancy data for 9th floor of the FER's C-building
to existing database used for controlling heating and cooling
systems using Bluetooth Low Energy beacon system, as well
as algorithm for prediction of occupancy data using neural
networks of suitable structure can be found in this thesis.
Keywords: bluetooth, android, ble, prediction of room occupancy