Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2025:aluca:teodora.teodorescu [2025/05/10 23:09]
teodora.teodorescu [Descriere generală]
pm:prj2025:aluca:teodora.teodorescu [2025/05/30 10:25] (current)
teodora.teodorescu [Jurnal]
Line 6: Line 6:
 </​note>​ </​note>​
 ===== Descriere generală ===== ===== Descriere generală =====
 +Proiectul reprezinta un hranitor automat pentru pisici, bazat pe microcontrolerul ESP32. Sistemul foloseste doua servomotoare SG90 pentru deschiderea compartimentelor de apa si mancare, controlate fie prin doua butoane fizice, fie printr-o interfata web accesibila prin WiFi. Utilizatorul poate interactiona local sau de la distanta, folosind aplicatia web. Un buzzer conectat la un pin GPIO emite un semnal sonor la fiecare actiune, iar un ecran LCD cu interfata I2C afiseaza mesaje precum "Eat well, my kittens"​ sau "Drink well, my kittens",​ oferind feedback vizual.
  
 +{{:​pm:​prj2025:​aluca:​pet_feeder.drawio.png?​800|}}
  
-{{:​pm:​prj2025:​aluca:​schema_bloc_pet_feeder.png?​700|}} 
  
  
 ===== Hardware Design ===== ===== Hardware Design =====
 +
 +==== Lista de piese folosite ====
  
 <note tip> <note tip>
