Korisnički alati

Site alati


2019:studenti:igredicak:start

Razlike

Slijede razlike između dviju inačica stranice

Poveznica na ovu usporedbu

Starije izmjene na obje strane Starija izmjena
Novija izmjena
Starija izmjena
2019:studenti:igredicak:start [2019/06/13 01:45]
ig49146 [Rezultati projekta]
2019:studenti:igredicak:start [2023/06/19 18:11] (trenutno)
Redak 3: Redak 3:
 ===== Članovi Tima ===== ===== Članovi Tima =====
  
-Matteo Samsa+[[:​2019:​matteo_samsa|Matteo Samsa]]
  
-Ivan Matković+[[:​2019:​ivan_matkovic|Ivan Matković]]
  
-Vito Papa+[[:​2019:​vito_papa|Vito Papa]] 
 + 
 +[[:​2019:​tomislav_matulic|Tomislav Matulić]]
  
-Tomislav Matulić 
  
 ===== Razrada konteksta ===== ===== Razrada konteksta =====
Redak 94: Redak 95:
 Ključni dijelovi sustava koje je potrebno realizirati:​ Ključni dijelovi sustava koje je potrebno realizirati:​
  
-Hranilica (osigurati hranu i vodu)+1.Hranilica (osigurati hranu i vodu)
  
-Video-kamera (nadzor prostora na zahtjev)+2.Video-kamera (nadzor prostora na zahtjev)
  
-Detektor buke (trajanje i razina buke) Zabava (laser za mačke ili loptice za psa)+3.Detektor buke (trajanje i razina buke)
  
-Mobilna aplikacija (koristi se za konfiguraciju i korištenje sustava)+4.Zabava (laser za mačke ili loptice za psa) 
 + 
 +5.Mobilna aplikacija (koristi se za konfiguraciju i korištenje ​sustava) 
 + 
 +6.Server (komunikacija između aplikacije i sustava)
  
-Server (komunikacija između aplikacije i sustava) 
  
 ===== Plan projekta ===== ===== Plan projekta =====
Redak 122: Redak 126:
 ===== Rezultati projekta ===== ===== Rezultati projekta =====
  
-Kratki opis rješenja zadataka:+<font 14px/​inherit;;​inherit;;​inherit>​Kratki opis rješenja zadataka:</​font>​ 
 + 
 +<font 14px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​1. Kamera korištena za realizaciju zadatka je Pi Camera Module v2 koja se spaja na CSI port Raspberry Pi-a pomoću ribbon kabla. Na Raspberry Pi-u 3B+ je pokrenut jednostavan HTTP server pomoću Python skripte. Python skripta koja služi za pokretanje HTTP servera s video prijenosomm uživo je preuzeta i prilagođena potrebama PetCare projekta. Format video prijenosa uživo je MJPEG, rezolucija je namještena na 320×240, dok je framerate 10. Navedene vrijednosti su mijenjane tijekom projekta i konačne vrijednosti su odabrane prema kompromisu kvalitete slike i podatkovnog prometa. Skripta omogućava definiranje rotacije kamere (važno kod montiranja) i definiranje mrežnih vrata na koji je potrebno poslati HTTP zahtjev (PetCare ima mrežna vrata 8081). Kako bi kamera osim lokalno radila i preko javne IP adrese odnosno da korisnik može vidjeti svog ljubimca iz bilo koje lokacije porebno je u router-u uključiti opciju prosljeđivanja mrežnih vrata (engl. port forward). U budućnosti je ovo rješenje potrebno nadograditi boljom sigurnošću (ograničiti pristup samo korisniku) jer svatko tko posjeduje IP adresu i port može pristupiti web kameri.</​font>​
  
