34
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br. 5377 UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT SERVICES Ivan Štignedec Zagreb, lipanj 2018.

UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

ZAVRŠNI RAD br. 5377

UPRAVLJANJE STVARIMA KORIŠTENJEM

PLATFORME AWS IOT SERVICES

Ivan Štignedec

Zagreb, lipanj 2018.

Page 2: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification
Page 3: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification
Page 4: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

SADRŽAJ

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

2. ARHITEKTURA SUSTAVA INTERNETA STVARI ....................................... 2

3. RAČUNALO RASPBERRY PI ........................................................................... 4

4. PLATFORMA AMAZON AWS IOT .................................................................. 6

4.1. Amazon DynamoDB usluga ......................................................................... 7

4.2. Usluga Amazon Elasticsearch i Kibana Dashboard aplikacija ..................... 8

4.3. Usluga Amazon Simple Notification Service (SNS) .................................... 9

5. OSTVARENJE PRIMJERA SUSTAVA INTERNETA STVARI .................... 10

5.1. Postavljanje računala Raspberry Pi ............................................................. 10

5.2. Povezivanje platforme AWS IoT s računalom Raspberry Pi ...................... 12

5.3. Spajanje senzora DHT11 i svjetleće diode na Raspberry Pi ....................... 14

5.4. Programiranje u Pythonu ............................................................................. 15

5.5. Postavke DynamoDB baze podataka .......................................................... 18

5.6. Postavke usluge AWS Elasticsearch ........................................................... 19

5.7. Postavke Kibana Dashboard aplikacije ....................................................... 21

5.8. Postavke usluge SNS i upravljanja LED diodom ....................................... 22

6. DODATNE MOGUĆNOSTI AMAZONOVIH USLUGA U OBLAKU .......... 25

7. ZAKLJUČAK ..................................................................................................... 27

LITERATURA .......................................................................................................... 28

SAŽETAK ................................................................................................................. 29

SUMMARY ............................................................................................................... 30

Page 5: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

1

1. UVOD

Internet stvari (engl. Internet of Things, IoT) termin je koji označava povezivanje

uređaja putem Interneta. To mogu biti razni uređaji koje svakodnevno koristimo, od

perilica i hladnjaka, do TV prijemnika i termostata. Internet stvari proširuje se i na

ostale objekte iz fizičkog svijeta, kao što je plastična ambalaža nekog napitka, koja

ugradnjom čipa također postaje povezana. Svaki uređaj, odnosno stvar, mora imati

jedinstveni identifikator kako bi se mogao povezati na mrežu. On može komunicirati

s ostalim elementima u mreži te izvršavati određene aktivnosti, kao i slati podatke u

računalni oblak. Postoje razne usluge u oblaku preko kojih upravljamo stvarima, a u

ovom će se radu koristiti softverska platforma AWS IoT razvijena od tvrtke Amazon.

Jedni od najznačajnijih dijelova sustava Interneta stvari su senzori, koji se preko raznih

računala mogu povezati i koristiti kao automatizirani sustav bez djelovanja čovjeka.

Senzori mogu biti različito izvedena tipkala, prekidači, senzori infracrvenog zračenja,

senzori temperature, pokreta… U ovom radu koristimo senzor temperature i vlage

DHT11, koji je preko malog računala Raspberry Pi spojen na Internet, odnosno

softversku platformu AWS IoT koja nudi upravljanje stvarima koje prethodno

umrežimo.

Glavna je svrha ovog rada prikaz značajki raznih usluga AWS IoT kroz izgradnju

sustava Interneta stvari - nadzora temperature u prostoriji. Korištenjem senzora

spojenih na ugrađeno računalo Raspberry Pi, biti će pokazane mogućnosti usluga AWS

IoT za pohranu i obradu prikupljenih podataka. Također će biti prikazano upravljanje

napravama spojenim na ugrađeno računalo korištenjem usluge AWS IoT.

U narednim poglavljima biti će opisana arhitektura sustava Interneta stvari i načini

povezivanja s uslugama u oblaku, svojstva računala Raspberry Pi i korištenog senzora,

sama izgradnja sustava nadzora temperature uz detaljni pregled korištenih usluga te

dodatne mogućnosti Amazonovih usluga u oblaku.

Page 6: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

2

2. ARHITEKTURA SUSTAVA INTERNETA STVARI

Internet stvari je skup stvari (naprava, uređaja) opremljenih senzorima kako bi

međusobno izmjenjivali podatke ostvarivanjem interakcije. Prilikom povezivanja

različitih vrsta naprava, teži se korištenju bežičnih i internetskih tehnologija

(prvenstveno usluga u oblaku).

Prikaz arhitekture sustava Interneta stvari prikazan je na slici Sl. 2.1. Na slici je

prikazan korisnik koji koristi usluge u oblaku koje su spojene s računalom Raspberry

Pi, a na računalo su preko ulazno-izlaznih priključaka (GPIO) spojene razne naprave

(stvari). Pritom korisnik ne komunicira izravno s napravama, nego s uslugom u oblaku.

Naprave komuniciraju s uslugom u oblaku putem određenog protokola. U ovom se

slučaju koristi protokol MQTT.

Slika 2.1. Arhitektura sustava Interneta stvari

Protokol MQTT (Message Queue Telemetry Transport) razvijen je 1999. godine sa

ciljem razvoja protokola koji bi omogućio efikasnu brzinu prijenosa podataka uz malu

potrošnju energije i nisku cijenu. Ovaj je protokol zamijenio do tada korišteni HTTP

(HyperText Transfer Protocol) za slične svrhe, koji je koristio model zahtjeva i

odgovora. Arhitektura MQTT protokola naziva se uvelike prihvaćenim terminom

„objavi-pretplati“. Model arhitekture MQTT protokola pogonjen je događajima i

omogućava klijentima da objavljuju poruke bez brige o njihovoj posljednjoj

destinaciji. Posljednju destinaciju objavljene poruke određuje MQTT posrednik (engl.

broker) koji na osnovu klijentskih pretplata (engl. subscriptions) prosljeđuje poruke

Page 7: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

3

oslobađajući klijenta od slanja zahtjeva za porukama, za razliku od protokola HTTP

kod kojega klijenti moraju tražiti informacije od poslužitelja. Također, protokol

