Automatic Pet Feeder - Breazu Laura-Andreea 332AA

Introducere

Proiectul Automatic Pet Feeder reprezinta o solutie automatizata pentru hranirea animalelor de companie. Dispozitivul consta intr-un recipient in care se stocheaza o cantitate mai mare de hrana, din care se va elibera in mod automat, prin intermediul unui servomotor, cantitatea dorita. Utilizatorul poate seta ora la care sa programeze hranirea. Datele se introduc printr-o tastatura matriceala si pot fi vizualizate pe un ecran LCD.

Acest proiect poate fi util pentru proprietarii de animale de companie care sunt ocupați sau pleaca in calatorii și doresc sa asigure o hranire regulata a animalului lor.

Descriere generală

Schema bloc

In realizarea proiectului am utilizat elemente studiate in laboratoare precum Intreruperi Hardware si Software, Timere, PWM, Protocolul I2C.

Hardware Design

Componentele folosite pentru proiect sunt:

  • Placa de dezvoltare Arduino Uno
  • Ecran LCD
  • Servomotor
  • Modul RTC DS3231
  • Tastatura matriceala
  • Buton
  • Fire
  • Breadboard

Configuratia pinilor:

Ecran LCD I2C Pin
GND GND
VCC 5V
SDA A4
SCL A5
Modul RTC DS3231 Pin
GND GND
VCC 5V
SDA A4
SCL A5
Servomotor Pin
GND GND
VCC 5V
Signal Pin 11
Tastatura matriceala Pin
R1 10
R2 9
R3 8
R4 7
C1 6
C2 5
C3 4
C4 3
Buton Pin
Signal Pin 2

Software Design

Mediul de dezvoltare folosiT: Arduino IDE.

Bibliotecile utilizate:

  • RTClib.h - folosita pentru a accesa si gestiona ceasul in timp real RTC DS3231
  • LiquidCrystal_I2C.h - folosita pentru a controla afisajul ecranului LCD prin protocolul I2C
  • Servo.h - folosita pentru controlul unui servomotor care va declansa alimentarea hranei
  • Keypad.h - folosita pentru citirea tastelor de pe tastatura matriceala
  • Wire.h - folosita pentru comunicarea prin I2C cu modulul RTC DS3231 si ecranul LCD I2C

Principiul de functionare

  • Initial sistemul afiseaza data si ora curenta pe ecranul LCD, informatii preluate de la modulul RTC. Atat afisajul pe ecran cat si accesarea datelor din modulul de ceas se realizeaza prin protocolul I2C.
  • Prin apasarea butonului de pe breadboard, utilizatorul poate intra in modul de setare a orei de hranire. Acest lucru activeaza o rutina de tratare a intreruperii hardware prin care se trece de la afisarea datei si orei pe ecranul LCD, la afisarea interfetei pentru setarea orei de hranire.
  • Pentru a seta ora de hranire, utilizatorul poate introduce ora si minutele dorite folosind tastatura matriceala. Valorile introduse sunt afisate pe ecranul LCD si pot fi ajustate in functie de necesitati. Apasarea tastei “*” permite resetarea valorilor, iar apasarea tastei ”#” realizeaza confirmarea setarii.
  • Sistemul monitorizeaza in mod constant ora curenta. Cand ora curenta corespunde orei setate de utilizator, se activeaza actionarea servomotorului care elibereaza hrana. Am utilizat o intrerupere de tip software pentru a porni un timer pentru a controla durata alimentarii. Dupa expirarea timpului predefinit pentru alimentare, servomotorul revine in pozitia initiala, iar timer-ul este resetat pentru a astepta urmatoarea hranire programata.
  • Procesul se repeta ciclic, monitorizand constant ora curenta, permitand utilizatorului sa ajusteze orele de hranire dupa necesitate.

Rezultate Obţinute

Am reusit sa realizez un proiect cu utilitate in viata de zi cu zi si i-am implementat toate functionalitatile pe care mi le-am propus de la inceput.

Puteti vizualiza un demo al proiectului accesand urmatorul link:

https://www.youtube.com/shorts/GQ0ghi2bf5A

Concluzii

Ma bucur ca am ales sa fac aceasta materie. Mi-a placut faptul ca am invatat sa imbin partea de software cu cea de hardware astfel incat sa realizez un proiect care poate fi utilizat practic in viata de fi cu zi.

Download

Jurnal

Bibliografie/Resurse

pm/prj2023/adarmaz/automatic-pet-feeder.txt · Last modified: 2023/05/27 00:05 by laura.breazu
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