Smart Piggy Bank

Centar Tehničke Kulture Rijeka

Pametna 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

Pronađite ili izradite kutiju koja se otvara kao na slici.

Pričvrstite micro:bit koji će prosljeđivati podatke između aplikacije i kasice na računalo.

Na micro:bit za kasicu pričvrstite zvučnike za upozorenje na provalu i bateriju.

Na poklopac vaše kasice pričvrstite micro:bit sa zvučnicima i baterijom.

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.

Ovaj dio koda radi funkciju koja javlja serveru da je kasica otključana.

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.

Ovaj kod dohvaća podatke stanja u kasici i ispisuje ih u grafu.

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

Link na preuzimanje programa za 1. micro:bit je ovdje.

Link na preuzimanje programa za 2. micro:bit je ovdje.

Link na preuzimanje desktop aplikacije je ovdje.

Link na preuzimanje mobilne aplikacije je ovdje.

Link na preuzimanje Web API je ovdje.

 

Autori

Projekt su izradili Jan Celin, Ivan Rubinić i Lucija Žužić uz mentorstvo Kristijana Vulinovića iz Centra tehničke kulture Rijeka.

Drugi projekti