GradientTop
PC
Vodeći IT časopis u Srbiji
PC #256 > PC.Biz
ARHIVA BROJEVA | O ČASOPISU | POSTANI SARADNIK | PRETRAGA
preview
IoT: Domotika i distribuirana pamet
Dejan Ristanović
Mnogo pričamo o pametnim uređajima i Internetu stvari (IoT), ali konkretna primena tih tehnologija u kućnim uslovima (domotika) i dalje nije jednostavna. Najveći problemi ostaju standardizacija i (de)centralizovano upravljanje
- PC #256 (Jul/Avgust 2018)
- U prodaji po ceni od 200 din

broj

IoT: Domotika i distribuirana pamet

image

Do mogućnosti da „opametimo“ stanove i poslovne prostore realno se došlo pre desetak godina, možda 2009. ili 2010. Tada je na tržištu bilo dovoljno pouzdanih, profesionalno projektovanih i izrađenih uređaja na koje smo se mogli osloniti, što je u ovoj oblasti veoma važno. Ako kompjuter „zabaguje“ ili se pokvari, s problemom ćemo se nekako boriti, ali ako oprema koja kontroliše svetla, prozore, grejanje, ventilaciju i bezbednost kuće otkaže, nalazimo se u priličnoj nevolji.

Pre tih desetak godina smart home oprema se uglavnom montirala prilikom gradnje ili temeljne rekonstrukcije prostora. Najbolje je bilo do svake utičnice i sijaličnog mesta dovesti poseban kabl od table, i onda u okviru same table s osiguračima predvideti prostor za smart home opremu koja će biti u mogućnosti da uključi ili isključi napajanje bilo kog uređaja u kući. Za kontrolu uređaja koristili su se ugrađeni programi ili Web aplikacije, a kasnije se sve to preselilo na smartfone i mobilne aplikacije za njih.

Na drugom kraju žice

image
Klasično rešenje: Smart home oprema u tabli za osigurače i tasteri koji kontrolišu svetla i temperaturu

Opisano rešenje zahteva mnogo žica i velike table, dakle značajno poskupljuje opremanje prostora. Zato se vremenom, zahvaljujući razvoju wireless tehnologija, kontrola polako seli na drugi kraj kabla, dakle ispred samog uređaja. Najbolji primer su pametne sijalice ili pametna grla za klasične sijalice: napajaju se iz mreže, povežu se na kućni Wi-Fi i onda na komandu uključe ili isključe svetlo. Na sličan način mogu da se instaliraju i pametne utičnice koje pale ili gase bilo koji uređaj, a očit primer su motori koji podižu i spuštaju roletne na prozorima. Treba samo obratiti pažnju na maksimalnu struju koju ovakvi kontroleri „trpe“, pa za kontrolu bojlera, TA peći ili nekog drugog velikog potrošača izabrati odgovarajuću opremu.

Problem kod ovakvih rešenja je u oslanjanju na Wi-Fi mrežu, u uslovima kada je „etar“ (a naročito područje na 2.4 GHz) već prilično „zagađeno“ saobraćajem – samo pogledajte koliko u okolini vašeg stana ima dostupnih Wi-Fi access point-a, pa zamislite broj uređaja priključenih na njih. Ako svaka sijalica i svaki bojler treba da ima IP adresu (pa makar i iz privatnog adresnog prostora), realna je mogućnost greški u prenosu i izgubljenih konekcija. Doduše, IoT oprema ne generiše veliki saobraćaj, ali to ne eliminiše mogućnost pojavljivanja problema. Rešenje može biti u prelasku na opseg od 5 GHz, gde je opterećenje trenutno skromno, mada se tada pojavljuje problem dometa – u većem stanu ili kući moraćete da instalirate nekoliko access point-a. Za sada mnogo IoT opreme ne podražava 5 GHz opseg, računajući tu i uređaje od kojih ne biste očekivali takvo ograničenje, kao što je Kindle ili Xiaomi Mi Robot Vacuum Cleaner koji smo prikazali u PC #250.

