=$95â1, 5$' eu 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5,...

49
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5563 UPRAVLJANJE STVARIMA PREKO USLUGA U OBLAKU ZA INTERNET STVARI Marta Posavec Zagreb, lipanj 2018.

Upload: others

Post on 22-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

ZAVRŠNI RAD br. 5563

UPRAVLJANJE STVARIMA PREKO

USLUGA U OBLAKU ZA INTERNET

STVARI

Marta Posavec

Zagreb, lipanj 2018.

Page 2: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

SVEUČILIŠTE U ZAGREBUFAKULTET ELEKTROTEHNIKE I RAČUNARSTVAODBOR ZA ZAVRŠNI RAD MODULA

Zagreb, 14. ožujka 2018.

ZAVRŠNI ZADATAK br. 5563

Pristupnik:Studij:Modul:

Marta Posavec (0036492119)RačunarstvoProgramsko inženjerstvo i informacijski sustavi

Zadatak: Upravljanje stvarima preko usluga u oblaku za Internet stvari

Opis zadatka:

Istražiti dostupne usluge u oblaku za Internet stvari i mogućnosti upravljanja stvarima koje one nude. Sobzirom na svojstva i dostupnost, odabrati jednu uslugu i primjerima ispitati rad s tom uslugom.Razmotriti i po mogućnosti ostvariti spajanje stvari na odabranu uslugu, pohranu podataka koje jestvar poslala prema usluzi u oblaku, upravljanja sa stvari korištenjem postavki i ostalih mogućnostikoje usluga u oblaku pruža.

Zadatak uručen pristupniku: 16. ožujka 2018.Rok za predaju rada: 15. lipnja 2018.

Predsjednik odbora zazavršni rad modula:

. Mentor:

Doc. dr. sc. Leonardo Jelenković

Djelovođa: Izv. prof. dr. sc. Ivica Botički

Doc. dr. sc. Mirjana Domazet-Lošo

Page 3: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx
Page 4: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

SADRŽAJ

1. UVOD .................................................................................................... 1

2. ARHITEKTURA INTERNETA STVARI ZASNOVANA NA USLUGAMA

U OBLAKU ........................................................................................... 2

2.1. Mreža uređaja ............................................................................. 2

2.2. Poveznik...................................................................................... 3

2.3. Usluge u oblaku ......................................................................... 4

3. SAMSUNG ARTIK ................................................................................ 6

3.1. Postavke uređaja u oblaku ........................................................ 6

3.2. Komunikacija uređaja s Artik uslugom u oblaku .................... 9

3.2.1. REST API ................................................................................. 9

3.2.2. WebSocket API ....................................................................... 9

3.3. Mogućnosti vezane za uređaje u Artik oblaku ....................... 10

4. PRIMJENA INTERNETA STVARI ...................................................... 14

4.1. Pametni domovi ....................................................................... 14

4.2. Nosive pametne stvari ............................................................. 15

4.3. Pametni gradovi ....................................................................... 15

4.4. Okoliš i vode ............................................................................. 16

4.5. Mjerenja..................................................................................... 16

4.6. Industrijska kontrola ................................................................ 17

4.7. Pametna vozila ......................................................................... 17

4.8. Sustavi za zdravstvo ................................................................ 18

4.9. Sustavi sigurnosti i kontrole hitnih stanja ............................. 19

4.10. Sustavi za trgovinu i opskrbni lanac ...................................... 19

4.11. Sustavi za poljoprivredu i uzgoj životinja .............................. 20

5. OSTVARENJE SUSTAVA .................................................................. 21

5.1. Slanje podataka sa senzora u Artik oblak preko poveznika . 21

Page 5: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

5.1.1. Pokretanje računala Raspberry Pi 3 Model B .................... 21

5.1.2. Povezivanje senzora ............................................................ 22

5.1.3. Ostvarenje programske podrške......................................... 26

5.1.4. Konačni rezultat eksperimenta ........................................... 30

5.2. Programska simulacija interakcije dvaju uređaja preko Artik

usluge u oblaku ........................................................................ 31

5.2.1. Programsko ostvarenje ........................................................ 32

5.2.2. Konačni rezultat eksperimenta ........................................... 36

6. ZAKLJUČAK....................................................................................... 39

7. LITERATURA...................................................................................... 40

Page 6: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

1

1. UVOD

Internet stvari (engl. Internet of Things – IoT) sustav je međusobno povezanih

pametnih uređaja i senzora diljem svijeta, a ujedno i jedno od najatraktivnijih

područja informatičke industrije današnjice. Pomoću sustava IoT, stvari koje

čovječanstvo svakodnevno koristi već stoljećima pretvaraju se u pametne uređaje

koji polako, ali sigurno, mijenjaju način života. Danas se sustav IoT koristi u području

zdravstva, kućanskim uređajima i građevinama, energetskim i proizvodnim tvrtkama

te prijevoznim sredstvima, a predviđa se da će do 2020. godine povezivati oko 26

do 28 milijardi pametnih stvari koje će pokrivati i mnoga druga područja, pa možda

čak i međusobno povezane stvarati cijele pametne gradove. U današnje je vrijeme

Internet, kao i mnoge sklopovske komponente i pametni uređaji, dostupan u gotovo

svim dijelovima svijeta, za povoljnu te konstantno padajuću cijenu, što otvara prostor

za eksponencijalni razvoj Interneta stvari.

Sustav Interneta stvari zahtijeva korištenje i upravljanje mnogim te ponekad

vrlo velikim podacima, što je gotovo nemoguće realizirati isključivo lokalnom

fizičkom memorijom. U tu se svrhu razvijaju sustavi IoT usluga u oblaku, koje uvelike

olakšavaju izradu IoT projekata te ih je svakim danom sve više. Obzirom na sve

veću popularnost područja Interneta stvari, odvija se velika marketinška borba za

poziciju najkvalitetnije platforme među tvrtkama proizvođačima usluga u oblaku,

među kojima su najveći Amazon, Google i Microsoft. Jedna od takvih platformi u

vlasništvu Samsunga jest Artik, koji nudi mnoge usluge i komponente potrebne za

izradu IoT projekata. Cilj ovog rada upravo je istražiti i prikazati usluge koje nudi

Samsung Artik u sklopu arhitekture Interneta stvari zasnovane na uslugama u

oblaku. Funkcionalnosti Artik usluge u oblaku bit će opisane u ovom radu te

prikazane kroz primjenu.

Page 7: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

2

2. ARHITEKTURA INTERNETA STVARI ZASNOVANA NA

USLUGAMA U OBLAKU

Donedavno su mnoge tvrtke računalnu opremu za pohranu podataka

kupovale te, nešto davnije, iznajmljivale od velikih korporacija, vlade ili sveučilišta.

Međutim, kako su podaci postajali sve veći, postajalo je sve neophodnije osmisliti

novi način pohrane podataka, konkretno, usluge u oblaku. Oblak je velika mreža

međusobno povezanih poslužitelja, koja pruža mnoge usluge, pomoću kojih se

procesi, umjesto na samom uređaju, izvode „na Internet vezi“. Neki jednostavni te

svima poznati primjeri usluga u oblaku jesu Google Drive, Dropbox te Spotify, koji

pružaju usluge u osobne svrhe, kao što su pohrana podataka te slušanje glazbe.

Budući da se u sklopu Interneta stvari obrađuju mnogi veliki podaci, upravo

usluge u oblaku igraju veliku ulogu za razvoj sustava IoT. Senzori prikupljaju velik

broj informacija, koje se spremaju u oblak, gdje se zatim obrađuju te se donose

odluke na temelju tih informacija. S obzirom da se često koriste stotine, pa čak i

tisuće senzora, bilo bi besmisleno na svaki od njih pohranjivati informacije koje

kasnije treba koristiti u međuovisnosti. Upotrebom usluga u oblaku, svaki od tih

senzora svoje prikupljene podatke pohranjuje u oblak, tako da se automatski mogu

koristiti i uspoređivati. Upravo se u oblaku nalazi „mozak“ većine IoT projekata, dok

uređaji i senzori služe samo za prikupljanje informacija i obavljanje akcija.

Ukoliko se postavlja pitanje je li korištenje usluga u oblaku neophodno za

razvoj IoT projekata, odgovor je ne. No u tom se slučaju mora uzeti u obzir znatno

povećanje budžeta. Osim što je povoljno, korištenje usluga u oblaku ima mnoge

druge prednosti, kao što su produljene trajanja baterije uređaja i senzora, plaćanje

samo potrebnih usluga (tzv. pay-as-you-go model), sposobnost prikupljanja velike

količine podataka te sposobnost da bilo kakav uređaj s mogućnošću povezivanja na

Internet postane „pametna stvar“ [1].

Arhitektura Interneta stvari zasnovana na uslugama u oblaku sastoji se od tri

osnovne komponente: mreže uređaja, poveznik (engl. gateway) te usluga u oblaku.

2.1. Mreža uređaja

Jedna od tri osnovne komponente arhitekture Interneta stvari bazirane na

uslugama u oblaku jest skup međusobno povezanih uređaja, koji pomoću senzora

Page 8: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

3

prikupljaju informacije te pomoću aktuatora obavljaju akcije u svojoj okolini, koji se

naziva bežičnom mrežom uređaja. Pojednostavljeno se može reći da ova

komponenta zapravo sadrži upravo te tzv. „stvari“ koje se cijelo vrijeme spominju

kroz izraz Internet stvari.

Obzirom da za međusobnu povezanost uređaja u mreži nije potrebna

