Smart Pet Feeder

Autor: Flavius-Gabriel Petrache
Grupa: 333CD

Introducere

Proiectul propus constă într-un sistem inteligent de hrănire automată pentru animale de companie (câini și pisici). Dispozitivul poate fi programat să elibereze o cantitate prestabilită de hrană la o anumita ora setata de utilizator, oferind astfel o alimentație regulată și controlată. În plus, sistemul dispune de un buton manual ce permite alimentarea bolului la cerere.

Pentru o mai bună interacțiune și control, utilizatorul va avea posibilitatea de a controla dispozitivul direct de pe telefon, prin bluetooth, oferind diverse programe de alimentare, adaptate specific pentru câini sau pisici. Dispozitivul va include și un sistem de semnalizare cu LED: verde în timpul alimentării și roșu în modul standby.

Inspirație: Hrănirea corectă și la timp a animalelor de companie este esențială pentru sănătatea acestora. Acest proiect vine în sprijinul stăpânilor care au un program aglomerat, oferindu-le posibilitatea de a respecta cu strictețe orele de masă ale animalelor, chiar și în absența lor fizică.

Descriere generală

Sistemul automat de hrănire a animalelor funcționează printr-un mecanism controlabil de la distanță, care permite programarea meselor în funcție de rutina zilnică a animalului. Utilizatorul poate stabili ora la care dispozitivul eliberează o porție de hrană, iar dispozitivul memorează aceste setări și le execută cu precizie, afișând informații utile precum ora exactă, cantitatea de mancare diin bol si cantitatea de mancare din tubul care tine mancarea.

Atunci când momentul programat este atins, sistemul declanșează procesul de distribuire a hranei printr-un mecanism motorizat. Întregul proces este semnalizat vizual, iar un afișaj integrat informează în timp real cu mesaje relevante pentru stăpân. După alimentare, utilizatorul este notificat cu privire la starea actuală a dispozitivului și poate consulta de la distanță cantitatea de hrană disponibilă. În orice moment, utilizatorul poate interacționa cu dispozitivul pentru a verifica statusul curent sau pentru a declanșa manual alimentarea. De asemenea, senzorul HC-SR04 permite ca la apropierea de acesta, sa se declanseze mecanismul de alimentare.

Schema electrica

Componente folosite

1 - Arduino Uno - https://www.optimusdigital.ro/ro/compatibile-cu-arduino-uno/1678-placa-de-dezvoltare-compatibila-cu-arduino-uno-atmega328p-i-ch340.html?search_query=0104110000016997&results=1

2 - Servomotor - https://www.optimusdigital.ro/ro/motoare-servomotoare/2261-micro-servo-motor-sg90-180.html

3 - Modul Bluetooth - https://www.optimusdigital.ro/ro/wireless-bluetooth/153-modul-bluetooth-master-slave-hc-05-cu-adaptor.html?gad_source=1&gad_campaignid=21513560576&gbraid=0AAAAADv-p3Ads8Ib5nBcGT-3hMa9FNMY-&gclid=CjwKCAjwz_bABhAGEiwAm-P8YUxrmeMUmpXnZxAm3c0eJIe8ncERpJxd3m7c71dLOuU9CUQhtehHdxoC5akQAvD_BwE

4 - Senzor Greutate - https://ardushop.ro/ro/electronica/2418-1349-senzor-greutate.html#/246-greutate_maxima-1_kg

5 - Modul citire senzor greutate HX711 - https://ardushop.ro/ro/groundstudio/2207-modul-citire-senzor-greutate-hx711-groundstudio-6427854000040.html

6 - LED (rosu/verde) - https://cleste.ro/led-de-5-mm.html#/130-culoare_led-alb

7 - Push Button pentru manual. - https://www.optimusdigital.ro/ro/butoane-i-comutatoare/8029-intrerupator-oval-on-off.html?search_query=intrerupator&results=56