Znatno veći problem je kontrola uređaja. Prostim isključivanjem i uključivanjem napajanja možete da kontrolišete samo „glupe“ stvari kao što je sijalica, roletna, bojler ili peć. Kada se radi o sofisticiranoj opremi, počev od toplotne pumpe, preko televizora i kućnog multimedijalnog centra pa do samog računara, potrebna je daleko preciznija kontrola; štaviše, nije preporučljivo da ovakvim uređajima „tek tako“ gasite napajanje. Čudno je da se za sve ovo vreme nije afirmisao neki standardni port za kontrolu određenih klasa uređaja, pre svega multimedijalne opreme. Zato se koriste trikovi, a pre svega uređaji koji imaju IR port pa emuliraju daljinski upravljač. Efikasnost takvih rešenja veoma zavisi od konkretnog modela, pošto je komunikacija jednosmerna. Daljinski upravljač, recimo, „ne zna“ da li je televizor uključen ili isključen, pa može samo da pošalje kod za paljenje; ako se kod konkretnog modela isti kod koristi i za gašenje, efekat može da bude obrnut od željenog. A da i ne pominjemo probleme kada vaš IoT „ne poznaje“ novi televizor ili (češće) set-top box vašeg kablovskog operatora, pa ga treba „učiti“ kodovima, boriti se s povremenim preklapanjima s kodovima drugih uređaja, posle brinuti da li će se sve „naučeno“ izgubiti posle nestanka struje...

Centralizovana kontrola

image

Koncepcijsko pitanje IoT-a (Internet of Things) je ko zapravo kontroliše uređaje. Naravno da mi zadajemo komande kojim upravljamo svetlima u stanu, ali da li ćemo se pri tom obraćati direktno sijalicama i utikačima, ili ćemo komunicirati sa nekim serverom u dalekom svetu, koji će onda upravljati našom opremom? Kako sada stvari stoje, većina rešenje se priklanja ovoj drugoj varijanti, što ne smatram dobrim trendom.

Formalno pokriće za indirektnu kontrolu je problem pristupa – većina kućnih korisnika ima samo jednu IP adresu, a u poslednje vreme se dešava da te adrese nisu javne, tako da im je iz sveta teško pristupiti. Treba se osloniti na neki servis kao što je DYNDNS, pa onda podešavati ruter da prosleđuje saobraćaj koji stiže na neki port do konkretnog uređaja u lokalnoj mreži. Sve to je prekomplikovano za prosečnog korisnika, a neophodno je ako hoćemo da kućnu opremu kontrolišemo i kada nismo kod kuće, što je valjda i smisao čitavog IoT koncepta. Zato su uređaji programirani tako da drže stalno otvorenu TCP/IP konekciju s centralnim serverom, baš kao i mobilna aplikacija koju koristimo za kontrolu. Udaljeni server služi kao „saobraćajac“ koji preusmerava podatke koji stižu od IoT uređaja do naše aplikacije, a komande iz aplikacije do uređaja. Ako server sav saobraćaj negde loguje i koristi za neke svoje potrebe, mi o tome pojma nemamo.

Na ovaj način se može kontrolisati nešto što nije mnogo bitno, recimo robot-usisivač ili svetlo na terasi, ali da li biste nekom serveru na drugom kraju sveta poverili da upravlja bravama na ulaznim vratima ili vašim alarmnim sistemom? Baš ovih dana čitamo o bagu koji je pronađen na Tapplock pametnim bravama, a koji omogućava bilo kom hakeru da, oslanjajući se na loše osmišljen Tapplock-ov API, otključa bilo koja vrata – dovoljno je da prođe pored njih i očita MAC adresu brave. Kad ste u drugoj sezoni serije Homeland gledali kako hakeri, na osnovu serijskog broja, isključuju pejsmejker američkog Potpredsednika i tako da daljinski ubijaju, to je izgledalo kao „još jedna filmska priča“. Danas, uz centralizovanu kontrolu IoT-a, takve priče deluju sve realnije.