kvalitetna i brza veza širokog dometa, u tu se svrhu mnoga sadašnja ostvarenja

oslanjaju na standard IEEE 802.15.4. Ovaj standard nudi takozvanu osobnu bežičnu

mrežu (engl. wireless personal area network – WPAN), koja pruža vezu na razini

fizičkog sloja te sloja podatkovne poveznice [2]. Veza koju definira standard IEEE

802.15.4 jest povoljna zbog svojih karakteristika, kao što su niska brzina prijenosa

podataka te mali domet [3].

Osim standarda IEEE 802.15.4., za povezivanje uređaja u mreži često se

koristi i Bluetooth koji koristi manje količine energije (engl. Bluetooth Low Energy –

BLE). Energetska učinkovitost BLE-a, koja dovodi i do dugotrajnijeg perioda

povezivanja, čini ga jednim od najpoželjnijih načina povezivanja u Internetu stvari

[9].

Na razini mrežnog sloja, povezanost uređaja unutar mreže najčešće se

realizira pomoću 6LoWPAN protokola (engl. IPv6 over Low power Wireless

Personal Area Networks protocol), koji je adaptacija Internet protokola verzije 6

(IPv6). Motivacija za stvaranje 6LoWPAN protokola bila je zamisao da bi svi, pa čak

i oni najslabiji te s ograničenim mogućnostima, uređaji trebali imati mogućnost

povezivanja na Internet, a time i sudjelovanja u Internetu stvari [4].

2.2. Poveznik

Komponenta arhitekture Interneta stvari zasnovane na uslugama u oblaku

koja povezuje ostale dvije komponente jest, kao što mu i samo ime govori, poveznik

(engl. gateway), koji može biti fizički uređaj ili program. Njegova je svrha prenijeti

podatke koje prikupljaju senzori iz mreže uređaja u oblak, te u suprotnom smjeru,

od oblaka prenijeti naredbu za obavljanje akcije do aktora.

U mnogim IoT sustavima, senzori prema oblaku ukupno šalju čak desetke

tisuća podataka u sekundi. U takvim slučajevima poveznik, osim što igra ulogu

privremenog spremnika podataka, također obavlja lokalno pretprocesiranje

informacija prije prosljeđivanja u oblak. Nakon analize i sažimanja primljenih

Page 9: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

4

podataka, poveznik prosljeđuje prema oblaku podatke minimalnog potrebnog

opsega, što može uvelike ubrzati prijenos i obradu podataka.

Nadalje, još jedna veoma korisna uloga poveznika u arhitekturi Interneta

stvari baziranoj na uslugama u oblaku jest osiguravanje sigurnosti prijenosa

podataka. Obzirom da poveznik prosljeđuje podatke u oba smjera, on ne samo da

sprječava gubljene podataka koji se prenose od senzora do oblaka, nego i štiti

uređaje iz mreže od zlonamjernih vanjskih napada [5].

2.3. Usluge u oblaku

Podaci prikupljeni od strane senzora, preko poveznika dolaze do oblaka, koji

je zapravo „mozak“ cijelog sustava Interneta stvari. Osim što se tamo pohranjuju,

ono što je zapravo značajnije, podaci se u oblaku obrađuju pomoću unaprijed

određenih algoritama za obradu podataka. U osnovi, tim se algoritmima generiraju

naredbe, koje se zatim šalju natrag do aktora u mreži, koji na temelju tih naredbi

obavljaju određene akcije.

IoT platforme za usluge u oblaku sastoje se od više dijelova, od kojih svaki

obavlja određenu skupinu zadaća. Sastavnica koju valja prvu spomenuti jest

poveznica prema vanjskim uređajima, odnosno prema povezniku. Zadaće te

sastavnice su primanje informacija od strane poveznika, kao i prosljeđivanje

informacija koje sadrže naredbe za aktore. Primljene informacije pohranjuju se u

bazu podataka oblaka, koja također predstavlja jedan od sastavnih dijelova

platforme.

Neke od važnijih usluga u oblaku jesu upravljanje uređajima, analitika te

procesiranje podataka u akcije. Upravljanje uređajima odnosi se na osiguravanje

ispravnog rada povezanih stvari, bez obzira na moguća ažuriranja programske

podrške i tome slično. Provođenje kompleksnih algoritama analize podataka i

strojnog učenja te izlučivanje zaključaka nad informacijama korištenjem prediktivne

analize svrstava se pod analitiku. Procesiranje podataka vrši se na temelju unaprijed

definiranih pravila, koja ovise o stanju ili događaju vezanom za stvar ili njenu okolinu,

što u konačnici dovodi do akcije koja se prosljeđuje do aktora.

Jedna od vanjskom korisniku zanimljivijih usluga koje nudi IoT platforma jest

vizualizacija. Važnost ove usluge korisniku jest mogućnost preglednog prikaza

raznih uzoraka, trendova te razvoja stanja i događaja, vezanih za određenu

Page 10: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

5

povezanu stvar ili više njih. Na posljetku, potrebna je sastavnica koja povezuje

različite protokole i tipove podataka u jednu smislenu programsku cjelinu te

omogućuje preciznu komunikaciju sa svim povezanim komponentama sustava [6].

Slika 2.1. Arhitektura Interneta stvari zasnovana na uslugama u oblaku [7]

Page 11: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

6

3. SAMSUNG ARTIK

Kao i mnoge druge velike tehnološke tvrtke, Samsung je također, relativno

nedavno, distribuirao svoju verziju platforme za IoT usluge u oblaku. Prema

Samsungu, ova tzv. end-to-end platforma u pravom smislu tog izraza nudi sve

komponente potrebne za ostvarenje IoT projekata. Točnije, Artik kao platforma za

Internet stvari, ujedinjuje sklopovlje, programsku podršku, usluge u oblaku,

sigurnost te partnere ekosustava [8]. Osim usluga u oblaku, Samsung nudi i svoje

vlastite poveznike koji su prilagođeni za jednostavno povezivanje s Artik uslugom u

oblaku.

Samsung je počeo s oblikovanjem sustava usluga u oblaku, koji bi omogućio

brz prijenos velikih količina podataka u stvarnom vremenu, u svrhu komunikacije

uređaja u području zdravstva i medicine. Taj se oblak, koji se tada zvao SAMI, već

duže vrijeme koristi za Samsungov sustav za praćenje zdravlja kroz rekreaciju,

prehranu i slično (engl. Samsung Health). Međutim, ubrzo se pokazalo da je taj

projekt na dobrom putu za ostvarenje i IoT projekata. Stoga je Samsung najavio

Artik sklopovske komponente, koje bi, između ostalog, omogućile povezivanje stvari

sa SAMI oblakom. Danas su sklopovske komponente Artika i SAMI usluge u oblaku,

koje su preimenovane u Artik usluge u oblaku, sjedinjene u platformu koja obuhvaća

sve potrebne komponente za Internet stvari te se naziva Artik [10].

Artik usluga u oblaku osmišljena je tako da može komunicirati s mnogim IoT

poslužiteljima te primati podatke za pohranu od uređaja treće strane. Takav je

pristup omogućen dopuštanjem razvojnim programerima da grade opise uređaja i

podataka, koji sadrže pravila i naredbe, iz temeljnih predložaka. Nakon što se

podaci poslani sa senzora pohrane u Artik oblak, na temelju njih se definirana

pravila i naredbe šalju od Artika k uređajima aktorima. Artik usluga u oblaku uvelike

će uštedjeti vrijeme razvojnih programera, obzirom da se zamoran posao analize i

upravljanja podacima prebacuje na platformu, koja je napravljena upravo da radi

ono što mnoge aplikacije zahtijevaju [11].

3.1. Postavke uređaja u oblaku

Za postavljanje uređaja kroz usluge u oblaku koje nudi Artik platforma,

potrebno je imati Artik račun, koji je besplatan. Nakon registracije, na poveznici

Page 12: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

7

https://developer.artik.cloud/ potrebno je stvoriti novi tip uređaja. Pri stvaranju novog

tipa uređaja, potrebno je unijeti naziv koji će se prikazivati te jedinstveni naziv tipa

uređaja (slika 3.1.).

Slika 3.1. Stvaranje novog tipa uređaja u Artik oblaku

Nakon što se stvori novi tip uređaja, potrebno je stvoriti manifest za taj tip

uređaja. Stvaranje manifesta uključuje definiranje podataka koje će oblak primati od

definiranog tipa uređaja te akcija koje će se iz oblaka slati k uređaju da ih obavi.

Manifest se može preuzeti u JSON obliku, a može se i ažurirati uvozom nove JSON

datoteke (slika 3.2.).

Slika 3.2. Manifest stvorenog tipa uređaja za projekt

Nakon stvaranja tipa uređaja i njegovog manifesta, potrebno je stvoriti novi

uređaj tog tipa, što se radi na poveznici https://my.artik.cloud/devices/new. Kod

stvaranja novog uređaja, prvi je korak odabir tipa uređaja (slika 3.3.).

Page 13: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

8

Slika 3.3. Odabir tipa uređaja pri stvaranju novog uređaja u Artik oblaku

Nakon odabira tipa uređaja, potrebno je unijeti ime uređaja i potvrditi unos.

Time je uređaj stvoren te se mogu pogledati njegovi podaci, prikazani na slici 3.4.,

pomoću kojih će se kasnije omogućiti povezivanje fizičkog uređaja s postavljenim

uređajem u Artik oblaku.