MQTT koristi puno manje zaglavlje što dodatno smanjuje opterećenje mreže.

Komunikacija između klijenata ostvarena je modelom „objavi-pretplati“ uz središnju

ulogu MQTT posrednika, koji prati poruke klijenata i prosljeđuje ih drugim klijentima

u ovisnosti o pretplatama. Kada klijent šalje (engl. publish) poruku posredniku, on

mora navesti i temu (engl. topic) na koju želi objaviti poruku. Kada se klijenti

pretplaćuju (engl. subscribe), moraju navesti temu na koju se žele pretplatiti kako bi

dobivali poruke koje drugi klijenti na tu temu šalju. Ovaj je model grafički prikazan

na slici Sl. 2.2.

Slika 2.2. Princip rada MQTT posrednika

Kao što je ranije navedeno, klijenti se kod ovakvog načina komunikacije ne trebaju

međusobno poznavati, te mogu komunicirati samo preko odabranih tema, što uvelike

povećava učinkovitost sustava bez obzira na povećanje broja klijenata ili broja poruka.

Sve usluge u oblaku za upravljanje stvarima u sustavu Interneta stvari koriste ovakav

način komunikacije, pa tako i AWS IoT korištena u ovom radu, te će sama prilagodba

biti objašnjena u narednim poglavljima prilikom izgradnje sustava.

Page 8: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

4

3. RAČUNALO RASPBERRY PI

Računalo Raspberry Pi je veličine kreditne kartice, razvijeno u Ujedinjenom

Kraljevstvu od strane organizacije Raspberry Pi Foundation u svrhu promoviranja

učenja osnova računarske znanosti u školama. Originalna svrha postala je mnogo

raširenija od predviđene, pa se ovo računalo koristi i za potrebe upravljanja robota u

industriji.

Prva generacija ovog računala izašla je na tržište u veljači 2012. godine (Raspberry Pi

1). U ovom je radu korištena treća generacija ovog računala – Raspberry Pi 3 Model

B V1.2. Računalo Raspberry PI 3 odlikuje se brojnim svojstvima kakva poznajemo i

na stolnim osobnim računalima, uz osjetno nižu cijenu (oko 40 USD, odnosno nešto

ispod 300 kn). Računalo ima 1 GB radne memorije, 4 USB 2.0 priključka, integrirane

Wi-Fi i Bluetooth module, jedan Ethernet port, 3.5 mm priključak za audio izlaz,

HDMI, CSI te DSI priključke. Na ovom je modelu 40 ulazno-izlaznih GPIO (General-

purpose input/output) pinova za spajanje dodatnih uređaja (senzora i slično). Pogoni

ga četverojezgreni ARM Cortex-A53 procesor, radnog takta 1.2GHz s 32 kB Level 1

i 512 kB Level 2 priručne memorije, dok je GPU jedinica Broadcom VideoCore IV.

Operacijski sustav koji koristi ovo računalo spremljen je na vanjsku memoriju –

microSD karticu koju je potrebno umetnuti u odgovarajući utor s donje strane računala.

Kako bi se računalo Raspberry Pi moglo koristiti, potrebno je na njega spojiti ulazne i

izlazne uređaje (miš, tipkovnica, monitor). Kako bi se izbjeglo nepotrebno korištenje

dodatnih resursa, razvijen je način udaljenog povezivanja na Raspberry Pi preko

protokola SSH – engl. headless setup. Detaljnije će ovakav pristup biti prikazan u

nastavku, kao i potrebne postavke računala.

Na slici Sl. 3.1. prikazano je računalo Raspberry Pi, dok je na slici Sl. 3.2. vidljiv

raspored GPIO pinova.

Page 9: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

5

Slika 3.1. Računalo Raspberry Pi 3 Model B V1.2

Slika 3.2. Prikaz prvih 20 GPIO pinova

Page 10: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

6

4. PLATFORMA AMAZON AWS IOT

Amazon.com, Inc., američka je tvrtka koja od početka osnivanja 1994. godine posluje

kao elektronička trgovina, ali i kao predvodnik u uslugama za razvoj računarstva u

oblaku (engl. cloud computing).

Amazon Web Services (AWS) podružnica je tvrtke Amazon.com koja krajnjim

korisnicima ili tvrtkama pruža usluge na zahtjev (engl. on-demand) na temelju plaćene

pretplate. Tehnologija omogućava pretplatnicima punopravni skup virtualnih računala

dostupnih u bilo koje vrijeme na Internetu. Virtualna računala imaju identične svojstva

kao i stvarna računala, sklopovlje i programsku potporu, a također se nudi i veliki broj

već pripremljenih aplikacija kao što su mrežni poslužitelji, baze podataka i drugo.

Svako virtualno računalo također virtualizira svoje ulazno-izlazne jedinice (miš,

tipkovnica, monitor), omogućujući pretplatnicima povezivanje s AWS sustavom

koristeći mrežni preglednik. Preglednik radi kao prozor u virtualno računalo kroz koji

je moguće raditi različita postavljanja kao i na stvarnom fizičkom računalu.

AWS IoT je upravljačka platforma predstavljena 2015. godine. Ona omogućava

jednostavno i sigurno povezivanje s napravama i njihovo upravljanje u oblaku. Postoje

različite usluge koje korisnici platforme imaju na raspolaganju za upravljanje

napravama u sustavu Interneta stvari, kao što su prikupljanje i vizualizacija podataka,

pokretanje dodatnih aplikacija u ovisnosti o prikupljenim podacima i razne druge

opcije, pri čemu će neke od njih biti prikazane kroz praktični primjer u narednim

poglavljima.

Slika 4.1. Prikaz osnovnih mogućnosti platforme AWS IoT

Page 11: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

7

AWS IoT podržava različite protokole za prijenos podataka između entiteta, kao što

su HTTP, WebSocket i MQTT. MQTT je jednostavni komunikacijski protokol

posebno osmišljen za privremeno povezivanje te smanjenje opterećenja mreže. AWS

IoT također podržava komunikaciju između naprava ako koriste različite protokole.

Na slici Sl. 4.1. prikazan je osnovni model koji koristi MQTT protokol. Razne naprave

mogu slati poruke ili se pretplatiti na određene teme, a AWS IoT omogućava tim

