Sadržaj

PetCare - Skrb za kućne ljubimce

Članovi Tima

Matteo Samsa

Ivan Matković

Vito Papa

Tomislav Matulić

Razrada konteksta

Slični projekti:

Petcube

Annie Pet Monitor app

Pet Monitor VIGI app

Dog Monitor app

Pawbo Pet Camera​

PetSafe Smart Feeder

Feed and Go Smart Pet Feeder​

Jempet Petwant Smart Feeder​

SureFeed Microchip Pet Feeder

Leeo

Premier Pet (FroliCat) igračka s automatskim pomicanjem lasera​

iFetch – uređaj za bacanje loptice za pse

Projektni zadatak

Cijeli projektni zadatak

Moj zadatak:

1. Omogućiti video prijenos uživo na zahtjev prostora gdje se ljubimac nalazi

2. Izrada Android mobilne aplikacije za konfiguraciju i upravljanje PetCare sustavom

Svrha sustava

Omogućiti vlasniku kućnog ljubimca izbivanje iz doma od nekoliko sati do dva dana tako da kućnom ljubimcu budu osigurane osnovne potrebe kao što su hrana, zabava i sigurnost, a vlasniku omogućen video nadzor ljubimca na zahtjev te obavijest u slučaju ugrožene sigurnosti.Omogućiti vlasniku kućnog ljubimca izbivanje iz doma od nekoliko sati do dva dana tako da kućnom ljubimcu budu osigurane osnovne potrebe kao što su hrana, zabava i sigurnost, a vlasniku omogućen video nadzor ljubimca na zahtjev te obavijest u slučaju ugrožene sigurnosti.

Ciljevi projekta

Sustav namijenjen psima i mačkama.

Automatska skrb od nekoliko sati do 2 dana (npr. odlazak vlasnika na posao ili kratkotrajno i neplanirano odsustvo)

Ključni dijelovi sustava koje je potrebno realizirati:

1.Hranilica (osigurati hranu i vodu)

2.Video-kamera (nadzor prostora na zahtjev)

3.Detektor buke (trajanje i razina buke)

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)

Plan projekta

DatumOčekivani rezultat
21.3.Upoznavanje s problematikom
28.3.Intervju s korisnicima – prvi
4.4.Upoznavanje s postojećim rješenjima i mogućnostima
11.4.Intervju s korisnicima – drugi
18.4.Izrada projektnog zadatka
2.5.Idejno rješenje
10.5.Nabavka potrebnih komponenata
16.5.Izvedbeno rješenje – dizajn cijelog sustava
Izrada sustava
30.5.Provjera s korisnicima
Dovršenje sustava
13.6.Prezentacija sustava

Rezultati projekta

Kratki opis rješenja zadataka:

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.

2.

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.

Ekran za video prijenos služi vizualnom uvidu u stanje ljubimca. Izvršava se HTTP zahtjevom na server opisan u 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.

Ekran hranilice služi kako bi korisnik uključio ili isključio ukupno 5 fiksnih dnevnih termina hranjenja. Osim uključivanja i isključivanja korisnik unosi masu (u gramima) i 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.

Ekran za upravljanjem laserom i izbacivačem služi za zabavu kućnog ljubimca. Na njemu je vidljiv video prijenos uživo kao i na jednom od prethodnih ekrana. Korisnik pomoću sklopki uključuje i 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.

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 i najmanje trajanje nakon kojeg stiže obavijest (odabiru se pomoću klizača).

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ške) korisniku stiže obavijest u okviru za obavijesti na njegovom uređaju.

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.

Detaljniji opis rješenja nalazi se u dokumentaciji i kodu projekta PetCare.