8 - LCD 1602 cu Interfata I2C - https://www.optimusdigital.ro/ro/optoelectronice-lcd-uri/2894-lcd-cu-interfata-i2c-si-backlight-albastru.html?gad_source=1&gad_campaignid=20868596392&gbraid=0AAAAADv-p3AR-6CagZNJpgq7L0_fvhOVW&gclid=CjwKCAjwz_bABhAGEiwAm-P8YRSLCfiB0C1jI9GmcxAWoYXY6EQpXmhqbg0sztDPc6CFDVcdmezpLxoCPZEQAvD_BwE

9 - RTC Module - https://www.optimusdigital.ro/en/others/148-ds1307-real-time-clock-module.html?gad_source=1&gad_campaignid=21513560576&gbraid=0AAAAADv-p3CdG0me9u5cgSApURGxgNDBf&gclid=CjwKCAjwuIbBBhBvEiwAsNypvWfItKd5BPV8_rgSEmgY5D-ntcmMTFqZLwwPKQXVO5s42hMkqZZqjxoCdAoQAvD_BwE

10 - Senzor Ultrasunete - https://www.optimusdigital.ro/ro/senzori-senzori-ultrasonici/2328-senzor-ultrasonic-de-distana-hc-sr04-compatibil-33-v-i-5-v.html?search_query=senzor+distanta&results=179

11 . Componente auxiliare: Bradboard, fire, set rezistente. https://www.optimusdigital.ro/ro/fire-fire-mufate/890-set-fire-tata-tata-40p-30-cm.html?search_query=0104210000007886&results=1

Software Design

Mediul de dezvoltare este Arduino IDE. Bibliotecile Arduino pe care le am folosit:

  • Biblioteca Servo - pentru a permite servomotorului sa elibereze hrana in bol.
  • Software Serial - pentru comunicarea cu modulul Bluetooth HC-05
  • RTC-lib - Pentru a obtine timpul real
  • LiquidCrystal_I2C - pentru a afisa informatii pe LCD
  • HX711 - pentru citirea greutatii din bolul cu mancare
  • Wire - pentru comunicarea prin I2C cu LCD-ul si modulul RTC

Asa cum am mentionat, aparatul poate fi controlat din telefon, prin aplicatia Serial Bluetooth Terminal de pe Magazin Play. Iata cateva comenzi pe care le putem da prin bluetooth:

  • cantitate - afiseaza pe ecran, cantitatea ramasa in bolul cu mancare.
  • cantitate_tub - afiseaza pe ecran procentajul de umplere din tubul care tine mancarea.
  • set_time - ora la care se va declansa alimentarea animalului. (Ulterior vi se va cere sa introduceti ora si minutul la care doriti ca aparatul sa porneasca)
  • caine - Modul caine, alimenteaza bolul cu aproximativ 250 de grame
  • pisica - Modul pisica alimenteaza bolul cu aproximativ 150 de grame
  • refill - Dupa ce ati umplut tubul cu mancare, apasati aceasta comanda, pentru a anunta aparatul ca e plin.

La apropierea unui animal la mai putin de 12 centimetri, senzorul de ultrasunete detecteaza animalul si umple bolul cu aproximativ 150 de grame. De asemenea, o alta fuuncitonalitate este alimentarea manuala prin butonul fizic.

Laboratoare folosite:

  • Laboratorul 0 - GPIO
  • Laboratorul 1 - UART
  • Laboratorul 3 – Timere/PWM
  • Laboratorul 6 – I2C

Descrierea codului:

  • afiseazaGreutateBol() - afiseaza greutatea din bol
  • afiseazaCantitateTub() - afiseaza cantitatea din tub
  • alimentare() - alimenteaza bolul cu aproximativ 150 de grame
  • alimentare_catei - alimenteaza bolul cu aproximativ 250 de grame
  • alimentareManuala() - alimenteaza bolul pana la oprirea switchului
  • masoaraDistantaUltrasunete() - masoara distanta in centimetrii catre un obstacol aflat in fata senzorului de ultrasunete

Resurse folosuite

Rezultate obtinute

Imaginile + Video:

final_smart_feeder.zip

Github

pm/prj2025/iotelea/flavius.petrache.txt · Last modified: 2025/05/28 11:01 by flavius.petrache
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