-<​font ​16px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​1. Kamera korištena za realizaciju zadatka je Pi Camera Module v2 koja se spaja na CSI port Raspberry Pi-a pomoću ribbon kabla. Na Raspberry Pi-u 3B+ je pokrenut jednostavan HTTP server pomoću Python skripte. Python skripta koja služi za pokretanje HTTP servera s video prijenosomm uživo je preuzeta i prilagođena potrebama PetCare projekta. Format video prijenosa uživo je MJPEG, rezolucija je namještena na 320×240, dok je framerate 10. Navedene vrijednosti su mijenjane tijekom projekta i konačne vrijednosti su odabrane prema kompromisu kvalitete slike i podatkovnog prometa. Skripta omogućava definiranje rotacije kamere (važno kod montiranja) i definiranje mrežnih vrata na koji je potrebno poslati HTTP zahtjev (PetCare ima mrežna vrata 8081). Kako bi kamera osim lokalno radila i preko javne IP adrese odnosno da korisnik može vidjeti svog ljubimca iz bilo koje lokacije porebno je u router-u uključiti opciju prosljeđivanja mrežnih vrata (engl. port forward). U budućnosti je ovo rješenje potrebno nadograditi boljom sigurnošću (ograničiti pristup samo korisniku) jer svatko tko posjeduje IP adresu i port može pristupiti web kameri.</​font>​+<​font ​14px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​2.</​font>​
  
-<​font ​16px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​2.</​font>​+<​font ​14px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​Mobilna aplikacija je izrađena u programskom okruženju Android Studio. Minimalna potrebna verzija Androida za aplikaciju je 4.4.0 KitKat (API 19) te korisnik mora posjedovati uređaj s tim specifikacijama (oko 75% današnjih aktivnih uređaja). Mobilna aplikacija se sastoji od početnog ekrana koji se otvara pri pokretanju aplikacije i 4 ekrana koji služe za konfiguraciju i upravljanje sustavom. Pomoću aplikacije korisnik pristupa video prijenosu uživo, podešava i prati stanje hranilice, upravlja laserom i/ili izbacivačem loptice i podešava postavke detektora buke. Svakoj od prethodno navedenim funkcijama korisnik pristupa pritiskom na jedan od 4 gumba na početnom ekranu.</​font>​
  
-<​font ​16px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​Mobilna aplikacija je izrađena u programskom okruženju Android Studio. Minimalna potrebna verzija Androida ​za aplikaciju je 4.4.0 KitKat (API 19) te korisnik mora posjedovati uređaj s tim specifikacijama (oko 75% današnjih aktivnih uređaja). Mobilna aplikacija se sastoji od početnog ekrana koji se otvara pri pokretanju aplikacije i 4 ekrana koji služe za konfiguraciju ​upravljanje sustavomPomoćaplikacije korisnik pristupa ​video prijenosu ​uživo, podešava i prati stanje hranilice, upravlja laserom i/ili izbacivačem loptice i podešava postavke detektora bukeSvakoj od prethodno navedenim funkcijama korisnik pristupa pritiskom na jedan od 4 gumba na početnom ekranu.</​font>​+<​font ​14px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​Ekran za video prijenos ​služi ​vizualnom uvidu u stanje ljubimcaIzvršava se HTTP zahtjevom na server opisan ​prvom dijelu zadatka. Kako bi se prikazao ​video prijenos ​uživo ​nije potrebno pristupati stranici index.html već samo stream.mjpg. Format MJPEG je odabran upravo zbog jednostavne implementacije.</​font>​
  
-<​font ​16px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​Ekran ​za video prijenos ​služi ​vizualnom uvidu u stanje ljubimcaIzvršava se HTTP zahtjevom na server opisan ​prvom dijelu zadatka. Kako bi se prikazao video prijenos ​uživo nije potrebno pristupati stranici index.html već samo stream.mjpgFormat MJPEG je odabran upravo zbog jednostavne implementacije.</​font>​+<​font ​14px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​Ekran ​hranilice ​služi ​kako bi korisnik uključio ili isključio ukupno 5 fiksnih dnevnih termina hranjenjaOsim uključivanja i isključivanja korisnik unosi masu (gramima) i spremnik (ukupno 3 spremnika), kao pozitivan broj te sate i minute koji se odabiru ​padajućim izbornicimaPodešavanje željenog rasporeda hranjenja korisnik potvrđuje pritiskom na gumb ispod opcija.Osim hranjenja po rasporedu dostupno ​je i trenutno hranjenje gdje korisnik unosi masu i spremnik i pritiskom na gumb šalje zahtjev za hranjenje. Na ekranu su prikazane i greške sustava poput praznih spremnika ili mehaničkih grešaka.</​font>​
  