Slika 3.4. Pregled podataka o uređaju u Artik oblaku

Važan podatak za daljnji rad s postavljenim uređajem jest ID uređaja, koji se

može iščitati u podacima o uređaju, prikazanima na slici 3.4. Osim ID-ja uređaja,

bitan je i token uređaja, koji je potrebno generirati. Token uređaja generira se klikom

na „Generate Device Token…“, što je vidljivo na slici 3.4.

Page 14: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

9

3.2. Komunikacija uređaja s Artik uslugom u oblaku

Komunikacija uređaja s Artik uslugom u oblaku ostvaruje se korištenjem

jednog od dva aplikacijska programska sučelja (engl. Application Programming

Interface – API), REST API ili WebSocket API.

3.2.1. REST API

REST (engl. Representational State Transfer) API Artik usluge u oblaku

temelji se na protokolu HTTP (engl. HyperText Transfer Protocol), odnosno

njegovim zahtjevima GET, POST, PUT i DELETE. Komunikacija putem REST API

sučelja služi za razmjenu povijesnih, već pohranjenih podataka u oblaku na temelju

određene vremenske oznake (engl. timestamp) ili vremenskog intervala. Ovaj se

način komunikacije uglavnom koristi u analitičke svrhe. Također, putem REST API

sučelja moguće je poslati akcije u oblak na uređaj koji te akcije treba obaviti.

3.2.2. WebSocket API

Drugi način komunikacije uređaja s Artik uslugom u oblaku jest putem

WebSocket API sučelja. Takozvani prijenos uživo (engl. live-streaming) putem

WebSocket API sučelja, omogućava razmjenu podataka i akcija između uređaja i

oblaka u stvarnom vremenu (engl. real-time). Postoje tri vrste WebSocket-a koje se

koriste pri komunikaciji s Artik oblakom.

Prva od njih je Firehose WebSocket, koji koriste aplikacije koje služe za

kontrolu konekcije. Ova komunikacija je jednosmjerna te radi na principu

osluškivanja poruka u stvarnom vremenu. Primjer takve poruke je ping, koji Artik

usluga u oblaku šalje prema WebSocket klijentu svakih 30 sekundi radi kontrole

konekcije. Ukoliko ping ne pristigne klijentu, on se mora iznova povezati s oblakom.

Druga vrsta WebSocketa jest Event Feed WebSocket, koji služi za slanje

informacija o događajima vezanim za uređaje te također radi na principu

jednosmjerne komunikacije. Neki primjeri takvih događaja su stvaranje novog

uređaja, uspješno povezivanje uređaja, brisanje uređaja i slično.

Treća vrsta WebSocketa jest Device Channel WebSocket. Ovaj WebSocket,

za razliku od prethodna dva, služi za dvosmjernu komunikaciju između uređaja i

Artik oblaka. Pomoću njega izmjenjuju se poruke o registraciji, koja se mora obaviti

Page 15: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

10

nakon stvaranja konekcije, te sve ostale poruke koje sadrže mjerene podatke ili

akcije. Poruke se mogu izmjenjivati s Artik uslugom u oblaku ili s drugim uređajem,

ukoliko se u poruci šalju akcije. U slučaju slanja poruke drugom uređaju, potrebno

je definirati ID odredišnog uređaja u poruci [26].

3.3. Mogućnosti vezane za uređaje u Artik oblaku

Nakon postavljanja uređaja, postoje razne mogućnosti koje Artik nudi za rad

s tim uređajima. Na web stranici oblaka svakog pojedinog korisnika Artik usluge u

oblaku postoje kartice „Devices“, „Scenes“, „Rules“, „Charts“, „Data Logs“ te

„Exports“.

Na kartici „Devices“ mogu se vidjeti svi uređaji postavljeni od strane tog

korisnika te dodatni podaci o tim uređajima, moguće je poslati akciju na neki od tih

uređaja, ukoliko su akcije definirane manifestom tog uređaja, te stvoriti novi uređaj.

Opisane mogućnosti kartice „Devices“ prikazane su na slici 3.5.

Slika 3.5. Kartica „Devices“

Kartica „Scenes“, prikazana na slici 3.6., služi za rad sa scenama. Scene u

sklopu Artik usluge u oblaku zapravo su skupine akcija koje se šalju na jedan ili više

uređaja kad je ta scena aktivna. Definiranje scene zamjenjuje definiranje mnogih

kompleksnih pravila, koja će biti opisana kasnije, te time posao programera čini

puno jednostavnijim. Primjer korištenja scene jest kad osoba dođe kući, da se obave

akcije paljenja svjetala, postavljanje termostata na 22°C te otključavanje vrata. S

druge strane, kad osoba odlazi od kuće, potrebno je obaviti akcije gašenja svjetala,

postavljanja termostata na 18°C te zaključavanja vrata. Ovo su primjeri dvije scene,

koje upravljaju s tri uređaja odjednom, što je puno jednostavnije nego za svaki od

Page 16: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

11

tih uređaja definirati novo pravilo. Scene se aktiviraju slanjem HTTP zahtjeva POST

[27].

Slika 3.6. Kartica „Scenes“

Na kartici „Rules“, prikazanoj na slici 3.7., moguće je upravljati s maloprije

spomenutim pravilima. Pravila se u Artik oblaku definiraju u obliku ako vrijedi uvjet

vezan za polje nekog uređaja, onda pošalji akciju na uređaj. Uvjet i akcija ne moraju,

te najčešće i nisu vezani za isti uređaj. Također, u jednom je pravilu moguće

definirati više uvjeta te više akcija. „Ako je temperatura veća od 30°C, onda upali

klima uređaj“ je primjer pravila, u kojem je „temperatura“ polje uređaja termometar,

a „upali“ akcija manifesta klima uređaja. Razlika između pravila i scena jest način

aktiviranja, točnije, scene se aktiviraju putem HTTP zahtjeva te ne ovise o poljima

uređaja, dok se pravila aktiviraju upravo primitkom poruke s podacima koji

odgovaraju uvjetu pravila.

Slika 3.7. Kartica „Rules“

Page 17: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

12

Na kartici „Charts“ moguće je u grafičkom obliku pogledati stanje svih polja

postavljenih uređaja u ovisnosti o vremenu. Što se tiče vremenske trake, postoje

opcije za odabir točaka u vremenu početka i kraja intervala koji se želi pratiti, odabir

duljine vremenskog perioda za prikaz te ručnog zumiranja tog perioda. Pomoću ovih

opcija moguće je pogledati snimljene podatke za bilo koji vremenski interval i

vremensku točku. Sve opisane komponente kartice „Charts“ prikazane su na

slici 3.8.

Slika 3.8. Kartica „Charts“

Kartica „Data Logs“ služi za pregled svih primljenih poruka s podacima te

poslanih poruka s akcijama. Za svaku poruku s podacima moguće je vidjeti o kojem

se uređaju radi, točnu vremensku točku snimanja podataka te primanja podataka u

oblak te snimljene podatke, a za svaku poruku s akcijom moguće je vidjeti odredišni

te izvorišni uređaj, vremensku točku kad je poruka poslana, naziv akcije te

parametre akcije ukoliko postoje. Prikaz poruka moguće je filtrirati po datumu i

vremenu te odabirom uređaja za koji se žele pogledati poruke. Slika 3.9. prikazuje

listu poruka koje sadrže akcije na kartici „Data Logs“.

Page 18: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

13

Slika 3.9. Pregled poruka s akcijama na kartici „Data Logs“

Konačno, kartica „Exports“, prikazana na slici 3.10., služi za izvoz podataka

te pregled prošlih izvoza. Podaci se mogu izvesti u JSON ili CSV obliku. Moguće je

izvesti sve snimljene podatke, iz intervala od maksimalno 30 dana, sa svih uređaja

ili s odabranih tipova uređaja. Također, opcija za izvoz podataka postoji na

karticama „Charts“ te „Data Logs“.

Slika 3.10. Kartica „Exports“

Page 19: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

14

4. PRIMJENA INTERNETA STVARI

Internet stvari primjenjuje se svakim danom u sve više i više područja života

i svijeta. Primjeri stvari u sklopu Interneta stvari sežu od najosnovnijih stvari poput

pametnih olovki ili odjeće, pa sve do kompleksnih sustava kao što su čitavi pametni

gradovi [12]. Slika 4.1. grafički prikazuje popularnost različitih područja primjene

Interneta stvari.

Slika 4.1. Deset najpopularnijih područja primjene Interneta stvari [16]

4.1. Pametni domovi

Najraširenije, a ujedno i mnogima jedno od najatraktivnijih, područje primjene

Interneta stvari jest automatizacija kućanskih poslova i aktivnosti (slika 4.2.). Neke

primjene u ovom području su praćenje potrošnje vode i energije radi racionalizacije

resursa i smanjenja troškova, kontrola otvaranja vrata i prozora, kao sustav

sigurnosti te očuvanje umjetnina i dobara praćenjem u muzejima i skladištima

umjetnina. Najpopularnija primjena Interneta stvari u domovima jest daljinsko ili

glasovno upravljanje uređajima i prekidačima. Neki primjeri toga su zvučno

upravljanje osvjetljenjem, glasovno otvaranje ili zatvaranje vrata, upravljanje

uređajima preko mobilnih aplikacija i slično.

Page 20: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

15

Slika 4.2. Primjena Interneta stvari u domovima [13]

4.2. Nosive pametne stvari

Pametna odjeća i modni dodaci također su veoma popularna primjena

Interneta stvari. Danas je primjena Interneta stvari u ovom području dosta raširena