U moru senzora

image
„Pametna“ sijalica koju kontroliše mobilna aplikacija

Sledeća faza razvoja IoT koncepta ne zasniva se na skupim i moćnim uređajima, već na maloj, jeftinoj opremi koja će zatrpati našu okolinu, a jednog dana postati i deo naših tela. Za kvalitetne zaključke i dobre odluke potrebni su pre svega podaci, a njih može da sakupi gomila senzora u mreži. Uzmimo za primer navodnjavanje zemljišta, od travnjaka do njive. Starija oprema ove vrste imala je na sebi jedan senzor koji meri količinu kiše koja je pala na njega, pa na osnovu toga odlučuje da li je zemljište dovoljno vlažno i treba li ga danas zalivati. Znatno bolja alternativa bi bila da se u samoj zemlji postavi puno malih i jeftinih senzora, koji će javljati centrali kolika je vlažnost zemlje u toj tački, pa će onda centralizovana „pamet“ odlučiti ne samo da li treba zalivati parcelu, već i koje njene delove treba koliko zaliti.

Svaki senzor je mali računar pa treba rešiti pitanje njegovog napajanja i komunikacije s njim. Što se napajanja tiče, tehnologija je toliko napredovala da jedna dugme-baterija može da napaja senzor godinu ili dve – njegova potrošnja je jako mala, a obično se podešava da se na svakih nekoliko minuta (ili čak sati) „probudi“, očita odgovarajuće parametre, pošalje ih i onda opet ode u „san“, kada ne troši praktično nikakvu energiju. Komunikacija je ozbiljnije pitanje – količina podataka koje senzor treba da dostavi je mala, ali treba obezbediti da se ti podaci pošalju vrlo brzo i da se pri tom maksimalno štedi energija.

image
Merni uređaj zasnovan na Arduino pločici koji podatke šalje centrali koristeći LoRaWAN protokol

Za komunikaciju s senzorima se, kada BLE (Bluetooth Low Energy) nije pogodan, koriste Low Power Wide Area Network (LPWAN) protokoli. Najpopularniji su LoRa (LongRange physical layer protocol), NB-IoT (Narrow-Band IoT), LTE-M, Haystack i SigFox. NB-IoT je najnoviji od ovih standarda i prilagođen je komunikaciji kućnih uređaja i senzora, dok se na otvorenim prostorima često koriste postojeće mobilne (celularne) mreže uz 2G, CDMA, 3G i 4G komunikaciju. Bilo bi veoma skupo i nepraktično da svaki senzor ima svoju SIM karticu i svoj broj u mobilnoj mreži, pa se zato s mobilnim operatorom dogovara korišćenje velikog broja uređaja koji se na odgovarajući način autorizuju i onda s vremena na vreme emituju veoma male količine podataka. To je često jednosmerna komunikacija koja podseća na IP protokol – nema potvrde slanja niti retransmisije u slučaju greške, pošto se smatra da svaki konkretni podatak nije previše bitan. Na primer, ako se izgubi podatak o vlažnosti koji pošalje jedan od stotinak senzora razbacanih po njivi, nije izgubljeno ništa bitno pošto će isti senzor poslati podatak i par minuta kasnije. Može se predvideti da centralni softver javi ako neki senzor dugo nije slao podatke, kako bi se proverila njegova ispravnost ili zamenila baterija. Ukoliko mobilni operatori ne obezbeđuju ovakav servis, što je trenutno slučaj kod nas, komunikacija može da se obezbedi nekim drugim protokolom, uz montažu odgovarajućeg broja Access Point-a koji će „pokrivati“ čitavu teritoriju. Izbor opreme i protokola u tom slučaju predstavlja ozbiljan izazov, pošto standardizacija i dalje kaska za potrebama korisnika.

