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:
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 |
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