u obliku dodataka poput satova i narukvica, za što su primjeri svima dobro poznati

Samsung i Apple pametni satovi. Osim pametnih satova, često se mogu vidjeti i

pametne narukvice koje služe kao sredstvo plaćanja te ulaznice u mnogim

zabavnim parkovima, na festivalima i slično.

S druge strane, pametna odjeća nije još razvijena u svijetu kao što su pametni

modni dodaci, ali za budućnost se nagoviješta da će sva odjeća u sebi sadržavati

senzore koji će mjeriti tlak, puls, temperaturu tijela, potrošnju kalorija i mnoge druge

stvari.

4.3. Pametni gradovi

Jedna od najatraktivnijih primjena Interneta stvari jesu, općenito, pametni

gradovi (slika 4.3.). Unutar ove kategorije primjene Interneta stvari, mogu se izdvojiti

mnogi primjeri. Neki od njih su praćenje slobodnih parkirnih mjesta u gradu,

praćenje kvalitete strukture zgrada, mostova i drugih građevina, praćenje prometa

vozila i pješaka te izvanrednih situacija u prometu radi optimizacije puta, upravljanje

Page 21: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

16

uličnom rasvjetom obzirom na duljinu dana i osvjetljenje koje ovisi o Suncu i

oblacima te upravljanje otpadom i praćenje količine otpada radi optimizacije rute

komunalnih vozila.

Slika 4.3. Primjena Interneta stvari u pametnom gradu [15]

4.4. Okoliš i vode

Jedno od vrlo bitnih područja primjene Interneta stvari jest okoliš. U sustav

pametnog okoliša ubraja se detekcija šumskih požara, točnije, praćenje plinova

izgaranja i uvjeta za nastajanje požara u svrhu definiranja zona upozorenja. Zatim,

kontrola emisije stakleničkih i ostalih štetnih plinova, praćenje razine snijega u

preventivne svrhe, ali i svrhe skijaškog turizma, kontrola i sprječavanje lavina putem

praćenja vibracija, vlažnosti tla i gustoće zemlje te ranija detekcija potresa.

U područje okoliša mogu se ubrojiti i „pametne vode“. Primjena Interneta

stvari u vodama očituje se u praćenju kemijskih i otpadnih tvorničkih istjecanja u

rijeke i mora, kontroli razine zagađenja mora te praćenju razine vode. Također, kad

se govori o „pametnim vodama“, može se spomenuti i praćenje pitkosti gradske

vode iz slavine te daljinsko upravljanje uvjetima bazena.

4.5. Mjerenja

Mjerenje mnogih, ne tako jednostavno izmjerivih, fizičkih veličina danas se

obavlja primjenom Interneta stvari. Neki primjeri toga su praćenje i upravljanje

potrošnjom energije, mjerenje razine vode, ulja ili plinova u spremnicima i

Page 22: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

17

cisternama, mjerenje tlaka vode u sustavima za transport vode te mjerenje težine,

odnosno razine popunjenosti silosa.

4.6. Industrijska kontrola

Jedno od najraširenijih područja primjene Interneta stvari jest, svakako,

industrija. Unutar ovog područja mogu se nabrojati mnogi primjeri korištenja

Interneta stvari. Neki od njih su automatska dijagnostika strojeva i kontrola imovine,

praćenje razina toksičnih plinova i kisika unutar kemijskih postrojenja radi sigurnosti

radnika i robe, kontrola temperature unutar industrijskih i medicinskih hladnjaka i

zamrzivača u kojima se čuva osjetljiva roba, praćenje stanja ozona tijekom procesa

sušenja mesa u tvornicama hrane te automatska dijagnostika vozila, točnije, slanje

upozorenja u hitnim situacijama ili savjeta vozačima u stvarnom vremenu.

4.7. Pametna vozila

Iako još nije tako razvijeno kao neka druga područja, i pametna se vozila

razvijaju kao jedno od područja primjene Interneta stvari (slika 4.4.). Ovo funkcionira

na način da vozilo ima ugrađene senzore za praćenje prometa i stanja na cestama

te za komunikaciju s centrom za cestovnu kontrolu. Osim toga, vozilo ima i ugrađene

sustave za dijagnostiku

Slika 4.4. Primjena Interneta stvari u pametnim vozilima [14]

Page 23: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

18

4.8. Sustavi za zdravstvo

IoT zdravstvo može se podijeliti u dvije kategorije primjene: kliničke primjene

i daljinsko praćenje. Primjena Interneta stvari u klinikama u principu pomaže pri njezi

hospitaliziranih pacijenata koji zahtijevaju stalnu pažnju (slika 4.5.). Takvi sustavi u

bolnicama sadrže senzore za prikupljanje informacija o fiziološkom stanju pacijenta

koje se pohranjuju i obrađuju u oblaku te se bežično prosljeđuju liječnicima i

njegovateljima Svrha takvih kliničkih IoT sustava jest stalni protok informacija o

stanju pacijenta, koji zamjenjuje potrebu za stalnom prisutnošću njegovatelja.

Slika 4.5. Primjena Interneta stvari u klinikama [13]

S druge strane, sustavi za daljinsko praćenje, osim što koriste za trenutno

tretiranje osoba koje se ne nalaze u bolnici, također se koriste i za stalnu njegu i

nadziranje starijih, nemoćnih ili drugih potrebitih osoba (slika 4.6.). Neki primjeri toga

su detekcija padova te praćenje vitalnih znakova. Također, kad se govori o zdravlju

u sklopu Interneta stvari, valja spomenuti i sustave za mjerenje UV zračenja koji

upozoravaju na pažnju kod izlaganja Suncu.

Page 24: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

19

Slika 4.6. Primjena Interneta stvari u daljinskom praćenju zdravlja [13]

4.9. Sustavi sigurnosti i kontrole hitnih stanja

Još jedno, mnogima veoma zanimljivo, područje primjene Interneta stvari,

jesu sustavi sigurnosti i kontrole hitnih stanja. Kontrola pristupa ograničenim

područjima te otkrivanje osoba na područjima zabranjenog pristupa primjeri su

korištenja Interneta stvari u svrhe sigurnosnih sustava. Što se tiče sustava za

otkrivanje i kontrolu hitnih stanja, neki od primjera su mjerenje razina zračenja u

okolici nuklearnih elektrana radi detekcije curenja te mjerenje razina eksplozivnih i

opasnih plinova u industrijskim sredinama te u rudnicima.

4.10. Sustavi za trgovinu i opskrbni lanac

Trgovački sektor svima je dobro poznato područje, a ujedno i jedno od

područja primjene Interneta stvari. U sustav pametne trgovine mogu se ubrojiti

praćenje stanja skladišta i proizvoda duž opskrbnog lanca te obrada plaćanja koja

se temelji na lokaciji ili vremenskom intervalu, što se koristi u sustavima javnog

prijevoza, teretana, tematskih parkova i slično. Također postoje pametne aplikacije

koje prilagođavaju izbor proizvoda kupcu analizom njegovih navika, preferencija i

alergijskih sastojaka ili obzirom na rok trajanja te pametno upravljanje proizvodima

kontrolom rotacije proizvoda na policama te u skladištima u svrhu automatizacije

procesa punjenja.

Page 25: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

20

Što se tiče opskrbnog lanca, kao primjeri korištenja Interneta stvari, valja

spomenuti lociranje individualnih predmeta na velikim područjima kao što su

skladišta ili luke te kontrola nekompatibilne robe, točnije, sustav upozorenja u

slučajevima skladišta u kojima je skladištena i lako zapaljiva i eksplozivna roba. Što

se tiče prijevoza robe, Internet stvari služi u svrhe kontrole ruta pri prijevozu

osjetljivih proizvoda poput lijekova, dragulja, novca ili nekih opasnih predmeta.

4.11. Sustavi za poljoprivredu i uzgoj životinja

Jedno od širokih područja primjene Interneta stvari jest poljoprivreda. U

sustave pametne poljoprivrede mogu se ubrojiti praćenje vlažnosti tla i promjera

debla u vinogradima radi kontrole kvalitete vina, kontrola mikroklime u staklenicima

radi optimizacije uvjeta za proizvodnju voća i povrća, selektivno navodnjavanje

suhih zelenih površina radi smanjenja potrošnje vode, praćenje meteoroloških

uvjeta u poljima radi osiguranja od nepogodnih uvjeta te praćenje vlažnosti i

temperature u raznim biljkama ili sjenu radi sprječavanja razvoja gljivica ili drugih

zaraznih mikroorganizama.

Kao i u poljoprivredi, Internet stvari koristi se i pri uzgoju životinja. Neki

primjeri toga su kontrola uvjeta rasta i razvoja mladunčeta životinja kako bi se

osiguralo njihovo zdravlje, lociranje i identifikacija životinja kada su puštene na

velike otvorene prostore, poput pašnjaka, ili u velikim štalama te kontrola ventilacije

i kvalitete zraka na farmama i otkrivanje štetnih plinova iz izmeta.

Page 26: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

21

5. OSTVARENJE SUSTAVA

Dio mogućnosti koje nudi Samsung Artik za izradu IoT projekata bit će

prikazan kroz ostvarenje dvaju primjera. Prvi primjer izveden je pomoću senzora

DHT11, koji mjeri temperaturu i vlažnost te senzora BMP180, koji mjeri tlak zraka,

računala Raspberry Pi 3 Model B kao poveznika u sustavu te Artik platforme za

