Automatic Pet Feeding System

Autor

Sebastian-Andrei Puiu

Grupa: 331CC

Introducere

Scopul proiectului este de a realiza un sistem automat, ce va putea hrani un animal de companie, atunci cand este necesar. Procesul de eliberare a mancarii va avea loc doar in momentul in care senzorul de greutate va detecta trecerea sub un anumit prag al gramajului, adica doar daca nu mai exista suficienta hrana. De asemenea, procesul de eliberare al apei va avea loc doar atunci cand senzorul de nivel de apa va detecta ca apa este, ca si in cazul precedent, sub un anumit prag prestabilit. Exista si posibilitatea ca utilizatorul sa elibereze manual mancarea, prin simpla apasa a unui buton fizic sau unui buton din aplicatia de pe telefon. De asemenea, sistemul va avea si alte moduri de functionare, care vor putea fi comutate tot prin intermediul unui buton fizic. Fiecare mod va fi asociat cu o melodie tematica, melodii ce vor fi redate cu ajutorul unui buzzer.

Descriere generala

Schema bloc

Hardware design

  • Arduino UNO
  • Breadboard
  • Fire de conexiune
  • Rezistente
  • Senzor de greutate
  • Motor servo
  • Modul Bluetooth
  • Butoane
  • Buzzer

Software design

Codul a fost realizat cu ajutorul lui Arduino Software (IDE). Bibliotecile folosite sunt: 'Servo.h', 'SerialSoftware.h', 'HX771.h', 'pitches.h' si 'themes.h'. Codul este divizat in trei parti: zona care se ocupa de input-ul primit de la butoanele fizice, zona care se ocupa cu input-ul primit din aplicatia de pe telefon si zona care primeste informatii de la senzori. Aceste trei parti sunt separate pentru a nu se intercala actiunile ce sunt efectuate de motorul servo sau pompa de apa. Prin urmare, in cazul primei si celei de-a doua zone, atunci cand se apasa pe un buton (fie fizic, fie din aplicatie) nu se mai tine cont de ce detecteaza senzorii, lasandu-se la latitudine utilizatorului ce cantitate de mancare/apa doreste sa elibereze. Atunci cand este apasat butonul rosu (sau butonul 'ON' din aplicatie, la categoria 'FOOD'), in cod se activeaza motorul servo care incepe sa se invarta in sensul ceasului, pana cand se renunta la actiunea de apasare (sau se apasa butonul 'OFF' din aplicatie, la categoria 'FOOD'). Atunci cand este apasat butonul albastru (sau butonul 'ON' din aplicatie, la categoria 'WATER'), in cod se activeaza pompa de apa care incepe sa scoata apa din bazin, pana cand se renunta la actiunea de apasare (sau se apasa butonul 'OFF' din aplicatie, la categoria 'WATER'). In cazul celei de-a treia zona, in cod sunt citite (in mod continuu) informatii referitoare la greutatea detectata dintr-un bol si la nivelul de apa existent in celalalt bol. Daca valorile lor scad sub un anumit prag, codul va gestiona eliberarea unei cantitati prestabilite de hrana/apa.

Rezultate obtinute

Am reusit sa obtin toate functionalitatile dorite, acestea fiind incapsulate intr-un design cat mai compact.

Concluzii

Prin prisma acestui proiect, am reusit sa aprofundez notiunile invatate in cadrul laboratorului. De asemenea, am realizat faptul ca un inginer trebuie sa stapaneasca foarte bine si partea de hardware, nu doar cea de software. O multime de produse de pe piata imbina aceste doua zone ale ingineriei, deci, prin urmare, este important sa fie inteleasa legatura dintre ele.

Jurnal

19.04.2022

  • Alegere tema proiect
  • Cautare componente

28.04.2022

  • Incepere pagina Wiki
  • Comandare componente

15.05.2022

  • Finalizare implementare hardware

20.05.2022

  • Finalizare implementare software

26.05.2022

  • Finalizare documentatie wiki

Bibliografie/Resurse

Download

pm/prj2022/sgherman/dogfeeder.txt · Last modified: 2022/06/03 00:29 by sebastian.puiu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0