This shows you the differences between two versions of the page.
pm:prj2025:aluca:teodora.teodorescu [2025/05/25 19:24] teodora.teodorescu * |
pm:prj2025:aluca:teodora.teodorescu [2025/05/30 10:25] (current) teodora.teodorescu [Jurnal] |
||
---|---|---|---|
Line 43: | Line 43: | ||
* Link Github: | * Link Github: | ||
https://github.com/TeodoraTeo05/cat-feeder-esp32 | https://github.com/TeodoraTeo05/cat-feeder-esp32 | ||
+ | * Link Demo video: | ||
+ | https://youtu.be/CCG9btgEeA4 | ||
Descrierea codului aplicatiei: | Descrierea codului aplicatiei: | ||
Line 48: | Line 50: | ||
</note> | </note> | ||
* Librarii si surse 3rd-party utilizate: | * Librarii si surse 3rd-party utilizate: | ||
- | - `WiFi.h` – pentru crearea unei retele Wi-Fi in mod Access Point (ESP32 functioneaza ca hotspot local). | + | - 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. | + | - 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. | + | - ESP32Servo.h – pentru controlul servomotoarelor SG90, oferind semnal PWM stabil. |
- | - `LiquidCrystal_I2C.h` – pentru afisaj LCD 1602 cu interfata I2C. | + | - LiquidCrystal_I2C.h – pentru afisaj LCD 1602 cu interfata I2C. |
* Algoritmi si structuri implementate: | * Algoritmi si structuri implementate: | ||
- | - `giveFood()` – activeaza servomotorul de mancare, afiseaza un mesaj pe LCD si porneste buzzerul. | + | - 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. | + | - giveWater() – activeaza servomotorul pentru apa, afiseaza un mesaj relevant pe LCD si activeaza buzzerul. |
- | - `beepBuzzer()` – produce un sunet scurt pentru confirmarea comenzii. | + | - beepBuzzer() – produce un sunet scurt pentru confirmarea comenzii. |
- | - `handleRoot()` – serveste pagina HTML principala catre browserul utilizatorului. | + | - handleRoot() – serveste pagina HTML principala catre browserul utilizatorului. |
- | - `handleGiveFood()` si `handleGiveWater()` – trateaza cererile GET de la butoanele web si apeleaza functiile corespunzatoare. | + | - handleGiveFood() si handleGiveWater() – trateaza cererile GET de la butoanele web si apeleaza functiile corespunzatoare. |
- | * In `loop()`, se foloseste o structura de polling pentru a verifica starea butoanelor fizice, iar la apasare se declanseaza functiile corespunzatoare (mancare sau apa). | + | * In loop(), se foloseste o structura de polling pentru a verifica starea butoanelor fizice, iar la apasare se declanseaza functiile corespunzatoare (mancare sau apa). |
- | * Interfata HTML include doua butoane care trimit cereri HTTP catre rutele `/food` si `/water`, iar serverul ESP32 le gestioneaza in timp real. | + | * Interfata HTML include doua butoane care trimit cereri HTTP catre rutele /food si /water, iar serverul ESP32 le gestioneaza in timp real. |
* Surse si functii implementate: | * Surse si functii implementate: | ||
- | - `setup()` initializeaza toate componentele: LCD-ul, servomotoarele, butoanele, buzzerul si serverul web. Creeaza reteaua Wi-Fi cu SSID-ul `CatFeeder_AP`. | + | - 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. | + | - 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). | - 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`. | - Butoanele fizice sunt conectate pe pinii 27 si 14 si sunt citite cu `digitalRead()` in combinatie cu `INPUT_PULLUP`. | ||
Line 76: | Line 78: | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | Pet feeder - produs final: |
+ | * https://youtube.com/shorts/fqGpPC8dX_Y?feature=share | ||
</note> | </note> | ||
- | ===== Concluzii ===== | ||
- | ===== Download ===== | ||
- | |||
- | <note warning> | ||
- | 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**. | ||
- | </note> | ||
- | |||
- | ===== Jurnal ===== | ||
- | |||
- | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | ||
- | </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> | ||