usluge u oblaku. Ovim se primjerom demonstrira slanje podataka sa senzora u

oblak, preko poveznika.

Drugi je primjer programska simulacija interakcije uređaja, odnosno pametnih

stvari, s Artik uslugom u oblaku. Stoga u ovom primjeru ne sudjeluju fizički senzori,

stvari niti poveznik, već se njihove uloge realiziraju programskom simulacijom. IoT

sustav koji se demonstrira ovim primjerom sastoji se od mikrofona, putem kojeg se

daju naredbe i pametnih vrata, kojima se upravlja naredbama poslanih od strane

mikrofona. Cilj ovog primjera jest demonstracija obostrane interakcije uređaja i Artik

usluge u oblaku.

5.1. Slanje podataka sa senzora u Artik oblak preko poveznika

Prvi primjer ostvarenja sustava korištenjem Artik usluge u oblaku sastoji se

od slanja podataka o temperaturi, vlažnosti i tlaku zraka sa senzora, preko računala

Raspberry Pi, pa do Artik oblaka. Za ostvarenje ovog projekta potrebno je postaviti

uređaj u oblaku, postupkom opisanim u poglavlju 3.1. Za svrhe ovog primjera,

manifest koji opisuje postavljeni uređaj sadrži tri polja te ne sadrži akcije koje bi se

slale iz oblaka prema stvari. Polja manifesta su temperatura zraka, čija je mjerna

jedinica stupanj Celzijus, vlažnost zraka, koja se mjeri u postotcima, te tlak zraka,

čija je mjerna jedinica Pascal. Sva tri polja su u obliku decimalnog broja, odnosno

tipa podataka Double.

5.1.1. Pokretanje računala Raspberry Pi 3 Model B

Jedan od najpopularnijih uređaja koji se koriste kao poveznici u arhitekturi

Interneta stvari zasnovanoj na uslugama u oblaku jest takozvano računalo na jednoj

ploči (engl. single-board computer), Raspberry Pi. Najnoviji model računala

Raspberry Pi jest Raspberry Pi 3 Model B+, a u ovom se radu koristi model

Raspberry Pi 3 Model B, prikazan na slici 5.5. Ovaj model koristi procesor Quad

Page 27: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

22

Core 1.2GHz Broadcom BCM2837 64bit, ima RAM veličine 1GB, podržava WiFI,

Bluetooth Low Energy te 100 Mbit/s Ethernet, sadrži prošireni ulaz/izlaz opće

namjene (engl. General-Purpose Input/Output – GPIO) od 40 pinova, 4 USB 2 utora,

HDMI utor i utor za Micro SD memorijsku karticu te neka druga sučelja.

Slika 5.5. Raspberry Pi 3 Model B – komponente i specifikacije [17]

Drugi korak izrade ovog projekta bio je pokrenuti poveznik sustava,

Raspberry Pi. Za to je, osim samog računala, potrebna Micro SD memorijska

kartica, Micro USB izvor struje, USB tipkovnica, USB miš, monitor te HDMI kabel.

Nakon povezivanja svih navedenih komponenti i pokretanja strujnog kruga,

instalacija operacijskog sustava Raspbian 9 se automatski pokreće. Ovaj

operacijski sustav dolazi s programskim jezicima Python 2.x, Python 3.x, Node.js,

Java, Scratch i još nekima.

5.1.2. Povezivanje senzora

U ovom se projektu koriste dva senzora, DHT11 te BMP180. Oba senzora

spadaju među jeftinije i manje preciznije senzore, prilagođene za privatne uporabe

i jednostavne eksperimente poput ovog. Senzori se vrlo jednostavno preko

eksperimentalne pločice povezuju na pinove proširenog GPIO-a računala

Raspberry Pi, koje su prikazane na slici 5.6. Upravo ih njihova povoljnost te

Page 28: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

23

jednostavnost korištenja čine vrlo popularnima među programerima koji razvijaju

IoT projekte.

Slika 5.6. Pinovi proširenog GPIO-a Raspberry Pi 3 Model B računala [18]

5.1.2.1. Senzor DHT11

DHT11 je digitalni senzor koji proizvodi ispravljeni digitalni signal temperature

te vlažnosti zraka. Senzor ima negativni temperaturni koeficijent (engl. Negative

Temperature Coefficient - NTC) za mjerenje temperature te 8-bitni mikrokontroler

za generiranje vrijednosti temperature i vlažnosti kao serijskih podataka [20]. Senzor

mjeri temperaturu na intervalu vrijednosti od 0°C do 50°C, s preciznošću od ±2°C,

a vlažnost mjeri u rasponu od 20% do 80%, s preciznošću od 5%. Također,

proizvođači napominju kako se intervali očitanja mjerenja moraju ograničiti na

barem svake dvije sekunde, jer bi u suprotnom moglo doći do pogrešnog očitanja

[21].

Page 29: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

24

Senzor DHT11 ima četiri pina, ali se jedan od njih ne koristi. Senzor se može

nabaviti u izvornom obliku ili kao dio sklopa s tri pina (slika 5.7.). Pinovi senzora

DHT11 koje se koriste su pin za napajanje (VCC (+)), pin za izvor signala podataka

te pin za uzemljenje. U ovom se projektu senzor koristi u izvornom obliku, odnosno

s četiri pina.

Slika 5.7. Senzor DHT11 u sklopu modula s tri pina te u izvornom obliku [19]

U slučaju korištenja senzora DHT11 u izvornom obliku, između pina za

napajanje i pina za izvor signala podataka potrebno je spojiti otpornik od 10kΩ, dok

je na sklopu s tri pina taj otpornik već spojen. Način na koji su pinovi senzora DHT11

povezani s pinovima računala Raspberry Pi 3 u ovom eksperimentu prikazan je

tablicom 5.1 te shemom na slici 5.8.

Tablica 5.1. Način povezivanja pinova senzora DHT11 s pinovima računala Raspberry Pi

Pin senzora DHT11 Pin računala Raspberry Pi 3

1 (napajanje - VCC (+)) 2 (izvor od 5V)

2 (izvor signala podataka) 7 (GPIO 4)

3 (ne koristi se) -

4 (uzemljenje (-)) 6 (uzemljenje)

Page 30: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

25

Slika 5.8. Shema povezivanja senzora DHT11 s računalom Raspberry Pi 3 [19]

5.1.2.2. Senzor BMP180

Senzor BMP180 jedan je od najboljih izbora među povoljnim senzorima za

relativno precizno mjerenje tlaka i temperature (slika 5.9.). Pomoću činjenice da se

tlak zraka mijenja promjenom nadmorske visine, senzor BMP180, osim temperature

i tlaka, mjeri i nadmorsku visinu. Obzirom da se u svrhe mjerenja temperature u

ovom projektu koristi senzor DHT11, od podataka koje mjeri senzor BPM180 koristi

se samo tlak zraka. Senzor BMP180, proizveden od strane Boscha, nasljednik je

senzora BMP085 te ima ista programska svojstva, što programerima uvelike

olakšava prilagodbu sa senzora BMP085 na BMP180. Senzor se nalazi na tiskanoj

pločici s regulatorom od 3.3V, I2C mjenjačem razina te otpornicima na I2C pinovima.

Za komunikaciju ovog senzora s računalom Raspberry Pi koristi se I2C sabirnica.,

koja se uvelike koristi za povezivanje integriranih krugova manjih brzina s

procesorima i mikrokontrolerima pri komunikaciji na maloj udaljenosti [22].

Slika 5.9. Senzor BMP180 [24]

Page 31: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

26

Senzor BMP180 ima četiri pina: pin za napajanje (VCC (+)), pin za uzemljenje

te dva I2C pina: podatkovni (engl. Serial Data - SDA) i vremenski (engl. Serial Clock

– SCL) [23].

Način na koji su pinovi senzora BMP180 povezani s pinovima računala

Raspberry Pi 3 u ovom eksperimentu prikazan je tablicom 5.2. te shemom na

slici 5.10.

Tablica 5.2. Način povezivanja pinova senzora BMP180 s pinovima računala Raspberry

Pi 3

Pin senzora BMP180 Pin računala Raspberry Pi 3

1 (napajanje - VCC (+)) 1 (izvor od 3.3V)

2 (uzemljenje) 14 (uzemljenje)

3 (SCL) 5 (GPIO 3 - SCL)

4 (SDA) 3 (GPIO 2 - SDA)

Slika 5.10. Shema povezivanja senzora BMP180 s računalom Raspberry Pi 3 [25]

5.1.3. Ostvarenje programske podrške

U ovom je primjeru, nakon definiranja postavki uređaja u oblaku, pokretanja

poveznika Raspberry Pi te fizičkog povezivanja senzora s poveznikom, potrebno

programski ostvariti preuzimanje podataka sa senzora na poveznik, povezivanje

Page 32: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

27

poveznika s Artik uslugom u oblaku te slanje podataka s poveznika u oblak. Sav

programski kod u ovom primjeru napisan je u programskom jeziku Python.

5.1.3.1. Preuzimanje podataka sa senzora

Prvi je korak preuzimanje podataka sa senzora DHT11 te BMP180. Ovaj je

dio ostvaren pomoću gotovih Python Adafruit biblioteka upravo za rad s navedenim

senzorima. Obzirom da neke od tih biblioteka nisu prilagođene za Python verzije

3.x, ovaj se dio programskog ostvarenja pokreće kao Python 2.7.13 program.

Adafruit Industries jest tvrtka koja proizvodi niz elektroničkih proizvoda te nudi brojne