-  * ESP32 Development Board +  * [[https://​www.optimusdigital.ro/​en/​bluetooth-boards/​4371-esp32-development-board-with-wifi-and-bluetooth-42.html|ESP32 Development Board]] 
-  * Motor 28BYJ-48 +  * [[https://​www.optimusdigital.ro/​ro/​servo-motoare/​450-servomotor-sg90-9g.html|MicroServo SG90]] 
-  * Driver motor ULN2003 +  * [[https://​www.optimusdigital.ro/​ro/​buzzer/​30-buzzer-activ-5v.html|Buzzer ​activ 5V]] 
-  * Buzzer +  * [[https://​www.optimusdigital.ro/​ro/​butoane-si-intrerupatoare/​34-buton-push-normal-deschis.html|2 Butoane ​tip push]] 
-  * Senzor greutate +  * [[https://​www.optimusdigital.ro/​ro/​cabluri/​501-set-cabluri-mama-tata-mama-mama-tata-tata-40buc.html|Cabluri mama-tata, mama-mama, tata-tata]] 
-  * 2 Butoane +  * [[https://​www.optimusdigital.ro/​ro/​breadboard/​78-mini-breadboard-170-puncte.html|Breadboard]] 
-  * Convertor de tensiune LM2596 +  * [[https://​www.optimusdigital.ro/​ro/​afisaje/​179-display-lcd-1602-cu-interfata-i2c.html|LCD 1602 cu modul I2C]] 
-  * 2 Baterii Li-Ion 18650 +  * [[http://​emag.ro/​cablu-alimentare-si-date-ugreen-fast-charging-usb-la-micro-usb-nickel-plating-pvc-1m-negru-6957303861361/​pd/​DC7CCBYBM/#​opensearch|Cablu USB micro]]
-  * Suport pentru 2 baterii 18650 în serie +
-  * Cabluri jumper +
-  * Breadboard +
-  * Rezistori 10kΩ+
 </​note>​ </​note>​
 +
 +==== Descriere detaliata a functionalitatii hardware ====
 +
 +{{:​pm:​prj2025:​aluca:​schema_pet_feeder.png?​800|}}
 +
 +Proiectul este bazat pe placa ESP32, care gestioneaza toate componentele si ofera conexiune WiFi. Doua servomotoare SG90 sunt folosite pentru a actiona mecanismele de eliberare a hranei si apei, fiind conectate pe pinii GPIO16 si GPIO17, controlati prin semnal PWM. Pentru comenzi manuale, sunt conectate doua butoane pe GPIO27 si GPIO14. Acestia sunt setati ca `INPUT_PULLUP`,​ deci nu au nevoie de rezistori externi. Cand un buton este apasat, ESP32 detecteaza nivelul LOW si executa actiunea corespunzatoare. Pe pinul GPIO4 este conectat un buzzer activ, care emite un semnal sonor scurt la fiecare alimentare. LCD-ul 1602 este conectat prin I2C, folosind pinii SDA (GPIO21) si SCL (GPIO22). Acesta afiseaza mesaje diferite in functie de comanda executata. Toate componentele sunt montate pe breadboard si alimentate printr-un cablu micro USB conectat la calculator. ESP32 alimenteaza si servomotoarele si display-ul, iar consumul total este potrivit pentru o alimentare pe USB, fara sursa externa.
 +
 +{{:​pm:​prj2025:​aluca:​poza_pet_feeder.jpeg?​600|}}
 +
  
 ===== Software Design ===== ===== Software Design =====
Line 32: Line 40:
  
 <note tip> <note tip>
-Descrierea codului aplicaţiei (firmware): 
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) 
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) 
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi 
-  * (etapa 3) surse şi funcţii implementate 
-</​note>​ 
  
-===== Rezultate Obţinute =====+   * Link Github: 
 +        https://​github.com/​TeodoraTeo05/​cat-feeder-esp32 
 +   * Link Demo video: 
 +        https://​youtu.be/​CCG9btgEeA4
  
-<note tip> +Descrierea codului aplicatiei: 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+  * Mediu de dezvoltare: proiectul a fost implementat si testat folosind Arduino IDE, cu placa ESP32 configurata prin Board Manager. Codul a fost scris in C++ si incarcat direct prin cablu USB.
 </​note>​ </​note>​
 +  * Librarii si surse 3rd-party utilizate:
 +    - WiFi.h – pentru crearea unei retele Wi-Fi in mod Access Point (ESP32 functioneaza ca hotspot local).
 +    - WebServer.h – pentru gestionarea cererilor HTTP si afisarea unei pagini HTML de control in browser.
 +    - ESP32Servo.h – pentru controlul servomotoarelor SG90, oferind semnal PWM stabil.
 +    - LiquidCrystal_I2C.h – pentru afisaj LCD 1602 cu interfata I2C.
  
-===== Concluzii =====+  * Algoritmi si structuri implementate:​ 
 +        - giveFood() – activeaza servomotorul de mancare, afiseaza un mesaj pe LCD si porneste buzzerul. 
 +        - giveWater() – activeaza servomotorul pentru apa, afiseaza un mesaj relevant pe LCD si activeaza buzzerul. 
 +        - beepBuzzer() – produce un sunet scurt pentru confirmarea comenzii. 
 +        - handleRoot() – serveste pagina HTML principala catre browserul utilizatorului. 
 +        - handleGiveFood() si handleGiveWater() – trateaza cererile GET de la butoanele web si apeleaza functiile corespunzatoare.
  
-===== Download =====+  * In loop(), se foloseste o structura de polling pentru a verifica starea butoanelor fizice, iar la apasare se declanseaza functiile corespunzatoare (mancare sau apa).
  
-<note warning>​ +  * Interfata HTML include doua butoane care trimit cereri HTTP catre rutele /food si /wateriar serverul ESP32 le gestioneaza in timp real.
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ sursescheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+
  
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** ​(dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:pm:prj2009:​cc:​dumitru_alin**. +  ​Surse si functii implementate:​ 
-</​note>​+    - setup() initializeaza toate componentele:​ LCD-ul, servomotoarele,​ butoanele, buzzerul si serverul webCreeaza reteaua Wi-Fi cu SSID-ul `CatFeeder_AP`. 
 +    - loop() verifica permanent daca au fost apasate butoanele fizice si trateaza cererile web de la clientii conectati la retea. 
 +    - Servomotoarele sunt comandate pe pinii 16 (mancare) si 17 (apa). 
 +    - Butoanele fizice sunt conectate pe pinii 27 si 14 si sunt citite cu `digitalRead()` in combinatie cu `INPUT_PULLUP`. 
 +    - Buzzerul ​este conectat la pinul 4 si este controlat simplu cu `digitalWrite()`. 
 +    ​Pe ecranul LCD apar mesajele`Eat well, my kittens` sau `Drink well, my kittens`, in functie de comanda primita.
  
-===== Jurnal ​=====+ 
 +===== Rezultate Obţinute ​=====
  
 <note tip> <note tip>
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.+Pet feeder - produs final: 
 +  * https://​youtube.com/​shorts/​fqGpPC8dX_Y?​feature=share
 </​note>​ </​note>​
  
-===== Bibliografie/​Resurse ===== 
  
-<​note>​ 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. 
-</​note>​ 
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2025/aluca/teodora.teodorescu.1746907757.txt.gz · Last modified: 2025/05/10 23:09 by teodora.teodorescu
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