Developerski izazov: beskontaktno upravljanje dizalom putem mobitela

.debugovi partneri iz GlobalLogica podijelili su s nama projekt u sklopu kojeg su rješavali tipični pandemijski izazov – kako smanjiti kontakte te dizalima upravljati korištenjem mobitela

Jedan od vodećih svjetskih proizvođača dizala razvio je mobilnu aplikaciju pomoću koje korisnici mogu upravljati dizalom, tj. pozivati ga i zadavati mu ciljno odredište. Ideja je potaknuta pandemijskom situacijom, a korištenjem aplikacije korisnicima se pruža mogućnost koristiti dizalo bez potrebe da se dodiruju tipke dizala. Naime, tipke dizala fantastično su pogodno stanište za bakterije, naročito u bolnicama, a korištenjem mobilnog uređaja povećava se sigurnost za posjetitelje i stanare zgrada i unapređuju sanitarne mjere.

Problem

Trenutačna implementacija aplikacije oslanja se na QR kodove koji su nalijepljeni na svakom katu, pokraj dizala. Korisnik kamerom očita QR kod i aplikacija zna gdje se korisnik nalazi. Sva su dizala umrežena tako da aplikacija nakon što identificira dizalo, isto može i pozvati. Klijent želi korisničko iskustvo, odnosno proces identifikacije učiniti još praktičnijim za korisnika, odnosno izostaviti korak skeniranja QR koda.

To je moguće postići tako da se na svaki kat postavi Bluetooth identifikator (beacon) koji odašilje unikatni identifikator dizala i kata. Mobilna aplikacija može osluškivati Bluetooth pakete i aktivirati notifikaciju kada se nalazi u blizini dizala. Tim se pristupom pojavljuje i nekoliko novih tehničkih problema, a to su primarno: detekcija najbližeg odašiljača i pouzdana detekcija ulaska/izlaska korisnika u područje u blizini lifta.

Rješenje i tehnologija

Logika detekcije najbližeg odašiljača može se implementirati na više načina različite kompleksnosti i cijene. S obzirom na veliki broj dizala, cijena je značajan faktor tako da se preferiraju jednostavnija rješenja. Također, sustav mora funkcionirati na svim mobilnim uređajima koje bi korisnici mogli imati. Karakteristike njihovih primopredajnika nemoguće je kontrolirati, što onda utječe na algoritam detekcije.

Nakon testiranja raznih varijanti hardwarea, za trenutačnu je implementaciju odabrana platforma bazirana na mikrokontroleru Nordic nRF52832. Izrađene su dvije varijante sklopa, jedna za samostalnu ugradnju i druga za ugradnju u postojeće pozivne jedinice. Za obje varijante je izrađen firmware koji, u kombinaciji s mobilnom aplikacijom, implementira algoritam detekcije.

Rezultati/ishodi

Rješenje je oblikovano u konkretan i dobro definiran proizvod i trenutno prolazi zadnju fazu predprodukcijskog testiranja. Povratne su informacije dobre, razvijeni algoritam detekcije prolazi sve testne scenarije i izveden je na hardwareu niske cijene.

Tim

Na cjelokupnom projektu udaljenog pristupa dizalima (koji uključuje daleko više od spomenute aplikacije) radi više od 100 ljudi iz GlobaLogic Ukrajina i Hrvatska, uglavnom na Cloud i Mobile temama. Projekt izuzev same aplikacije za korisnike, uključuje i verziju aplikacije za tehničare i servisere. Aplikacija/sustav ima razne funkcionalnosti poput skraćivanja postupka puštanja u pogon, rane detekcije i predviđanja pogrešaka u sustavu, izmjene firmwarea na modulima, dijagnostiku sustava i slično.

Intervju s inženjerom

Slijedom ovog uspješno odrađenog projekta popričali smo i s Krešimirom Tušekom, koji je kao Senior Software Engineer u GlobalLogicu radio na njemu…

Koliko je bilo izazovno raditi na ovom projektu?

Projekt je najviše bio izazovan zbog velike slobode u odabiru cjelokupne platforme i pristupa koji će se upotrijebiti za rješavanje zadanog problema. Zbog toga je prvi korak bio istraživanje i analiza izvedivosti nekoliko potencijalnih rješenja pa tek nakon toga konkretna implementacija. Taj implementacijski dio je bio unutar granica složenosti koje se mogu očekivati od projekta razvoja prosječnog embedded IoT uređaja.

Gdje je planirano ugrađivanje mikrokontrolera putem kojih se detektiraju korisnici?

Rješenje je primarno namijenjeno zgradama s većim protokom ljudi, znači komercijalnim zgradama poput poslovnih zgrada, bolnica i trgovačkih centara. Dodana vrijednost ovog sustava kod komercijalnih zgrada je, povrh izbjegavanja fizičkog dodirivanja tipkala, i mogućnost prikaza popisa sadržaja u zgradi na mobilnoj aplikaciji (npr. popis tvrtki po katovima i sl.). Naravno, rješenje je primjenjivo i u stambenim zgradama ukoliko postoji interes stanara za takvom funkcionalnošću.

Koje su prednosti samostalne, a koje postojeće jedinice?

Krešimir Tušek, GlobalLogic

Prednost samostalne jedinice je prije svega njezina primjenjivost na bilo koju postojeću instalaciju dizala, bez obzira na oblik postojeće opreme. Samostalna se jedinica ugrađuje pokraj vrata dizala i od njega treba samo napajanje.

Ostala povezanost se ostvaruje preko mreže. S druge strane, takva jedinica zahtjeva dodatan prostor za ugradnju pokraj dizala i potencijalno može odudarati od vizualnog dizajna ostatka dizala.

Jedinica za ugradnju u postojeću opremu nema te probleme jer se ugrađuje direktno u postojeću pozivnu jedinicu i nije vidljiva korisniku. Međutim, pozivna jedinica mora imati dovoljno prostora za dodavanje novog modula tako da je ovaj pristup rezerviran samo za određene varijante dizala.

Jeste li ovakav tip rješenja implementirali na nekim drugim projektima, odnosno je li vam pomoglo znanje koje ste imali na prethodnim sličnim projektima?

Konkretan problem lokalizacije putem Bluetooth signala još nije bio dio nekog projekta ali zato rad s Bluetooth protokolom i bare-metal embedded sustavima itekako jest. Prema tome, ta su općenita znanja bila vrlo korisna u realizaciji ovog projekta. Čak su i neki detalji iz prethodnog automotive projekta (secure bootloader) bili primjenjivi u ovom slučaju. Uvijek je zanimljivo otkrivati na koje će sve načine specifičnosti jednog projekta biti primjenjive na nekom budućem, naoko nepovezanom, problemu.

Koja su potrebna znanja za rad na ovom projektu?

Prije svega programski jezik C u Embedded okruženju, poznavanje arhitekture mikrokontrolera te osnove Bluetooth protokola. Način suradnje je kroz direktnu odgovornost za predlaganje programskih rješenja, njihovu implementaciju i testiranje.