izvore učenja, biblioteke i kodove iz područja elektroničkih uređaja i njihove primjene

među kojima su i biblioteke korištene u ovom radu.

Za očitanje podataka koje mjeri senzor DHT11 koristi se Python biblioteka

Adafruit DHT: Ova biblioteka, osim što ostvaruje preuzimanje podataka, također

rješava ranije spomenuti problem vremenske osjetljivosti pri očitavanju sa senzora,

na način da zahtijeva niz očitanja sve dok se ne očitaju valjani podaci. Sve što je

potrebno napraviti za korištenje biblioteke Adafruit DHT jest klonirati Git repozitorij

u kojem se ona nalazi te instalirati njezinu setup.py datoteku. Dodatno, u tom se

repozitoriju nalazi i nekoliko jednostavnih primjera korištenja biblioteke. Nakon

kloniranja repozitorija, biblioteka je na raspolaganju za korištenje u vlastitim Python

skriptama, na način da je se uključi u skriptu kao modul [21].

Slično kao kod senzora DHT11, za preuzimanje podataka koje mjeri senzor

BMP180 koristi se Python biblioteka Adafruit BMP. Ova je biblioteka inicijalno

stvorena za rad sa senzorom BMP085, prethodnikom senzora BMP180, no,

obzirom da ta dva senzora imaju ista programska svojstva, biblioteka se koristi i za

senzor BMP180. Ova se biblioteka također najjednostavnije preuzima kloniranjem

Git repozitorija u kojem se nalazi. Uz biblioteku, za rad sa senzorom BMP180

potrebno je i instalirati SMBus (engl. System Management Bus) modul za rad s I2C

sabirnicom. Također, kao i kod biblioteke Adafruit DHT, potrebno je instalirati

setup.py datoteku biblioteke Adafruit BMP. Nakon kloniranja Git repozitorija te

potrebnih instalacija, biblioteka je spremna za daljnje korištenje [25].

Korištenjem dviju opisanih biblioteka, napisana je Python skripta koja

konstantno, dok se ne prekine, preuzima mjerene podatke o temperaturi, vlažnosti

i tlaku zraka sa senzora DHT11 i BMP180, ispisuje očitane podatke u konzolu te ih

Page 33: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

28

zapisuje u tekstualnu datoteku. Ovom je skriptom ostvarena cjelokupna programska

podrška za preuzimanje podataka sa senzora na poveznik.

5.1.3.2. Povezivanje s Artik uslugom u oblaku i slanje podataka u oblak

Drugi, a ujedno i posljednji korak ostvarenja ovog projekta jest programsko

ostvarenje povezivanja računala Raspberry Pi s Artik uslugom u oblaku te slanje

podataka s računala u oblak. Komunikacija s oblakom u ovom je primjeru ostvarena

putem WebSocket API sučelja, opisanog u poglavlju 3.2.2. U ovom se dijelu

programskog ostvarenja koristi Python modul asyncio za rad s asinkronim

funkcijama. Obzirom da se taj modul pojavio distribucijom Pythona verzije 3,

komunikacija s Artik oblakom implementirana je u programskom jeziku Python 3.

Osim modula asyncio, potrebno je koristiti i modul websockets, za rad s

WebSocket API sučeljem te modul json za rad s JSON formatom datoteka. Isječak

koda 5.1. prikazuje uvoz modula asyncio, websockets i json te postavljanje

potrebnih varijabli za povezivanje s Artik uslugom u oblaku. U datoteci config.json

definirani su ID uređaja i token uređaja.

Isječak koda 5.1. Uvoz potrebnih modula i postavljanje varijabli

import asyncio

import websockets

import json

import time

import sys

with open('config.json') as json_data:

CONFIG = json.load(json_data)

DEVICE_ID = CONFIG['device_id']

DEVICE_TOKEN = CONFIG['device_token']

CONNECTION_URL = 'wss://api.artik.cloud/v1.1/websocket?ack=true'

Isječak koda 5.2. prikazuje funkciju start() kojom se u početku stvara

WebSocket konekcija s Artik uslugom u oblaku te šalje registracijska poruka u oblak.

Nakon toga, sve dok se program ne prekine, funkcija preuzima snimljene podatke

Page 34: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

29

od strane senzora koji se pohranjuju u datoteku te nad tim podacima poziva funkciju

za slanje podataka u oblak.

Isječak koda 5.2. Funkcija start()

async def start():

#establish a connection and send the registration payload

print("\nPovezivanje na: ", CONNECTION_URL)

async with websockets.connect(CONNECTION_URL) as websocket:

print("\WebSocket konekcija je stvorena ... ")

registration = {

'type': 'register',

'sdid': DEVICE_ID,

'authorization': 'bearer ' + DEVICE_TOKEN,

}

print("\Slanje registracijske poruke sadržaja:\n ",

xxxxxxxxxxxxxxxxxjson.dumps(registration))

await send_message(websocket, registration)

while True:

#...preuzimanje snimljenih podataka iz datoteke...

message = {

'sdid': DEVICE_ID,

'data': {

'temp': temp,

'hum': hum,

'press': press

},

'cid': 'id-' + str(int(time.time()))

}

await send_message(websocket, message)

Konačno, funkcija send_message(websocket, message), prikazana

isječkom koda 5.3., obavlja slanje poruke u Artik uslugu u oblaku. Ova se funkcija

Page 35: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

30

poziva prilikom slanja registracijske poruke te prilikom svakog slanja snimljenih

podataka u oblak.

Isječak koda 5.3. Funkcija send_message(websocket, message)

async def send_message(websocket,message):

'''

Primjer sadržaja poruke:

{"sdid": "4b2108...", "data": {"state": true}, "cid": 1501787234}

'''

message = json.dumps(message)

print("> Slanje poruke: {}".format(message))

await websocket.send(message)

5.1.4. Konačni rezultat eksperimenta

Konačno, nakon uspješnog ostvarenja svih prethodnik koraka, na web

stranici svog Artik oblaka moguće je vidjeti rezultat eksperimenta. Podatke o

temperaturi, vlažnosti i tlaku zraka poslane u oblak moguće je pratiti u grafičkom

obliku te kao listu primljenih poruka, kao što je opisano u poglavlju 3.3. Na slikama

5.11., 5.12. i 5.13. prikazani su grafički prikazi snimljenih podataka o temperaturi,

vlažnosti i tlaku zraka, preuzeti s kartice „Charts“ Artik usluge u oblaku.

Slika 5.11. Grafički prikaz snimljene temperature zraka

Slika 5.12. Grafički prikaz snimljene vlažnosti zraka

Page 36: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

31

Slika 5.13. Grafički prikaz snimljenog tlaka zraka

5.2. Programska simulacija interakcije dvaju uređaja preko Artik

usluge u oblaku

Drugi eksperiment ovog rada sastoji se od programske simulacije sustava u

kojem komuniciraju uređaji mikrofon i pametna vrata preko Artik usluge u oblaku.

Cilj ovog primjera jest demonstrirati kako funkcionira obostrana komunikacija pri

korištenju Artik usluge u oblaku. Skripta, napisana u programskom jeziku Python,

simulira ulogu stvari i poveznika u sustavu te vezu između njih. Osim toga, skriptom

je, kao i u prošlom primjeru, realizirana komunikacija s Artik uslugom u oblaku te

aplikacija za upravljanje sustavom.

Sustav stvari koji se simulira sastoji se od mikrofona, koji prikuplja podatke i

šalje ih u oblak te pametnih vrata, na koja se iz oblaka šalju akcije ovisno o

podacima poslanih s mikrofona. Uređaji, odnosno njihova polja i akcije, postavljeni

su u oblaku postupkom opisanim u poglavlju 3.1. Postoje četiri akcije pomoću kojih

se upravlja s pametnim vratima: otvori, zatvori, otključaj te zaključaj. Ove četiri

akcije, ujedno su i moguće vrijednosti polja poruka uređaja mikrofon, dok uređaj

pametna vrata ima dva polja: otvoreno, koje može biti istinito ili neistinito te

zaključano, koje također može biti istinito ili neistinito. Definirana su, također, četiri

pravila: „ako je polje poruka uređaja mikrofon jednako „open“, onda poslati akciju

„open“ na uređaj vrata“ te ostala tri pravila ekvivalentna ovome Postupak definiranja

pravila u Artik oblaku opisan je u poglavlju 3.3.

Dakle, simulirani sustav radi tako da korisnik po želji, u bilo kojem trenutku,

putem mikrofona pošalje jednu od četiri navedene poruke, koja se šalje u oblak te

pohranjuje. Zatim se na temelju definiranih pravila šalje odgovarajuća akcija na

pametna vrata. Nakon primitka akcije, vrata izvršavaju dobivenu akciju te aplikacija

postavlja novo stanje polja uređaja vrata u oblaku, slanjem poruke s novim

podacima, koji odgovaraju primljenoj akciji. Osim toga, aplikacija ispisom

Page 37: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

32

odgovarajuće poruke kontrolira slučajeve kad korisnik, na primjer, pokuša otvoriti

zaključana ili već otvorena vrata i slično tome te slučaj unosa nepostojeće naredbe.

5.2.1. Programsko ostvarenje

Simulacija cjelokupnog opisanog sustava ostvarena je jednom Python

skriptom, koja koristi modul asyncio, za rad s asinkronim funkcijama, modul json,

za rad s podacima oblika JSON, modul websockets, za rad s WebSocket API

sučeljem te još neke module.