IoT iskustva: Opamećivanje tople vode

Čitave su knjige napisane o „nemogućim“ pitanjima (tipa „Koliko bi trajalo da se pomeri planina Fuji?“) koja u tehnološkim firmama kao što su Microsoft, Apple, Google ili Facebook postavljaju kandidatima za posao da bi saznali kako razmišljaju. Prvo takvo pitanje za koje smo čuli glasilo je „Kako postići da, kada neko odvrne slavinu za toplu vodu u hotelu ili nekom drugom velikom objektu, topla voda odmah poteče“. Pravi odgovor je sistem za recirkulaciju vode: do svake slavine umesto dve, dolaze tri cevi, pri čemu topla voda stalno cirkuliše u krug zahvaljujući pumpi koja se nalazi pored bojlera.

Čitava ideja mi se toliko dopala da sam je u nekom trenutku realizovao u svojoj kući... i ubrzo naučio nešto što na tim intervjuima za posao izgleda ne pitaju. Loša strana rešenja je u tome što se voda, cirkulišući kroz zidove, prilično hladi, pa bojler stalno mora da je dogreva, što rezultira neprijatno velikom potrošnjom struje. Izvesna ušteda se postiže zamenom klasične pumpe za recirkulaciju „pametnom“ pumpom koja će brzinu rada prilagoditi upotrebi tople vode, ali se i uz nju troši mnogo struje, a gubici su veći što je izabrana temperature viša. Zaključio sam da bi vredelo nabaviti neki pametni uređaj koji će omogućiti da temperatura vode bude znatno viša u periodu dana kada se kupamo, a niža u vreme kada spavamo, nismo kod kuće ili koristimo toplu vodu samo za pranje ruku. Možda bi se mogao naći neki bojler koji ima tako pametan termoregulator, ali je znatno lakše i jeftinije na postojeći bojler dodati uređaj koji će meriti temperaturu i uključivati grejače prema potrebi.

image
Nakon dosta traganja izabrao sam Aquanta (aquanta.io) kontroler. Nije išlo lako s njim – trebalo ga je kupiti u Americi i doneti ovamo, pa onda pri instalaciji shvatiti da je on namenjen monofaznim bojlerima dok je moj bojler trofazni (Aquanta podrška nije ni razumela da postoji takva perverzija kao što je trofazni bojler), pa onda dodati odgovarajuću sklopku, pa se registrovati na sajtu koji ne prima registracije van USA i Kanade, pa... Kad sam sve to nekako prevazišao, ispostavilo se da Aquanta pali i gasi bojler u skladu s nekom svojom mambo-džambo veštačkom inteligencijom koja prati moje navike i onda „zna“ kada će meni biti potrebna topla voda. Pošto je i posle nedelju dana sve i dalje bilo naopako (možda problem vremenskih zona?) isključio sam veštačku inteligenciju i počeo da ručno zadajem temperaturu vode. To je radilo lepo, ali je mogla da se zada samo jedna temperatura koja je onda važila do zadavanja sledeće – treba se, dakle, sat pre kupanja logovati na bojler i podesiti temperaturu. Ko da misli o tome... Dodatna neprijatnost je bila u tome što se zapravo ne logujem na bojler, nego na sajt aquanta.io u Americi, a on odatle promeni temperaturu u mom bojleru. Eksperimentisao sam s CurlHttp klijentom koji je razvio kolega Dragan Dinić – instaliram njegov PHP softver na nekom serveru, i onda se taj softver u određeno vreme javlja Aquanta sistemu i podešava temperaturu. Znači, programiram server hostovan negde kod Hetzner-a da se povremeno poveže s Aquanta serverom u Americi i ljubazno ga zamoli da preprogramira kontroler koji se nalazi u mom podrumu. Fraza „preko Male Krsne“ je dobila novi smisao.