napravama međusobnu komunikaciju, odnosno s ostalim uslugama platforme AWS

IoT.

AWS IoT omogućava provjeru autentičnosti i enkripciju kroz sve točke povezivanja,

tako da podaci nikada nisu poslani/primljeni bez dokazanog identiteta. Također,

moguće je osigurati pristup napravama primjenom razdvojenih prava pristupa.

Podaci se mogu filtrirati na temelju pravila (engl. rule). Pravila se mogu ažurirati u

bilo kojem trenutku, a preko njih se pokreću dodatne usluge za upravljanje podacima

i napravama. Pravila se mogu stvarati unutar upravljačke konzole ili pisati koristeći

sintaksu jezika SQL. Tako se ona mogu prilagođavati u ovisnosti o dobivenim

podacima.

Najnovije stanje naprave ostaje pohranjeno tako da se ono može postavljati bilo kad,

što znači da se napravama može upravljati i kad su odspojene, a promjene će biti

ostvarene prilikom ponovnog povezivanja naprave.

U slijedećim potpoglavljima opisani su dodatne usluge koje u ovisnosti o postavljenim

pravilima pružaju interakciju s platformom AWS IoT.

4.1. Amazon DynamoDB usluga

Amazon DynamoDB brza je i fleksibilna usluga nerelacijske (noSQL) baze podataka.

Vrlo je konzistentan i prilagodljiv veličini upisanih podataka koristeći automatsku

podjelu memorije za pohranu. Stvaranje nove tablice je jednostavno, usluga pruža i

vraćanje na neku točku u prošlosti kako bi svi podaci bili lako dostupni. Ostale

mogućnosti korištenja DynamoDB usluge biti će opisane u poglavlju o ostvarenju

sustava Interneta stvari u narednim poglavljima.

Page 12: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

8

4.2. Usluga Amazon Elasticsearch i Kibana Dashboard

aplikacija

Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje,

upravljanje i nadziranje aplikacija. Elasticsearch pruža aplikacijska programska

sučelja (API) za analizu rada sustava u stvarnom vremenu. Postavljanje Elasticsearch

usluge je jednostavno, pri čemu se na početku stvara domena kojoj se može pristupiti

ovisno o postavljenim dozvolama. Ova usluga nudi ugrađene integracije s uslugama

Kibana, Logstash, VPC (Virtual Private Cloud), KMS (Key Management Service) i

drugim. U ovom radu koristiti će se aplikacija Kibana Dashboard.

Kibana Dashboard aplikacija je otvorenog koda za vizualizaciju podataka. To je

popularna usluga zbog svojih snažnih značajki kao što su histogrami, više vrsta

grafikona, pa čak i mape topline te geografske mape. Slika 4.2.1. prikazuje odabir

raznih vrsta prikaza podataka. Kibana nudi interaktivno kretanje po prikazu podataka,

dinamičke radnje nad grafikonima (povlačenje, zumiranje), razne vrste filtera i još

mnogo toga. Aplikaciji Kibana pristupamo preko Elasticsearch domene. Više o ovoj

aplikaciji biti će navedeno u poglavlju o izgradnji sustava.

Slika 4.2.1. Odabir načina prikaza podataka u aplikaciji Kibana Dashboard

Page 13: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

9

4.3. Usluga Amazon Simple Notification Service (SNS)

Simple Notification Service (SNS) je usluga za automatsko slanje poruka obavijesti

preko postavljenog pravila, okidača. S ovom uslugom obavijesti se mogu slati velikom

broju pretplatnika, uključujući raspodijeljene sustave i usluge te mobilne uređaje.

Slanje poruke bez specifičnog zahtjeva od strane primatelja, tzv. push notifikacije

moguće je postići preko različitih usluga: Amazon Device Messaging (ADM), Baidu

Cloud Push (Baidu), Google Cloud Messaging for Android (GCM), Windows Push

Notification Services (WNS) i drugih. Također, SNS uslugu je moguće konfigurirati i

za slanje poruka na krajnje točke poput elektroničke pošte, SMS-a, HTTP-a i drugih.

Nakon što vlasnik stvori temu, korisnici se na nju mogu pretplatiti preko poruke koju

su dobili, kako bi i dalje nastavljali dobivati obavijesti vezane za tu temu. Takav će se

način rada koristiti i u ostvarenju ovog sustava Interneta stvari. Model je prikazan na

slici Sl. 4.3.1.

Slika 4.3.1. Princip rada usluge Amazon SNS

Page 14: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

10

5. OSTVARENJE PRIMJERA SUSTAVA INTERNETA STVARI

5.1. Postavljanje računala Raspberry Pi

Prvi korak postavljanja računala Raspberry Pi je instaliranje operacijskog sustava na

SD karticu koja će biti korištena kao stalna memorija. Na službenoj stranici Raspberry

Pi-a potrebno je preuzeti ISO sliku OS-a Raspbian (razvijen na bazi Debiana, UNIX

operacijskog sustava). U ovom slučaju korišten je Raspbian Stretch with Desktop,

kojega je moguće preuzeti s poveznice [1].

Nakon što je ISO datoteka preuzeta, potrebno je umetnuti SD karticu (preporučuje se

da ne bude kapaciteta manjeg od 8 GB) u korisnikovo računalo koje posjeduje čitač

kartica, formatirati ju (najlakši je način za to alatom Diskpart već ugrađenim u

Windows računala) i programom Etcher snimiti prethodno preuzetu ISO datoteku na

SD karticu.

Kako je navedeno u prethodnom poglavlju o računalu Raspberry Pi, razvijen je način

udaljenog povezivanja s Raspberry Pi preko protokola SSH (Secure Shell). To je

protokol koji korisnicima omogućava uspostavu sigurnog komunikacijskog kanala

između dva računala putem nesigurne računalne mreže.

Kako bismo mogli spojiti osobno računalo s računalom Raspberry Pi mrežnim UTP

kabelom moramo poznavati IP adrese. Kada se dva računala izravno spajaju UTP

kabelom koriste se tzv. privatne adrese prefiksa 169.254. Za Raspberry Pi odabere se

jedna takva adresa i upiše u datoteku “cmdline.txt“ koja se nalazi na SD kartici. Na

sam kraj te datoteke otvorene u nekom uređivaču teksta, treba dodati

