IoT u Petnici
Na jesenjem seminaru računarstva u Petnici, deo pažnje je bio posvećen Internet of Things (IoT) tehnologijama gde su polaznici slušali predavanja na tu temu, ali su mogli i da probaju da kontrolišu jedan model takvog sistema. Deo predavanja je bio posvećen bezbednosti, odnosno rizicima koje IoT tehnologije donose i dešavanjima čiji smo bili svedoci u poslednjih mesec dana.
Pomenuti model je imitacija pametne kuće koja je opremljena senzorima i uređajima koji se mogu udaljeno kontrolisati. Kako je ovo bila prva verzija kuće, model nije imao zavidan dizajn, ali je bio funkcionalan i služio je svrsi 🙂
Od senzora/uređaja na/u kući su se našli zvučnik (piezo buzzer), LED sijalice, prozor povezan na micro servo motor, uređaj za ventilaciju/hlađenje (ventilator), uređaj za grejanje (grejač u kombinaciji sa ventilatorom), kao i senzori za merenje vlage, unutrašnje i spoljašnje temperature i temperature uređaja za grejanje. Sve ove komponente su povezane na Arduino Mega 2560, koji preko Ethernet shield-a komunicira sa serverom (koji predstavlja cloud) odakle dobija komande. U normalnim uslovima, kontrola svih uređaja je prepuštena (u ovom slučaju) polaznicima koji šalju komande na server. Izuzetak je uređaj za grejanje, koji je zaštićen od pregrevanja, tako da u slučaju kada dostigne kritičnu temperaturu, kontrolu nad kućom preuzima Arduino i aktivira proceduru hlađenja.
Pored kuće, razvijen je i pomenuti server koji predstavlja posrednika u komunikaciji između polaznika i kuće, ali i koji održava konekciju prema kući i pamti stanja u kojim se kuća nalazi. Server takođe služi i kao neki vid zaštite od ne autorizovane kontrole kuće, kao i zaštita od učestalih slanja komandi. Inače, server je namerno razvijen da ima “rupe” i da omogući polaznicima da probaju da preuzmu kontrolu nad kućom kada to nije omogućeno podešavanjima. Uz ovaj server, razvijen je i server sa korisničkim web interfejsom gde se iz browsera mogu očitavati vrednosti temperature ali i kontrolisati uređaji.
Polaznici na seminaru su imali niz zadataka:
- kontrolisanje kuće iz web interfejsa radi održavanja date temperature, ali i izbegavanje pregrevanja,
- uspostava konekcije sa glavnim serverom i slanje direktnih komandi pod ograničenim privilegijama
- takmičenje gde dva tima pokušavaju da održe temperaturu koja im je zadata (npr: tim1=27C , tim2=31C),
- zadatak sličan prethodnom, samo je ovog puta potrebno napisati skriptu koja to sama radi,
- sprečavanje pregrevanja u situaciji gde je dozvoljena ograničena kontrola kuće,
- preuzimanje potpune kontrole nad serverom i dobijanje svih privilegija,
- preuzimanje konekcije između kuće i glavnog servea u cilju sprečavanja/izazivanja pregrevanja