Od čitave ideje sam konačno odustao kada jednom nije bilo tople vode za kupanje zato što je Aquanta sajt „pao“. Dobro, moj bojler može da se uključi i ručno, ali možete misliti kako je prijatno objašnjavati ukućanima da mora da se sačeka s kupanjem zato što neki tamo server u Americi ne radi. Tu sam se uverio koliko je centralna kontrola IoT uređaja loša ideja – samo se setim droida u filmu The Phantom Menace koji su se isključili kada je Anakin uništio Federation droid control ship. Zatim sam s kolegama Vladimirom Kukuruzovićem i Borisom Stanojevićem probao da hakujem Aquanta kontroler kako bih ga lokalno kontrolisao, ali nije išlo pošto je komunikacija s mothership-om enkriptovana i zahteva digitalni sertifikat s druge strane – barem su to pošteno uradili, doduše na moju štetu. I tako smo napravili sopstveni kontroler zasnovan na Arduino pločici, dodali mu releje, displej, tastere i još par sitnica, a najzad i Raspberry Pi računar kako bi se sve to bolje uklopilo u postojeće smart home okruženje. Treba još da smislimo kako na 3D štampaču proizvesti kućište za svu tu skalameriju. Lep mali IoT projekat, pisaću više o njemu kada ga završimo...

Vreme je za domotiku

Pored opšteg naziva Internet of Things, sve češće se koristi i reč domotics nastala kombinacijom latinskog izraza za dom (domus) i reči robotika koju smo već odavno usvojili – termin bi se na srpski lepo mogao prevesti kao „domotika“. Nećemo se više zadovoljiti senzorima koji snimaju razne parametre i efektorima koji, na osnovu naših komandi i podataka koji stižu od senzora, kontrolišu kućne uređaje. U stanovima će biti sve više robota, koji će se ponašati inteligentno i živeti zajedno s ljudima, komunicirajući s njima na razne načine i obavljajući čitav niz kućnih poslova. Razvoj veštačke inteligencije je u velikom zamahu, pa je sve više uređaja koji „opamećuju“ naš dom na nove načine koji su do sada viđani samo u SF romanima i filmovima.

Akcenat je trenutno na komandovanju glasom, pri čemu se više proizvođača takmiči u uspostavljanju standarda i integraciji ove tehnologije. Amazon Echo u kombinaciji s Alexa servisom su Amazon-ovi aduti, Google Home i Google Assistant im se suprotstavljaju zanimljivim uređajima ali i dodacima za sisteme koji već koriste Android kao što su Sony Bravia televizori, a Apple HomeKit je koncentrisan na široko razgranat Apple ekosistem uređaja. Znatno dužu tradiciju imaju standardi kao što su Zigbee (www.zigbee.org) iz 1998, Z-Wave (z-wavealliance.org) iz 2001. i KNX (www.knx.org), koji je nastao još 1990. godine objedinjavanjem EHS (European Home Systems Protocol), EIB (European Installation Bus) i BatiBUS standarda – zgodno je što u Srbiji imate dosta sertifikovanih KNX profesionalaca. Povezivanje uređaja prilagođenih raznim standardima nije jednostavno, i često zahteva da i sami nešto umrežavate i programirate. Ako to posmatrate kao hobi, zgodno je da postoji neki otvoreni standard za vezu između sistema pametne kuće i klasične Ethernet odnosno Wi-Fi mreže. Tada možete da nabavite neki mali Raspberry Pi računar pa da na njemu razvijete program koji će raditi stvari tačno onako kako želite. Oblast je toliko mlada da rešenja koja razvijete mogu lako dobiti komercijalnu dimenziju, pa možda i predstavljati uvod u neku novu karijeru...

SLEDEĆI TEKST U PC #256
preview
Schneider: Ključna reč kontrola



.

PC
Twitter Facebook Feed Newsletter