“ip=169.254.1.1“. Tako pripremljenu SD karticu umetnemo u računalo Raspberry Pi.

Potrebno je uključiti Raspberry Pi kabelom za napajanje (microUSB), te spojiti

Raspberry Pi i računalo korisnika UTP kabelom (preko Ethernet priključaka). Sljedeći

je korak instalacija programa PuTTY na osobno računalo koji koristi SSH protokol za

spajanje na udaljeno računalo preko mreže, kako bismo mogli koristiti terminal

računala Raspberry PI. Unutar okvira Host Name (or IP adress) potrebno je upisati IP

adresu odredišta, koju smo prethodno postavili (169.254.1.1), stisnuti Enter na

Page 15: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

11

tipkovnici i biti će pokrenut novi prozor u kojemu je ostvarena udaljena veza s

računalom Raspberry PI. Prozor programa PuTTY prikazan je na slici Sl. 5.1.1.

Slika 5.1.1. Program PuTTY

Korisničko ime je “pi“, a lozinka “raspberry“, što je moguće promijeniti.

Program PuTTY ne može koristiti grafičko korisničko sučelje (GUI), nego samo

komandnu liniju, stoga ako je potrebno koristiti grafičko korisničko sučelje, treba

instalirati TightVNC program, koji također služi za komunikaciju s udaljenim

računalima preko mreže. Za većinu korisnika, kao i za ovaj projekt, korištenje ovog

programa neće biti potrebno.

Kako bismo mogli slati podatke na platformu AWS IoT i obrađivati ih, Raspberry Pi

mora biti spojen na Internet. Računalo Raspberry Pi koje koristimo ima integriran Wi-

Fi modul za bežično povezivanje na mrežu. Postavke mreže treba napraviti preko

datoteke interfaces.txt, koju je potrebno otvoriti nekim od uređivača teksta (npr. nano).

Page 16: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

12

Uporabom naredbe “sudo nano /etc/network/interfaces“, otvara se datoteka koju je

potrebno urediti kako bi se računalo spojilo na postojeću bežičnu mrežu. Tekst unutar

datoteke mora biti oblika prikazanog unutar isječka koda, s tim da je “Your Network

SSID“ potrebno zamijeniti s nazivom bežične mreže na koju se spaja, a “Your

Password“ s lozinkom mreže.

Isječak koda 5.1.1. Tekst datoteke interfaces.txt

auto lo

iface lo inet loopback

iface eth0 inet dhcp

allow-hotplug wlan0

auto wlan0

iface wlan0 inet dhcp

wpa-ssid “Your Network SSID“

wpa-psk “Your Password“

Nakon što je datoteka uređena i spremljena te Raspberry Pi ponovno pokrenut (reboot),

naredbom “ifconfig“ može se provjeriti ispravnost postavki bežične mreže. Ispod retka

koji počinje s “wlan0“ trebala bi pisati IP adresa “inet addr“ koja je dodijeljena

računalu, i s time je uspješno završeno postavljanje računala Raspberry Pi.

5.2. Povezivanje platforme AWS IoT s računalom Raspberry Pi

Prvi je korak registracija na poveznici [2] stvaranjem besplatnog korisničkog računa.

Nakon uspješne registracije, potrebno je odabrati uslugu koji će se koristiti – AWS

IoT. Prikazuje se mrežna stranica kao na slici Sl. 5.2.1.

Page 17: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

13

Slika 5.2.1. Početna stranica AWS IoT platforme

Kako bismo povezali Raspberry Pi sa uslugom AWS IoT, kliknemo na “Get started“

prilikom čega se pokreće stvaranje novog entiteta – stvari, koje ćemo nadzirati.

Upišemo ime “RaspberryPI“ i kliknemo “Create“ za dovršetak postupka.

AWS IoT podržava isključivo sigurnu vezu, koristeći datoteke certifikata koje je

potrebno stvoriti, aktivirati i staviti na računalo Raspberry Pi. Najlakši način je klikom

na Onboard => Get Started => Get Started. Potrebno je odabrati operacijski sustav koji

se koristi na računalu (Linux) i skup alata (SDK) koji će biti korišten. Odabrati ćemo

Python jer je to najpristupačniji programski jezik za izradu ovakvog rada. Potrebno je

kliknuti “Next“ i kliknuti na “Linux/OSX“ kako bi preuzeli sve potrebne certifikate (u

zip formatu). Dodatnim klikom na “Next“ postavljanje je dovršeno.

Sada se preuzeti certifikati moraju prebaciti na računalo Raspberry Pi. To je najlakše

napraviti preko naredbe “scp“ u komandnoj liniji Windows operacijskog sustava.

Podaci se šalju protokolom SSH. Na računalu Raspberry Pi mora se napraviti direktorij

u koji će datoteka sa certifikatima biti smještena, npr. /home/pi/deviceSDK, unutar

glavnog direktorija stvara se direktorij deviceSDK. Potrebno je preuzeti datoteku

“pscp.exe“ i staviti ju u direktorij gdje se nalazi zip datoteka sa certifikatima koju

šaljemo, te otvoriti komandnu liniju u tom direktoriju. Za slanje datoteke potrebno je

upisati naredbu:

pscp -scp connect_device_package.zip [email protected]:deviceSDK/

Page 18: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

14

Time će datoteka biti premještena. Na Raspberry Pi ona se mora raspakirati naredbom

unzip connect_device_package.zip. Time su certifikati stvoreni i aktivirani, te je

moguće početi samu izgradnju sustava.

5.3. Spajanje senzora DHT11 i svjetleće diode na Raspberry Pi

DHT11 očitava temperaturu i vlažnost zraka. Postoje dva tipa ovog senzora, s 3 i 4

pina. U ovom slučaju koristi se senzor s 3 pina: GND (uzemljenje), +5V (naponski

pin) i pin za podatke. Senzor je malih dimenzija i potrošnje, napaja se s naponom 3.5

5V, maksimalne struje 2.5 mA, raspona mjerenja vlažnosti zraka od 20 do 90% s

pogreškom od ±5%, a temperature od 0 do 50 °C, s pogreškom od ±2 °C. Senzor se na

Raspberry Pi spaja preko GPIO pinova, pri čemu se koriste 3 pina : #02 (DC napajanje

