Smart Piggy Bank
Centar Tehničke Kulture RijekaPametna kasica prasica kontrolirana pomoću mobilne aplikacije. Moguće je otključati kasicu pomoću aplikacije i obaviti uplatu ili isplatu, a u suprotnom će vas aplikacija upozoriti na neovlašteno otvaranje push notifikacijom.
Aplikacija bilježi dnevnik uplata, isplata i provala u cloudu, te se grafom prikazuje promjena stanja vaše štednje kroz vrijeme.
Video snimka
Priprema opreme
Programiranje
Za početak trebate postaviti radio grupu. Nju ćete koristiti pri slanju podataka s jednog micro:bit-a na drugi. Također postavite “item” na 0. – micro:bit1
U ovom koraku trebate napraviti da kada se kutija otvori, micro:bit pošalje signal drugom micro:bitu i javlja da je kasica provaljena ukoliko mu nije javljeno pomoću mobilne aplikacije da će se kasica otvarati.
Za to smo koristili senzore za rotaciju. – micro:bit1
Ukoliko je micro:bit koji je povezan s mobilnom aplikacijom (micro:bit2) javio prvom micro:bit-u da će se kasica otvarati na micro:bitu1 se prikazuje kvačica i novci se mogu stavljati i uzimati sljedećih 30 sekundi.
Na drugom micro:bitu također morate postaviti radio grupu istu kao na prvom.
Micro:bit2 će uvijek biti spojen na računalo i komunicirati s mobilnom aplikacijom tako da će ako ju primi, informaciju poslati micro:bit1-u te će se kasica dealarmirati.
U drugom dijelu koda micro:bit2-a trebate napraviti da ako micro:bit2 primi od micro:bit1-a da je neovlašteno pristupljena kasica, micro:bit2 pošalje signal mobilnoj aplikaciji koja će notifikacijom obavijestiti vlasnika da je u kasicu netko provalio.
Ovim dijelom koda desktop aplikacije se postavlja komunikacije sa serial portom na koji je spojen micro:bit.
Ako je netko neovlašteno ušao u kasicu, micro:bit šalje to u desktop aplikaciju koja to prosljeđuje mobilnoj aplikaciji.
Ovaj dio koda se brine o tome.
Brojač svakih pet sekundi provjeri stanje u kasici te ga prikazuje u prozoru i crta novi graf.
Također provjerava je li kasica otključana.
Baza podataka, koja je spremljena u radnoj memoriji na server, ima definirane sve podatke koji su potrebni za aplikaciju (iznos, povijest novca, itd.).
Values controller (upravljač vrijednostima) ima sve o web API-u u sebi.
Svaka funkcija je jedan API poziv. Iznad svake funkcije piše [route(“api/isLocked”)], [route(“api/Lock”)] i sl.
-LogActivity.java prikazuje sve prijašnje izmjene stanja u kasici i provale.
-U mainActivity.java spremaju se gotovo svi dijelovi aplikacije.
-MyHandler.java obrađuje notifikacije i komunicira s operativnim sustavom
Izgled aplikacije definiran je u xml-u: -prvi gumb deaktivira alarm kasice, drugi gumb prikazuje zapisnik, Linear layout i textViewovi se ispisuju iznos stanja kasice, na kraju je linijski graf koji prikazuje prijašnja i sadašnje stanje u kasici.
Nakon što je kasica otključana, u mobilnoj aplikaciji se odabire uzima li se novac ili stavlja.
Ovaj dio koda javlja serveru koliko novaca je stavljeno u kasicu. Kod za uzimanje novaca je sličan pa o njemu nećemo pisati.
Na ovoj web stranici je tutorial pomoću kojega su napravljene push-nofikacije na androidu.
Na ovoj web stranici je tutorial pomoću kojega su napravljene push-nofikacije na web-API-u.
Završni dio
Autori
Projekt su izradili Jan Celin, Ivan Rubinić i Lucija Žužić uz mentorstvo Kristijana Vulinovića iz Centra tehničke kulture Rijeka.