-<​font ​16px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​Ekran ​hranilice ​služi ​kako bi korisnik uključio ili isključio ukupno 5 fiksnih dnevnih termina hranjenjaOsim uključivanja ​i isključivanja korisnik unosi masu (u gramima) ​spremnik (ukupno 3 spremnika), kao pozitivan broj te sate i minute koji se odabiru u padajućim izbornicima. Podešavanje željenog rasporeda hranjenja korisnik potvrđuje ​pritiskom na gumb ispod opcija.Osim hranjenja po rasporedu dostupno je i trenutno hranjenje gdje korisnik unosi masu i spremnik i pritiskom na gumb šalje zahtjev za hranjenje. Na ekranu su prikazane i greške sustava poput praznih spremnika ili mehaničkih grešaka.</​font>​+<​font ​14px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​Ekran ​za upravljanjem laserom i izbacivačem ​služi ​za zabavu kućnog ljubimcaNa njemu je vidljiv video prijenos uživo kao i na jednom od prethodnih ekrana. Korisnik pomoću sklopki ​uključuje i isključuje laser izbacivač. Za laser su dostupne komande za mijenjanje pozicija. Promjena pozicije ​se izvršava pritiskom na jedan od 4 gumba koja označavaju smjer.</​font>​
  
-<​font ​16px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​Ekran ​za upravljanjem laserom i izbacivačem ​služi ​za zabavu kućnog ljubimca. Na njemu je vidljiv video prijenos ​ivo kao i na jednom od prethodnih ekrana. Korisnik ​pomoću ​sklopki uključuje isključuje laser i izbacivač. Za laser su dostupne komande za mijenjanje pozicija. Promjena pozicije ​se izvršava pritiskom na jedan od 4 gumba koja označavaju smjer.</​font>​+<​font ​14px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​Ekran ​detektora buke služi ​da korisnik pomoću sklopke definira ​želi li primati obavijesti, te pomoću ​klizača odabire najmanji intenzitet buke nakon kojeg mu stiže obavijest ​najmanje trajanje nakon kojeg stiže obavijest (odabiru ​se pomoću klizača).</​font>​
  
-<​font ​16px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​Ekran detektora buke služi da korisnik pomoćsklopke definira ​želi li primati obavijesti, te pomoću klizača odabire najmanji intenzitet ​buke nakon kojeg mu stiže obavijest ​i najmanje trajanje nakon kojeg stiže obavijest (odabiru se pomoćklizača).</​font>​+<​font ​14px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​Osim prethodno opisanih vidljivih ekrana aplikacija ​pozadini svakih 75 sekundi ažurira stanje sustava. U slučaju promjene stanja sustava (detektirane ​buke ili greške) korisniku ​stiže obavijest u okviru za obavijesti na njegovom uređaju.</​font>​
  
-<​font ​16px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​Osim prethodno opisanih vidljivih ekrana aplikacija u pozadini svakih 75 sekundi ažurira stanje sustava. U slučaju promjene stanja ​sustava (detektirane buke ili greškekorisniku stiže obavijest u okviru za obavijesti ​na njegovom uređaju.</​font>​+<​font ​14px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​Aplikacija podatke do sustava ​prenosi putem FTP servera koji je pokrenut na Raspberry Pi-u (koji serijskom vezom šalje podatke do Arduino-a). Za spajanje ​na server izrađen je FTP klijent u aplikaciji. Datoteke koje se FTP protokolom prenose su u JSON formatu koji je odabran zbog jednostavnosti razmjene. Kako bi se korisnik uspješno spojio na FTP server potrebno je da na početnom ekranu aplikacije definira je li spojen na javnu IP adresu ili lokalnu FTP servera.</​font>​
  
-<​font ​16px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​Aplikacija podatke do sustava prenosi putem FTP servera koji je pokrenut na Raspberry Pi-u (koji serijskom vezom šalje podatke do Arduino-a). Za spajanje na server izrađen je FTP klijent u aplikaciji. Datoteke koje se FTP protokolom prenose su JSON formatu koji je odabran zbog jednostavnosti razmjene. Kako bi se korisnik uspješno spojio na FTP server potrebno je da na početnom ekranu aplikacije definira je li spojen na javnu IP adresu ili lokalnu FTP servera.</​font>​+<​font ​14px/​Arial,​Helvetica,​sans-serif;;​inherit;;​inherit>​Detaljniji opis rješenja nalazi ​se u dokumentaciji i kodu projekta PetCare.</​font>​
  
  
2019/studenti/igredicak/start.1560383147.txt.gz · Zadnja izmjena: 2023/06/19 18:10 (vanjsko uređivanje)