5V), #07 (GPIO04, GPIO_GCLK, podatkovni) i #06 (uzemljenje).

Slika 5.3.1. prikazuje shemu spajanja senzora DHT11 i računala Raspberry Pi koristeći

eksperimentalnu pločicu. Prije spajanja senzora, obavezno je isključiti računalo iz

napajanja.

Slika 5.3.1. Spajanje senzora DHT11 na Raspberry Pi

Kako bismo pokazali povezivanje naprava s protokolom MQTT u oba smjera (s

platforme AWS IoT na Raspberry Pi i obrnuto), potrebno je spojiti i LED diodu koja

Page 19: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

15

će se uključivati u ovisnosti o podacima dobivenih sa senzora, neizravno preko

platforme AWS IoT. LED dioda je spojena na GPIO 18 (pin broj 12) računala

Raspberry Pi, preko otpornika vrijednosti 1000 Ω. Potrebno je paziti na polaritet diode,

pri čemu je pozitivna strana preko otpornika spojena na pin 12, dok je negativna strana

spojena na uzemljenje, npr. pin 14.

5.4. Programiranje u Pythonu

Python je programski jezik opće namjene, interpretiran i visoke razine, a stvoren je

1990. godine. Vrlo je fleksibilan i jednostavne sintakse pa je pogodan za ovakve

sustave.

Kako bismo mogli očitavati podatke sa senzora, potrebno je preuzeti biblioteku (engl.

library) za taj senzor. Upisom slijedeće naredbe u terminal Raspberry PI računala,

stvara se direktorij “DHT11_Python“ koji sadrži nužne datoteke i u tom se direktoriju

može napisati skripta koja očitava podatke dobivene sa senzora i šalje ih na AWS IoT.

git clone https://github.com/szazo/DHT11_Python

cd DHT11_Python

sudo nano read_and_publish.py

Tako je stvorena Python skripta naziva “read_and_publish“ koja će pokrenuti

očitavanje senzora i slanje podataka na uslugu AWS IoT, kao i upravljanje LED

diodom.

Isječak koda 5.4.1. Sadržaj Python skripte za pokretanje sustava

import RPi.GPIO as GPIO 1

import dht11 2

from AWSIoTPythonSDK.MQTTLib import AWSIoTMQTTClient 3

from time import sleep 4

from datetime import date, datetime 5

6

7

Page 20: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

16

# inicijalizacija GPIO 8

GPIO.setwarnings(False) 9

GPIO.setmode(GPIO.BCM) 10

GPIO.cleanup() 11

GPIO.setup(18, GPIO.OUT) 12

GPIO.output(18, GPIO.LOW) 13

14

# AWS IoT povezivanje sa certifikatima 15

myMQTTClient = AWSIoTMQTTClient("stignedec") 16

