This shows you the differences between two versions of the page.
pm:prj2025:aluca:teodora.teodorescu [2025/05/18 22:35] teodora.teodorescu [Hardware Design] |
pm:prj2025:aluca:teodora.teodorescu [2025/05/30 10:25] (current) teodora.teodorescu [Jurnal] |
||
---|---|---|---|
Line 34: | Line 34: | ||
{{:pm:prj2025:aluca:poza_pet_feeder.jpeg?600|}} | {{:pm:prj2025:aluca:poza_pet_feeder.jpeg?600|}} | ||
+ | |||
===== Software Design ===== | ===== Software Design ===== | ||
Line 39: | 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 /water, iar 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: surse, scheme, 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 web. Creeaza 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> | ||