Uvoz potrebnih modula, postavljanje globalnih varijabli za vezu s Artik

uslugom u oblaku te postavljanje početnih stanja uređaja vrata prikazani su

isječkom koda 5.4.

Isječak koda 5.4. Uvoz modula i definiranje varijabli

import json

import asyncio

import websockets

import time

import sys

class door:

opened = False

locked = False

with open('config_door.json') as json_data:

CONFIG_DOOR = json.load(json_data)

DEVICE_ID_DOOR = CONFIG_DOOR['device_id']

DEVICE_TOKEN_DOOR = CONFIG_DOOR['device_token']

with open('config_microphone.json') as json_data:

CONFIG_MICROPHONE = json.load(json_data)

DEVICE_ID_MICROPHONE = CONFIG_MICROPHONE['device_id']

DEVICE_TOKEN_MICROPHONE = CONFIG_MICROPHONE['device_token']

CONNECTION_URL = 'wss://api.artik.cloud/v1.1/websocket?ack=true'

Page 38: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

33

Prvi korak koji program treba obaviti, nakon uvoza potrebnih modula i

postavljanja globalnih varijabli, jest uspostaviti konekciju s Artik uslugom u oblaku

te poslati registracijske poruke na oba uređaja u oblaku. To se događa u funkciji

start(). Nakon uspostave konekcije i slanja registracijskih poruka, u funkciji se,

sve dok se program ne prekine, čeka unos naredbe putem konzole od strane

korisnika. Nakon unosa naredbe, na temelju unesene naredbe poziva se funkcija

send_message_microphone(websocket, message), u kojoj se šalje poruka,

s naredbom koju je korisnik unio, u Artik oblak. Funkcija start() prikazana je

isječkom koda 5.5.

Isječak koda 5.5. Funkcija start()

async def start():

#Povezivanje na Artik

print("\nConnecting to: ", CONNECTION_URL)

async with websockets.connect(CONNECTION_URL) as websocket:

print("\nWebsocket connection is open ... ")

#Slanje registracijskih poruka

registration = {

'type': 'register',

'sdid': DEVICE_ID_DOOR,

'authorization': 'bearer ' + DEVICE_TOKEN_DOOR,

}

print("\nSending register message payload for door:\n ",

xxxxxxxxxxxxxxxxxjson.dumps(registration))

await send_message_door(websocket, registration)

registration = {

'type': 'register',

'sdid': DEVICE_ID_MICROPHONE,

'authorization': 'bearer ' + DEVICE_TOKEN_MICROPHONE,

}