myMQTTClient.configureEndpoint("a3qabghlncz005.iot.eu-central- 17

1.amazonaws.com", 8883) 18

myMQTTClient.configureCredentials("/home/pi/deviceSDK/root-CA.crt", 19

"/home/pi/deviceSDK/RaspberryPI.private.key", 20

"/home/pi/deviceSDK/RaspberryPI.cert.pem") 21

myMQTTClient.configureOfflinePublishQueueing(-1) 22

myMQTTClient.configureDrainingFrequency(2) 23

myMQTTClient.configureConnectDisconnectTimeout(10) 24

myMQTTClient.configureMQTTOperationTimeout(5) 25

26

# poruka prilikom povezivanja 27

myMQTTClient.connect() 28

myMQTTClient.publish("thing01/info", "connected", 0) 29

30

# callback funkcija za ukljucivanje diode 31

def switch(client, userdata, message): 32

print("***WARNING***\n") 33

GPIO.output(18, GPIO.HIGH) 34

35

# pretplata za LED 36

myMQTTClient.subscribe("thing01/led", 0, switch) 37

38

#citanje senzora i slanje na AWS IoT 39

while 1: 40

now = datetime.utcnow() 41

#format u obliku 2016-04-18T06:12:25.877Z 42

Page 21: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

17

now_str = now.strftime('%Y-%m-%dT%H:%M:%SZ') 43

#pin GPIO04 za podatke 44

instance = dht11.DHT11(pin = 4) 45

result = instance.read() 46

GPIO.output(18, GPIO.LOW) 47

if result.is_valid(): 48

payload = ' "timestamp": "' + now_str + '","temperature": ' 49

+ str(result.temperature) + ',"humidity": ' + 50

str(result.humidity) + ' ' 51

print payload 52

myMQTTClient.publish("thing01/data", payload, 0) 53

sleep(10) 54

Na početku je potrebno dohvaćanje potrebnih modula i inicijalizacija GPIO pinova

računala Raspberry Pi te povezivanje s AWS IoT certifikatima. Kao što je opisano

ranije, podaci se šalju protokolom MQTT, koji radi na principu “objavi-pretplati“ uz

središnju ulogu posrednika koji prati pretplate i ovisno o njima delegira poruke. U

ovom se slučaju poruke obavijesti povezivanja šalju na temu “thing01/info“ (linije 27-

29), a podaci sa senzora na “thing01/data“ (linija 53). S druge strane, sama je naprava

(računalo Raspberry Pi) pretplaćena na temu “thing01/led“ i kada s nje dobije određene

podatke, poziva se funkcija povratnog poziva (engl. callback function) za upravljanje

LED diodom (linije 31-37). Kako bi se podaci slali na tu temu, potrebno je postaviti

pravilo koje će raditi kao okidač za neki skup podataka, što će biti objašnjeno u

narednim poglavljima. Time je ostvarena obostrana komunikacija preko AWS IoT

opcije postavljanja pravila kao okidača.

Usluga AWS IoT sadrži testnu konzolu preko koje je moguće provjeriti ispravnost rada

očitavanja senzora, odnosno slanja podataka na mrežu. Odabirom opcije “Test“ na

lijevom izborniku, te odabirom “Subscribe to topic“, moguće je oponašati klijenta koji

je pretplaćen na određenu temu. Ako hoćemo dobivati poruke sa svih postojećih tema,

dovoljno je pod “Subscription topic“ upisati simbol ljestvi (#) i kliknuti “Subscribe to

topic“.

Page 22: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

18

Sada možemo pokrenuti skriptu na računalu Raspberry Pi naredbom “python

read_and_publish.py“. Podaci se ispisuju i šalju na uslugu AWS IoT prethodno

opisanim postupkom. Na AWS IoT testnoj konzoli moguće je vidjeti sve podatke koje

šalje računalo Raspberry Pi, prikazano na slici Sl. 5.4.1.

Slika 5.4.1. Testiranje simulacijom MQTT klijenta

5.5. Postavke DynamoDB baze podataka

Amazon DynamoDB je usluga za stvaranje i upravljanje bazama podataka. Pokreće se

iz AWS IoT platforme (upisom unutar tražilice). Klikom na “Create table“ stvaramo

novu tablicu te u polja upisujemo naziv tablice i primarni ključ. Kao primarni ključ,

najbolje je uzeti vrijeme očitanja podatka koje se sprema u varijablu timestamp.

Klikom na “Create“ stvorena je tablica, koja je trenutno prazna.

Sada je potrebno unutar usluge AWS IoT postaviti pravilo koje će prosljeđivati

podatke u bazu. Klikom na “Act“ te “Create“ otvara se prozor za stvaranje okidača.

Unutar ponuđenih polja je potrebno upisati ime pravila i opis po želji. Također treba

postaviti pravilo u obliku SQL upita kako bi se svi podaci s određene teme slali u bazu.

SQL upit će izgledati kao “SELECT * FROM 'thing01/data'“. Dodavanjem akcije

(klikom na “Add action“) i odabirom “Split message into multiple columns of a

Page 23: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

19

database table (DynamoDBv2)“ podaci će se raspodijeliti u različite stupce tablice

(atribute). Unutar polja “Table name“ treba odabrati prethodno stvorenu tablicu i

stvoriti ulogu (engl. role) kako bi AWS IoT dobio pristup usluzi DynamoDB. Klikom

na “Create rule“ stvoreno je pravilo i sada ponovno možemo pokrenuti uslugu

DynamoDB. Klikom na stvorenu tablicu i odabirom izbornika “Items“ dobili smo

tablicu popunjenu podacima sa senzora, po atributima vlažnosti, temperature i

vremena očitanja. Podatke je moguće jednostavno sortirati i filtrirati. Slika 5.5.1.

prikazuje filtriranje podataka iz tablice koji su se dogodili nakon 17:39:00 dana 2.

lipnja 2018. godine.

Slika 5.5.1. Prikaz filtriranja podataka iz baze

5.6. Postavke usluge AWS Elasticsearch

Kako je navedeno u prethodnim poglavljima, postavljanje usluge Elasticsearch vrlo je

jednostavno, pri čemu se na početku stvara domena kojoj se može pristupiti ovisno o

postavljenim dozvolama. Kako bismo započeli postavljanje, potrebno je otvoriti

Elasticsearch Service konzolu i stvoriti novu domenu te joj dodijeliti ime. Sve do

koraka pod brojem 3 potrebno je kliknuti “Next“. Korak 3 je dodjela prava pristupa

podacima. Potrebno je pod “Network configuration“ odabrati “Public access“ i unutar

“Access policy“ odabrati “Allow open access to the domain“. Ovim smo izborom

omogućili svima pristup stvorenoj domeni. Moguće je napraviti i zabrane pristupa

prema IP adresama korisnika, ali to u ovom slučaju neće biti potrebno. Nakon klika na

Page 24: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

20

“Next“ postupak je završen i nakon nekoliko minuta vrijednost entiteta “Domain

status“ će se promijeniti u “Active“.

Sljedeći je korak postavljanje pravila tako da sve dolazne poruke/podaci budu

proslijeđeni na ElasticSearch domenu. Unutar konzole usluge AWS IoT potrebno je

odabrati “Act“ pa “Create a rule“, te dodijeliti pravilu ime, u ovom slučaju

“publishtoelasticsearch“. Unutar postavke pravila potrebno je odabrati podatke koji će

biti potrebni za daljnju obradu, uporabom SQL izraza, npr. “SELECT * FROM

'thing01/data'“. Potrebno je dodati akciju “Send messages to the Amazon ElasticSearch

Service“ te odabrati prethodno stvorenu domenu. Ostale potrebne postavke prikazane

su na slici Sl. 5.6.1. (treba i kreirati ulogu klikom na “Create a new role“).

Slika 5.6.1. Postavljanje pravila za uslugu Elasticsearch

Klikom na “Create“ stvoreno je pravilo i sada se može postaviti aplikacija Kibana

Dashboard za vizualni prikaz podataka dobivenih sa senzora.

Page 25: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

21

5.7. Postavke Kibana Dashboard aplikacije

Kibana Dashboard je aplikacija unutar usluge Elasticsearch za vizualizaciju podataka.

Podatke dobiva preko uzorka indeksa, kojega je potrebno stvoriti.

Aplikacija Kibana pokreće se klikom na poveznicu unutar domene usluge

ElasticSearch (uz oznaku “Kibana“). Prilikom prvog pokretanja, automatski će biti

odabran izbornik “Management“ u kojem se stvara uzorak indeksa. Potrebno je

označiti stavku “Index contains time-based events“ jer će se podaci prikazivati u

ovisnosti o vremenu. Unutar polja “Index name or pattern“ upisati “thing01“, to je

naziv teme na koju se pretplaćujemo. U polju “Time-field name“ biti će stvoreno

“timestamp“. Klikom na “Create“, dovršena je prilagodba uzorka indeksa, te je sljedeći

korak postavljanje prikaza podataka dobivenih preko tog indeksa.

Klikom na “Discover“ u lijevom izborniku vidljivi su podaci koji su primljeni preko

indeksa. Klikom na “Visualize“ => “+“ => “Line“ => “From a new search“ dobiti

ćemo grafički prikaz vrijednosti podataka u ovisnosti o vremenu očitanja.

Postavke prikaza grafa ćemo podesiti prema slici Sl. 5.7.1., na x-os će biti varijabla

timestamp (vrijeme), a na y-os temperatura i vlažnost (uzima se prosjek ako se dogodi

više očitanja u jednom trenutku).

Slika 5.7.1. Podešavanje prikaza grafa

Page 26: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

22

Klikom na “Save“ prikaz je spremljen, a klikom na “Refresh“ prikaz će se osvježavati

novim podacima koji dolaze tijekom vremena. Pored gumba “Refresh“ moguće je

birati vremenski period prikaza podataka. Također je moguće klikom na “Add a filter“

filtrirati podatke po nekom uvjetu. Dobiveni prikaz tijekom testiranja sustava prikazan

je na slici Sl. 5.7.2.

Slika 5.7.2. Prikaz dobivenih podataka sa senzora u posljednjih sat vremena

5.8. Postavke usluge SNS i upravljanja LED diodom

Amazon AWS Simple Notification Service (SNS), jednostavna je usluga za slanje

poruka obavijesti automatski preko stvorenog okidača. Potrebno je pokrenuti uslugu

SNS te kliknuti na “Create topic“. Pritom se stvara tema na koju će korisnik biti

pretplaćen i preko koje će dobivati obavijesti. Potrebno joj je dodijeliti naziv i naslov

poruke koji će biti prikazan prilikom dobivanja obavijesti, npr. “Upozorenje“. Klikom

na “Create topic“ stvorena je tema.

Page 27: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

23

Sada se na stvorenu temu potrebno pretplatiti, klikom na “Create Subscription“.

Koristiti ćemo obavještavanje korisnika putem elektroničke pošte, pa je unutar stavke

“Protocol“ potrebno odabrati “Email“, te upisati adresu elektroničke pošte korisnika

koji želi dobivati obavijesti. Klikom na “Create Subscription“ šalje se potvrdna poruka

elektroničke pošte korisniku, koju je potrebno potvrditi kako bi se dovršio postupak,

prikazana na slici Sl. 5.8.1.

Slika 5.8.1. Potvrdna poruka pretplate na temu

Nakon uspješne potvrde, usluga SNS nudi mogućnost slanja testne poruke, odnosno

objavljivanja na temu. Odabirom teme, te klikom na “Publish to topic“ otvara se prozor

unutar kojega je potrebno upisati naslov poruke (engl. subject) i sam tekst poruke

(engl. message). Klikom na “Publish message“ poruka je objavljena i korisnici koji su

se na nju pretplatili dobili su je u svom sandučiću elektroničke pošte.

Kako bi se poruke obavijesti slale automatski, potrebno je stvoriti novo pravilo unutar

AWS IoT konzole. Ime pravila može biti “sendnotifications“. SQL upit oblikuje se

ovisno o potrebi obavještavanja, npr. ako želimo dobivati obavijesti ukoliko je

temperatura koju očitava senzor veća od 28 °C, SQL upit će izgledati ovako :

SELECT temperature FROM 'thing01/data' WHERE temperature>28

Page 28: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

24

Prilikom odabira akcije ukoliko je uvjet u SQL upitu ispunjen, odabire se “Send a

message as an SNS push notification“. Također je potrebno kreirati novu ulogu i

dovršiti klikom na “Allow“.

Uz to, potrebno je i poslati poruku na temu “thing01/led“ kako bi se uključila svjetleća

dioda ako je uvjet unutar SQL upita ispunjen. Stoga je još potrebno stvoriti akciju

“Republish messages to an AWS IoT topic“. Unutar prozora akcije upisuje se naziv

teme na koju se poruka šalje (koja je u obliku “temperature : value“) i stvara se nova

uloga za pristup. Nakon stvaranja ove akcije, postavljanje sustava Interneta stvari uz

pregled značajki platforme AWS IoT je u potpunosti završeno i testiranjem je moguće

utvrditi njegovu ispravnost. Prelaskom temperature izvan granične vrijednosti,

korisnik u stvarnom vremenu dobiva poruku elektroničke pošte o trenutnoj vrijednosti

temperature potpuno automatski (prikazano na slici Sl. 5.8.2.), kao i vizualnu obavijest

preko svjetleće diode.

Slika 5.8.2. Poruka obavijesti korisniku putem e-pošte

Page 29: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

25

6. DODATNE MOGUĆNOSTI AMAZONOVIH USLUGA U

OBLAKU

Postoji još mnogo različitih usluga koje nudi Amazon kako bi olakšao upravljanje

napravama u oblaku i rukovanje podacima. Kao što smo vidjeli, taj skup usluga mora

se međusobno povezati tako da čini jednu funkcionalnu cjelinu.

Dvije najvažnije usluge koja nisu toliko značajna za Internet stvari, ali se često koriste

u praksi, su Elastic Compute Cloud (EC2) i Simple Storage Service (S3).

EC2 je usluga u oblaku koja pruža mogućnost rezerviranja virtualnih računala koje

imaju jednaka svojstva kao i stvarna fizička računala. To je usluga opće namjene, na

koju se nadovezuju ostale usluge (npr. Relational Database Service (RDS) – usluga

relacijske baze podataka). Jedna instanca virtualnog računala ima svoja svojstva, kao

što su snaga procesora, radna memorija, dodijeljeni prostor na disku, instalirani

operacijski sustav… Ova se usluga naplaćuje po radnom satu i prema hardverskoj

snazi računala. Sustav koji se koristi na virtualnom računalu je Amazon Machine

Image (AMI), prethodno prilagođena slika virtualnog stroja koja se koristi za stvaranje

samog virtualnog stroja tako da nije potrebno raditi instalaciju i postavljanje

cjelokupnog sustava. Kada se AMI pokrene prvi puta, dobije se izbor više operacijskih

sustava, na koji se nakon odabira povezuje preko SSH protokola. Postoje brojne opcije

koje omogućavaju upravljanje instancama, od kopiranja do čuvanja cijelih slika diska,

pa i stvaranje novih virtualnih sustava unutar navedenog. Svaka instanca dobiva svoju

IP adresu na unutarnjoj Amazonovoj mreži, te javnu dinamičku IP adresu dostupnu

svima, kao i potpuno kvalificirano domensko ime (engl. Fully Qualified Domain

Name, FQDN) oblika “ec2-xxx-yyy-zzz-ppp.compute-1.amazonaws.com“ koja je

također dinamička.

S3 je usluga za čuvanje velikih količina podataka. Može se predočiti kao veliki tvrdi

disk unutar kojega su podaci raspoređeni u kante (engl. buckets) i direktorije. U

pozadini direktoriji ne postoje, nego se sve datoteke nalaze na istoj razini i dostupne

su po svom imenu. Usluga S3 omogućava specifične opcije za upravljanje datotekama,

kao što je brisanje datoteke nakon određenog vremena. Također se jamči i za sigurnost

podataka, jer se oni inicijalno spremaju kao dvije identične kopije.

Page 30: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

26

Povezanost prethodno navedenih usluga očituje se u tome da su sami AMI spremljeni

na usluzi S3. Također, neke od poznatih platformi koje koriste S3 su Tumblr, Netflix,

Dropbox i druge.

Sve prethodno navedene usluge svakim se danom nadograđuju novim značajkama.

Najčešće je to povećanje mogućnosti upravljanja i razne opcije unutar usluga, kao i

povećanje lakoće postavljanja pojedinih usluga. Tako su i unutar ovog rada korišteni

gotovi alati koji su imali za cilj olakšati postavljanje usluga novim korisnicima (npr.

zip datoteka sa certifikatima koji se automatski stvaraju).

Ostvareni se sustav može koristiti u kućanstvima za nadzor temperature u prostoriji,

ali i u industrijskim postrojenjima za nadzor određenih strojeva i alata kako bi se

spriječila šteta uzrokovana pregrijavanjem. Postoji mnogo drugih sustava Interneta

stvari koji koriste sličnu arhitekturu, a uglavnom su svi izvedeni iz ovakvog sustava,

koristeći neke od usluga u oblaku.

Page 31: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

27

7. ZAKLJUČAK

Internet stvari vrlo je značajna tema koja se sve češće spominje unutar krugova koji se

bave računarstvom, ali i šire u ostalim granama ljudskog društva. U današnje se

vrijeme svaki uređaj na neki način povezuje s drugim kako bi dobili dodatne

funkcionalnosti uz što manje troškove. Raspberry Pi jedno je od najkorištenijih

računala razvijenih za potrebe učenja računarske znanosti kroz praktične projekte te je

zainteresirao velik broj ljudi koji tek počinju učiti osnove računarstva. Postoje brojne

usluge koje nude upravljanje podacima dobivenih od nekih komponenata koje su

povezane na Internet. Usluga korištena u ovom radu je AWS IoT razvijena od tvrtke

Amazon, koja se još uvijek razvija dodajući brojne mogućnosti uz postizanje znatnije

lakoće korištenja.

Rezultat ovog rada je zaokruženi sustav za upravljanje napravama putem Interneta uz

pregled značajki različitih usluga u oblaku. Ostvarena je dvosmjerna veza između

ugrađenog računala Raspberry Pi usluga u oblaku koristeći MQTT protokol.

Korištenjem senzora DHT11 prikazane su mogućnosti obrade prikupljenih podataka

preko usluga u oblaku, kao i upravljanje svjetlećom diodom korištenjem usluge AWS

IoT.

Opisane se usluge neprestano nadograđuju raznim značajkama kako bi se novim

korisnicima olakšalo korištenje. Također, cilj je ovog rada bio zainteresirati što veći

broj ljudi za Internet stvari i razvoj sličnih sustava pomoću usluga u oblaku, kako bi

se ljudski život učinio što jednostavnijim uz maksimalnu iskoristivost dostupnih

tehnologija.

Page 32: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

28

LITERATURA

[1] Preuzimanje slike operacijskog sustava Raspbian, 15. 3. 2018.,

https://www.raspberrypi.org/downloads/raspbian/

[2] Početna stranica Amazon AWS usluga u oblaku, 18. 3. 2018.,

https://aws.amazon.com/

[3] Headless Raspberry PI Setup, 22. 3. 2018.,

https://hackernoon.com/raspberry-pi-headless-install-462ccabd75d0

[4] How to set up the DHT11 humidity sensor on the Raspberry Pi, 2. 4. 2018.,

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

raspberry-pi/

[5] DHT11 Temperature and Humidity Sensor, 6. 4. 2018.,

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

sensor-raspberry-pi/

[6] Streaming Sensor Data (Raspberry PI) to AWS IoT, 12. 4. 2018.,

http://techblog.calvinboey.com/raspberrypi-aws-iot-python/

[7] Creating and Configuring Amazon Elasticsearch Service Domains, 20. 4. 2018.,

http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-

createupdatedomains.html

[8] Visualizing sensor data on AWS IoT, 1. 5. 2018.,

https://onion.io/2bt-aws-iot-visualizing-sensor-data/

[9] Using AWS IoT and JS SDK (Node.js) to control LED, 7. 5. 2018.,

https://medium.com/@rohanmaheshwari/using-aws-iot-with-the-js-sdk-node-to-

turn-an-led-on-and-off-with-a-raspberry-pi-be43346a5bd4

Page 33: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

29

SAŽETAK

Upravljanje stvarima korištenjem platforme AWS IoT Services

Ovaj se rad bavi proučavanjem mogućnosti korištenja platforme AWS IoT kao i

povezanih usluga u oblaku, uz izgradnju jednostavnog sustava Interneta stvari.

Korišteno je računalo Raspberry Pi na koje je spojeno nekoliko jedinica kojima

upravljamo preko usluga u oblaku. Ostvarena je obostrana komunikacija između

naprava i usluga u oblaku preko protokola MQTT, uz pregled mogućnosti

najkorištenijih usluga koje pruža platforma AWS IoT.

Ključne riječi : Internet stvari, platforma AWS IoT, Raspberry Pi, protokol MQTT

Page 34: UPRAVLJANJE STVARIMA KORIŠTENJEM PLATFORME AWS IOT … · Amazon Elasticsearch je pretraživač (engl. search engine) koji olakšava stvaranje, ... 4.3. Usluga Amazon Simple Notification

30

SUMMARY

Internet of Things Device Control with AWS IoT Services

The subject of this paper is the study of the ability to use the AWS IoT Services, as

well as related cloud services, through implementation of a simple Internet of Things

system. Raspberry Pi was used to connect several units that are managed through the

cloud service. Mutual communication was accomplished between cloud services and

devices using MQTT protocol, with an overview of the most used services provided

by the AWS IoT Services.

Keywords: Internet of Things, AWS IoT Services, Raspberry Pi, MQTT protocol