Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
IoTIoT““Vodič za kupovinuVodič za kupovinu””
... i povezivanje... i povezivanje
Aleksandar JovičićAleksandar Jovičić[email protected]@jovicic.name
Šta je to “Internet of Things”?
● Globalna infrastruktura za “informaciono društvo”, koja omogućava napredne usluge medjusobnim povezivanjem (fizičkim i virtualnim) stvari, korišćenjem postojećih i novorazvijenih informacionih i komunikacionih tehnologija.
● Medjusobna veza uredjaja, vozila, zgrada i ostalih stvari u koje je ugradjena elektronika, softver, senzori, aktuatori i komunikacioni sistemi kako bi prikupljali podatke iz okruženja i razmenjivali ih medjusobno.
Kako od “glupog” uredjaja napraviti “pametnu stvar”?
● Dodati mu senzore● Povezati mu na pokretne delove aktuatore● Kontrolisati mu uključivanje/isključivanje
napajanja relejima ili optokaplerima● Upravljati ga mikrokontrolerima ili single-board
računarima● Povezati ga sa ostalim uredjajima u kući● Povezati ga sa nadzorno-upravljačkim
aplikacijama na Internetu
Da li to puno košta?
● Zavisi ...– ... od toga koliko ste spremni da učite
– ... od toga koliko poznajete elektroniku
– ... od toga koliko poznajete programiranje
– ... od toga koliko ste uporni da savladate prepreke
– ... od toga da li koristite elektronsko plaćanje
– ... od toga koliko košta “glupi” uredjaj(ako postane neupotrebljiv posle vaše “intervencije”)
Da li je “free” uvek besplatno?
● Može da bude ali i ne mora● FLOSS - Free/Libre and Open Source Software
znači da je slobodno njegovo korišćenje ali nije obavezno i da je besplatno
● FOSH - Free and Open-Source Hardwarene znači da vam neko poklanja uredjaje nego da vam daje nacrte, šeme, listu delova i ostalo na osnovu čega možete napraviti svoj uredjaj
A za nas “lenje” ...
● Raspberry PI (www.raspberrypi.org)– Računar veličine kreditne kartice koji je moguće priključiti na TV i
na njega povezati tastaturu. Osim što radi većinu stvari koje radi i klasičan PC, na njega je moguće povezati i razne elektronske komponente. Koristi prilagodjene distribucije Linux OS-a
● Arduino (www.arduino.cc)– Open-source elektronska platforma bazirana na Atmel
mikrokontrolerima na koju je moguće povezati elektronske komponente. Čak i sa skromnim performansama, upotrebljiv je za kontrolu senzora i aktuatora a uz odgovarajuće dodatke moguće ga je mrežno povezati
● NodeMCU (www.nodemcu.com)– Razvojna platforma bazirana na ESP8266 WiFi čipu (sa
ugradjenim mikrokontrolerom)
Kako se “to” programira?
● Raspberry PI– Bilo koji programski jezik koji je moguće
kompajlirati/izvršavati na ARMv6 ili ARMv7 procesoru (Python, C/C++, Java, Scratch i Ruby su po default-u instalirani)
● Arduino– Arduino programski jezik (skup C/C++ funkcija koje je
moguće pozivati iz koda) na Arduino Software IDE
● NodeMCU– LUA scripting jezik ... ili ...
– Arduino programski jezik uz instaliran ESP8266 modul na Arduino Software IDE
Šta je bitno da znamo u vezi elektronike?
● STRUJA UBIJA!!!● Ako baš i ne ubije vas, može da “sprži” uredjaj ili komponentu ako
ne vodite računa o naponu na kojem je predvidjeno da sme da radi● Neke komponente “razgovaraju” analogno a neke digitalno
– analogne šalju bilo koji napon izmedju 0 i Vmax
– digitalne mogu da budu samo 0 ili Vmax
● Procesor “ne razume” analogni “govor” pa ga je potrebno prevesti A/D konvertorom u digitalni
– pomenuti razvojni sistemi uglavnom poseduju A/D konvertor(e)
● Ne postoji samo jedan digitalni “jezik”. Potrebno je poznavati komunikacioni protokol da bi se komponente “sporazumele”
– za većinu protokola već postoje odgovarajuće biblioteke (npr. 1-wire, I2C)
Gde se to može nabaviti?
● Kod domaćih distributera– MikroPrinc, Saperel, DigiSTORE ...
– zna da bude “malo skuplje”
● Kod proizvodjača– neki ne isporučuju u našu zemlju
● Na on-line shopping sajtovima– eBay, Aliexpress, DX ...
– obično je puno povoljnije nego kod nas (za većinu sitnica Carina ne naplati čak ni PDV)
– “strpljen - spašen” ... vreme isporuke zna da bude i duže od mesec dana
Pa da počnemo ...
... sa predstavljanjem nekihod modela proizvoda
Raspberry Pi 3 model B
Raspberry Pi 2 model B
BroadcomBCM2836Cortex-A7at 900 MHz,1GB RAM
1.8
Raspberry Pi Zero
Arduino Uno
Arduino Mega
Arduino Yún
Arduino Nano
NodeMCU LoLin
NodeMCU WeMos D1 mini
Šta nabaviti prvo?
... a zatim?
Reč-dve o napajanju
● Napon– jednosmeran (DC) i stabilisan
– 5V (često se koristi zbog kompatibilnosti sa USB)
– 3.3V (omiljen kod jednog broja komponenti)
– 9-12V (samo preko regulatora ili ulaza predvidjenih za to)
● Struja– 500mA ili veća
– 1A za uobičajenu upotrebu kod Arduina
– 2A i više za RPI ili ukoliko ima GSM/GPRS komponenti
– odvojeni izvor napajanja za veće potrošače i motore
... i umrežavanju
● direktno– podaci se ne čuvaju ili se čuvaju samo kratko vreme
– WiFi AP i web server su na samom uredjaju
... i umrežavanju
● u LAN-u– uredaji se povezuju preko rutera
– podaci mogu da se duže čuvaju
– web server može da bude smešten na single-board računaru u okviru iste mreže
... i umrežavanju
● u “oblaku”– uredjaji šalju podatke na VPS ili “cloud”
– kompleksniji RDBMS mogu da se koriste za čuvanje
– moguća je i ozbiljnija obrada podataka na serveru
A bezbednost?
● Ukoliko je potrebno kontrolisati neki aktuator od spolja, povećava se rizik za bezbednosne propuste i provalu u lokalnu mrežu
A bezbednost?
● Otvaranje “rupa” u firewall-ovima ili smeštanje u DMZ jeste moguće rešenje ali zahteva naprednije poznavanje administracije mreža
A bezbednost?
● Sigurnije rešenje je korišćenje odgovarajućih protokola koji omogućavaju kontrolu spolja bez potrebe za podešavanjima na firewall-u
MQTT (MQ Telemetry Transport)● Zasniva se na principu “izdavač - pretplatnik”● Za funkcionisanje je potreban “broker” koji posreduje
izmedju publisher-a i subscriber-a
MQTT (MQ Telemetry Transport)
● Jedan broker u “oblaku” obezbedjuje bezbednost ali ne i “žilavost” (sistem je neupotrebljiv ukoliko dodje do prekida veze)
MQTT (MQ Telemetry Transport)
● Jedan broker u “oblaku” obezbedjuje bezbednost ali ne i “žilavost” (sistem je neupotrebljiv ukoliko dodje do prekida veze)
MQTT (MQ Telemetry Transport)
● Kombinacijom 2 brokera obezbedjuje se autonomija kritičnih podsistema
Kako sprečiti lažne signale?
● Šifrovanjem poruka (može da bude izazov za uredjaje slabijih performansi)
● Dodavajem kriptografskog checksum-a (uz korišćenje tajne lozinke)
X
YX & MD5(X, pass)
Z
X & MD5(X, p
ass) + Z
Y & MD5(Y, p
ass)
Y & MD5(Y, pass) + Z
A za kraj ...
IoTIoT““Vodič za kupovinuVodič za kupovinu””
... i povezivanje... i povezivanje
Aleksandar JovičićAleksandar Jovičić[email protected]@jovicic.name
http://jovicic.name/isp/http://jovicic.name/isp/