print("\nSending register message payload for

xxxxxxxxxxxxxxxxxxxmicrophone:\n ", json.dumps(registration))

await send_message_microphone(websocket, registration)

Page 39: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

34

while True:

#...Čekanje naredbe...

#Postavljanje poruke

payload = {

'sdid': DEVICE_ID_MICROPHONE,

'data': {},

'cid': 'id-' + str(int(time.time()))

}

if naredba == 'open':

#Kontrola neispravne naredbe

if door.locked == True:

print("Cannot open a locked door.")

continue

if door.opened == True:

print("Door already opened.")

continue

#Poziv funkcije za slanje poruke

payload['data']['message'] = 'open'

await send_message_microphone(websocket, payload)

#Kod za ostale tri naredbe ekvivalentan je kodu za „open“

Sljedeći korak programa jest slanje poruke s naredbom na uređaj mikrofon u

Artik oblaku, odnosno postavljanje nove vrijednosti u polje poruka uređaja mikrofon

u oblaku. To odrađuje funkcija send_message_microphone(websocket,

message), prikazana isječkom koda 5.6. Nakon slanja poruke, funkcija čeka

poruku od Artik oblaka koja sadrži akciju, koja se iz oblaka šalje na temelju

definiranih pravila. Po primitku takve poruke, poziva se funkcija

handle_action_door(websocket, message) s primljenom porukom kao

drugim argumentom.

Isječak koda 5.6. Funkcija send_message_microphone(websocket, message)

async def send_message_microphone(websocket, message):

send_message = json.dumps(message)

await websocket.send(send_message)

received_message = await websocket.recv()

recieved_message = json.loads(received_message)

Page 40: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

35

if 'type' in message and message['type'] == 'register':

return

while not ('type' in recieved_message and

xxxxxxxxxxxxxxxxxrecieved_message['type'] == 'action'):

received_message = await websocket.recv()

recieved_message = json.loads(received_message)

await handle_action_door(websocket, recieved_message)

Funkcija handle_action_door(websocket, message), prikazana

isječkom koda 5.7., služi za obradu primljene akcije. Dakle, ovisno o akciji poslanoj

iz oblaka, funkcija postavlja novo stanje vrata, u konzolu ispisuje poruku o uspješnoj

obradi akcije, stvara poruku koja sadrži nove podatke te poziva funkciju

send_message_door(websocket, message), koja će novo stanje vrata poslati

u oblak.

Isječak koda 5.7. Funkcija handle_action_door(websocket, message)

async def handle_action_door(websocket, message):

action = message['data']['actions'][0]

payload = {

'sdid': DEVICE_ID_DOOR,

'data': {},

'cid': 'id-' + str(int(time.time()))

}

if action['name'] == 'open':

payload['data']['opened'] = True

door.opened = True

print(„Door successfully opened.“)

await send_message_door(websocket, payload)

elif action['name'] == 'close':

payload['data']['opened'] = False

door.opened = False

print(„Door successfully closed.“)

await send_message_door(websocket, payload)

Page 41: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

36

elif action['name'] == 'lock':

payload['data']['locked'] = True

door.locked = True

print(„Door successfully locked.“)

await send_message_door(websocket, payload)

elif action['name'] == 'unlock':

payload['data']['locked'] = False

door.locked = False

print(„Door successfully unlocked.“)

await send_message_door(websocket, payload)

else:

#unknown action for handling

print(„Unknown action for handing {}“.format(action))

Konačno, funkcija send_message_door(websocket, message),

prikazana isječkom koda 5.8., šalje podatke na uređaj pametna vrata u Artik oblaku,

odnosno postavlja novu vrijednost jednog od polja uređaja vrata.

Isječak koda 5.8. Funkcija send_message_door(websocket, message)

async def send_message_door(websocket, message):

message = json.dumps(message)

await websocket.send(message)

5.2.2. Konačni rezultat eksperimenta

Nakon pokretanja opisanog programa, moguće je u stvarnom vremenu pratiti

što se događa s vratima prilikom slanja naredbi. Primljene poruke s podacima te

poslane poruke s akcijama u Artik oblaku moguće je pratit na kartici „Data Logs“,

kao što je opisano u poglavlju 3.3. Najzanimljivije je, ipak, pratiti promjene stanja

uređaja vrata na kartici „Charts“, koja je također opisana u poglavlju 3.3., jer se tamo

najbolje može vidjeti kako se odvija interakcija u stvarnom vremenu. Paralelno s

praćenjem stanja u grafičkim prikazima u oblaku, zanimljivo je pratiti poruke koje se

korisniku ispisuju u konzoli. Na taj se način može dobiti zaista dobar uvid u

interakciju simuliranih uređaja s Artik uslugom u oblaku.

Page 42: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

37

Slike 5.14. i 5.15. grafički prikazuju promjene stanja polja otvoreno i polja

zatvoreno uređaja vrata u usporedbi s promjenama stanja poruke uređaja mikrofon

u vremenu.

Slika 5.14. Grafički prikaz polja otvoreno uređaja vrata i polja poruka uređaja mikrofon

Slika 5.15. Grafički prikaz polja zaključano uređaja vrata i polja poruka uređaja mikrofon

Također, valja napomenuti da se akcije na vrata mogu poslati i ručno,

direktno iz Artik usluge u oblaku, no u tom slučaju uređaj mikrofon u ovom sustavu

gubi svoju svrhu. Akcije se na uređaj u Artik oblaku šalju s kartice „Devices“, klikom

na munju kod željenog uređaja te odabirom akcije koja se želi poslati, što je

prikazano na slici 5.16. Naravno, i ovo je moguće samo ukoliko je aplikacija za

upravljanje sustavom pokrenuta.

Page 43: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

38

Slika 5.16. Ručno slanje akcije na vrata kroz Artik uslugu u oblaku

Page 44: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

39

6. ZAKLJUČAK

Internet stvari, zbog svoje iznimno korisne primjene te svojstva da uvelike

olakšava ljudske živote, jedno je od najatraktivnijih područja informatičke industrije

današnjice. Eksponencijalnim porastom popularnosti Interneta stvari i njegove

primjene, svakim danom raste i broj platformi koje nude usluge u oblaku za Internet

stvari. Jedna od takvih platformi jest Samsung Artik. Usluge koje Artik oblak nudi u

sklopu Interneta stvari prikazane su kroz dva jednostavna primjera, a opet

primjenjiva u stvarnom životu.

Prvi se primjer sastoji od slanja podataka o temperaturi, vlažnosti i tlaku zraka

od senzora, preko poveznika, do Artik usluge u oblaku. Ostvarenjem ovog primjera

pokazala se jednostavnost komunikacije senzora s Artik oblakom Osim toga, ovim

je primjerom pokazana mogućnost praćenja stanja postavljenog uređaja kroz

grafičke prikaze u stvarnom vremenu, koje nudi Artik usluga u oblaku.

U drugom se primjeru simulira komunikacija dva uređaja putem Artik usluge

u oblaku. Ova je simulacija osmišljena kako bi se demonstrirala interakcija uređaja

korištenjem Artik oblaka, odnosno opcije definiranja akcija i pravila koje on nudi.

Sustav se sastoji od uređaja mikrofon, putem kojeg korisnik šalje naredbe, te

uređaja pametna vrata, nad kojima se izvršavaju poslane naredbe. Ovim je

primjerom pokazano kako Artik na temelju primljenih poruka s podacima od strane

mikrofona te definiranih pravila šalje akcije na uređaj pametna vrata. Također, kroz

oba je primjera demonstrirana jednostavnost definiranja postavki uređaja te

njegovih svojstava u Artik oblaku.

Iz ostvarenja opisana dva primjera, može se zaključiti da je Artik usluga u

oblaku osmišljena da uvelike olakša izradu IoT projekata, time što su mnoge

komponente projekta ostvarene korištenjem postojećih usluga, dok bi ih u

suprotnom razvojni programeri morali ručno implementirati. Osim toga, Artik

platforma je jednostavna za korištenje i snalaženje. Zbog ovih svojstava Artik usluge

u oblaku, čak i ljudi koji nemaju mnogo znanja o programiranju mogu izrađivati

vlastite IoT projekte, bez puno muke i uloženog truda.

Page 45: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

40

7. LITERATURA

[1] Jordan Wright, Internet of things: What is it & why it needs the cloud,

https://blog.cloudhelix.io/internet-of-things-what-it-is-why-it-needs-the-cloud-

f150f6726382, 03.04.2018.

[2] Devadiga, K., IEEE 802.15.4 and the Internet of things, Aalto University

School of Science

[3] IEEE Standards Association, IEEE Std 802.15.4-2015 (Revision of IEEE

Std 802.15.4-2011) - IEEE Standard for Low-Rate Wireless Networks,

https://standards.ieee.org/findstds/standard/802.15.4-2015.html,

05.04.2018.

[4] 4LoWPAN, https://en.wikipedia.org/wiki/6LoWPAN, 05.04.2018.

[5] Margaret Rouse, IoT Gateway, https://whatis.techtarget.com/definition/IoT-

gateway, 11.04.2018.

[6] Padraig Scully, 26.01.2016., 5 Things To Know About The IoT Platform

Ecosystem, https://iot-analytics.com/5-things-know-about-iot-platform/,

13.04.2018.

[7] IoT Gateway Basis | Intel IoT Gateway Features, http://www.rfwireless-

world.com/IoT/IoT-Gateway.html, 13.04.2018.

[8] Samsung ARTIK™ Smart IoT Platform Delivers the Power of IoT

Development to Businesses, https://news.samsung.com/global/samsung-

artik-smart-iot-platform-delivers-the-power-of-iot-development-to-businesses,

17.04.2018.

[9] Bluetooth Low Energy (BLE) and the Internet of Things (IoT),

https://www.linkedin.com/pulse/bluetooth-low-energy-ble-internet-things-iot-

mohammad-afaneh, 02.05.2018.

[10] Samsung's Artik is the perfect example of why IoT is confusing,

https://www.theverge.com/2016/4/29/11536376/samsungs-artik-internet-of-

things-confusing, 05.05.2018.

[11] Samsung ARTIK Platform Aims At Removing IoT Pain Points,

http://www.ubergizmo.com/articles/samsung-artik/, 08.05.2018.

[12] 50 Sensor Applications for a Smarter World,

http://www.libelium.com/resources/top_50_iot_sensor_applications_ranking/

, 13.05.2018.

Page 46: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

41

[13] Internet of Things (IoT) – Part 5 (Applications), https://www.c-

sharpcorner.com/UploadFile/f88748/internet-of-things-applications/,

13.05.2018.

[14] Digitech Invests in Connected Cars Company CarForce,

https://iot.do/digitech-connected-cars-2016-10, 13.05.2018.

[15] IoT Apps for Smart Cities with GE Predix and Scriptr.io,

https://blog.scriptr.io/implement-smart-cities-applications/, 14.05.2018.

[16] Smart Gateways, Blockchain and the Internet of Things (Charalampos

Doukas-Create-Net), https://www.slideshare.net/AGILEIoT/smart-gateways-

blockchain-and-the-internet-of-things-charalampos-doukascreatenet,

15.05.2018.

[17] Raspberry Pi 3B Single Bord Computer,

https://www.littlebirdelectronics.com.au/raspberry-pi-3b-single-board-

computer, 20.05.2018.

[18] Raspberry Pi and the I2C Air Pressure Sensor BMP180, https://tutorials-

raspberrypi.com/raspberry-pi-and-i2c-air-pressure-sensor-bmp180/,

22.05.2018.

[19] How to set up the DHT11 humidity sensor on the Raspberry Pi,

http://www.circuitbasics.com/how-to-set-up-the-dht11-humidity-sensor-on-

the-raspberry-pi/, 22.05.2018.

[20] DHT11 – Temperature and Humidity Sensor,

https://components101.com/dht11-temperature-sensor, 23.05.2018.

[21] DHT11 Temperature and Humidity Sensor and the Raspberry Pi,

https://www.raspberrypi-spy.co.uk/2017/09/dht11-temperature-and-

humidity-sensor-raspberry-pi/, 23.05.2018.

[22] BMP180 Barometric Pressure/Temperature/Altitude Sensor – 5V ready,

https://www.adafruit.com/product/1603, 25.05.2018.

[23] Raspberry Pi and I2C Air Pressure Sensor BMP180, https://tutorials-

raspberrypi.com/raspberry-pi-and-i2c-air-pressure-sensor-bmp180/,

25.05.2018.

[24] BMP180 Barometric Pressure & Temperature Sensor, http://electronics-

diy.com/product_details.php?pid=825, 27.05.2018.

Page 47: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

42

[25] Sensors – Pressure, Temperature and Altitude with the BMP180,

https://thepihut.com/blogs/raspberry-pi-tutorials/18025084-sensors-

pressure-temperature-and-altitude-with-the-bmp180, 27.05.2018.

[26] REST and WebSockets, https://developer.artik.cloud/documentation/data-

management/rest-and-websockets.html#rest-and-websockets, 27.05.2018.

[27] Scenes, https://developer.artik.cloud/documentation/scenes.html,

08.06.2018.

Page 48: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

43

NASLOV, SAŽETAK I KLJUČNE RIJEČI

Naslov

Upravljanje stvarima preko usluga u oblaku za Internet stvari.

Sažetak

Samsung Artik jedna je od platformi koja nudi usluge u oblaku za Internet stvari.

Arhitektura Interneta stvari zasnovana na uslugama u oblaku sastoji se od mreže

uređaja, poveznika te usluge u oblaku. Uređaji mogu biti senzori, koji prikupljaju

podatke, ili aktuatori, koji obavljaju akcije. Pri postavljanju uređaja u Artik oblaku,

moguće je definirati polja u koja se pohranjuju primljeni podaci, te akcije koje se

šalju na uređaj. Komunikacija uređaja s Artik uslugom u oblaku odvija se putem

jednog od sučelja REST API ili WebSocket API. Kroz Artik uslugu u oblaku moguće

je postaviti uređaje, definirati pravila i scene te pratiti stanja uređaja u vremenu i

izmjenu poruka s uređajima. Neka od područja primjene Interneta stvari su pametni

domovi, nosive stvari, pametni gradovi, okoliš i vode, mjerenja, industrijska kontrola,

pametna vozila, sustavi za zdravstvo, sigurnost i kontrola hitnih stanja, trgovina i

opskrbni lanac te poljoprivreda i uzgoj životinja. Primjena Artik usluge u oblaku

demonstrirana je kroz dva primjera. Prvi se primjer sastoji od slanja podataka o

temperaturi, vlažnosti i tlaku zraka od senzora, preko poveznika, u oblak, a drugi se

primjer sastoji od programske simulacije interakcije uređaja mikrofon i uređaja

pametna vrata preko Artik usluge u oblaku.

Ključne riječi

Internet stvari, Samsung Artik, usluge u oblaku za Internet stvari, upravljanje

stvarima.

Page 49: =$95â1, 5$' EU 835$9/-$1-( 679$5,0$ 35(.2 86/8*$ 8 2%/$.8 ... · $5+,7(.785$ ,17(51(7$ 679$5, =$6129$1$ 1$ 86/8*$0$ 8 2%/$.8 'rqhgdyqr vx pqrjh wyuwnh udþxqdoqx rsuhpx ]d srkudqx

44

Title

Things Management Through Internet of Things Cloud Services.

Summary

Samsung Artik is one of the platforms that offer cloud services for the Internet of

Things (IoT). The IoT architecture based on cloud services consists of a device

network, a gateway and cloud services. Devices are either sensors that collect data

or actors who perform actions. When configuring a device in Artik cloud service, it

is possible to define fields to store received data and actions that are sent to the

device. Communication with Artik cloud service takes place via either REST API or

WebSocket API interface. Through Artik cloud service, it is possible to configure

devices, define rules and scenes, track device status and see exchanged

messages. Some areas of IoT application are smart homes, wearable technology,

smart cities, environment and water, smart metering, industrial controls, smart

vehicles, health systems, security and emergency control, retail and supply chains

and agriculture and animal breeding. Application of Artik cloud service has been

demonstrated through two examples. The first example consists of sending

temperature, humidity and air pressure measurements from sensors, through the

gateway and to the cloud, and the second example is a software simulation of

microphone and smart door device interaction through Artik cloud service.

Keywords

Internet of Things, Samsung Artik, IoT cloud services, things management.