Wireless Cat Feeder

Nume: Andreea Prigoreanu

Grupa: 331CA

Introducere

Proiectul consta intr-un dispozitiv de hranire automata a pisicilor de companie. Stapanul seteaza prin Bluetooth, cu ajutorul telefonului, ora la care pisica urmeaza sa fie hranita. Aparatul elibereaza mancarea la ora selectata si trimite stapanului cantitatea de mancare existenta in bolul animalutului. Informatiile despre urmatoarea hranire sunt afisate pe un ecran LCD.

Inspiratie si utilitate: Medicii veterinari recomanda ca pisicile sa fie hranite la ore fixe si cu cantitati exacte. In plus, orice stapan de pisici stie cat de pretentioase sunt pisicile cand vine vorba de orele de masa. Asfel, m-am gandit la un dipozitiv care vine in ajutorul stapanilor de pisici si le permite sa respecte programul de masa al pisicilor chiar si atunci cand sunt foarte ocupati sau sunt plecati de acasa.

Sursa de inspiratie: Exemplu

Descriere generală

Dispozitivul Wireless Cat Feeder utilizeaza un modul Bluetooth prin intermediul caruia stapanul poate seta ora urmatoarei mese a pisicii. Cantitatea de mancare din bol se determina cu ajutorul senzorului de greutate de 1kg si cititorului HX711. Dispozitivul cunoaste ora exacta si timpul ramas pana la urmatoarea masa datorita unui modul RTC. Cand a venit timpul hranirii, un servomotor roteste capacul care astupa recipientul cu mancare si o elibereaza in bolul pisicii. Un ecran LCD va afisa mereu ora urmatoarei hraniri si cat timp a mai ramas pana atunci, iar in momentul in care mancarea este eliberata va aparea mesajul “Feeding time!”. Dupa ce se termina procesul de eliberare a mancarii, stapanul primeste pe telefon un mesaj sugestiv si cantitatea de mancare existenta in bol. Ulterior, cantitatea de mancarea se poate verifica trimitand o comanda prin Bluetooth. Mesajele ce trebuie afisate sunt transmise catre ecranul LCD prin protocolul I2C.

Hardware Design

Software Design

Mediul de dezvoltare: Arduino IDE

Bibliotecile Arduino utilizate in dezvoltarea proiectului:

Pentru a trimite comenzi prin Bluetooth de pe telefon catre Arduino am utilizat Serial Bluetooth Terminal disponibila in Play Store pe Android. Comenzile implementate sunt:

  • prin trimiterea caracterului 'T' se semnaleaza setarea unei ore de hranire. Daca exista deja o ora de hranire setata, aceasta se va inlocui. Dupa primirea caracterului 'T' se asteapta primirea orei dupa formatul 'hour:minutes'
  • prin trimiterea caracterului 'F' se declanseaza eliberarea mancarii. Daca exista o ora de hranire setata, aceasta va fi stearsa.
  • prin trimiterea caracterului 'W', se calculeaza cantitatea de mancare existenta in bol cu ajutorul senzorului de greutate si se trimite utilizatorului intr-un mesaj Bluetooth.

Modulul de ceas este utlizat pentru a afla ora exacta. Odata ce se seteaza o ora de hranire printr-o comanda Bluetooth, se configureaza o alarma la ora selectata ce va genera o intrerupere pe pinul SQW a modulului RTC prin care se intra in starea de hranire.

Pentru aflarea cantitatii din bolul animalutului se utilizeaza o celula de greutate de 1kg si un cititor de greutate. Pentru a obtine greutatea, functiile din biblioteca HX711 utilizeaza convertorul ADC.

Dispozitivul functioneaza pe sistemul unui automat cu stari:

  1. Starea NO_FEED_SET: in aceasta stare, dispozitivul nu are setata o ora de hranire. Se asteapta comenzi Bluetooth.
  2. Starea SET_FEEDING_TIME: daca se primeste comanda Bluetooth 'T', se intra in modul de setare a orei de hranire. Odata primita ora, cu ajutorul modulului RTC se genereaza o alarma la ora respectiva si dispozitivul intra in starea IDLE.
  3. Starea IDLE: dispozitivul afiseaza pe ecran timpul ramas pana la hranire. Intre timp, se pot primi comenzi Bluetooth. Cand se ajunge la ora setata, alarma modulului RTC genereaza o intrerupere pe pinul PQW si starea se modifica in FEED_TIME.
  4. Starea FEED_TIME: se roteste servo motorul pentru a elibera mancarea. Se trimite utilizatorului un mesaj Bluetooth cu cantitatea de mancare din bol. La final se intra in starea NO_FEED_SET.

La pornire dispozitivului se afla in starea NO_FEED_SET.

Laboratoarele urilizate sunt: laboratul 1 UART, laboratorul 2 Intreruperi, laboratorul 4 ADC si laboratorul 6 I2C.

Rezultate Obţinute

Dsipozitivul final implementeaza toate functionalitatile mentionate in descrierea proiectului.

Concluzii

A fost interesant sa lucrez la un proiect care implica si parte de hardware. Principalele dificultati intampinate au fost la aranjarea finala a componentelor astfel incat sa arate ca un dispozitiv compact.

Download

Arhiva cu codul: cat_feeder_main.zip

Demo video: cat_feeder_video.zip

Jurnal

  • 04.05.2023: scrierea documentatiei
  • 13-14.05.2023: montaj hardware + incepere testare software
  • 20-21.05.2023: lucru la software + testare
  • 27-28.05.2023: finalizarea functionalitatilor software + testare

Resurse

pm/prj2023/gpatru/wirelesscatfeeder.txt · Last modified: 2023/05/29 23:34 by andreea.prigoreanu
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