This shows you the differences between two versions of the page.
pm:prj2024:mdinica:ioana.aradoaie [2024/05/27 02:13] ioana.aradoaie [Mediul de dezvoltare] |
pm:prj2024:mdinica:ioana.aradoaie [2024/05/27 02:58] (current) ioana.aradoaie [Descriere generală] |
||
---|---|---|---|
Line 18: | Line 18: | ||
Sistemul se bazeaza pe un controler ESP32 si integreaza o serie de senzori folositi pentru detectarea prezentei cainelui, monitorizarea consumului de apa si a temperaturii mediului inconjurator. Datele colectate sunt afisate pe un ecran LCD si transmise prin e-mail prin intermediul modulului WiFi si protocolului SMTP, permitand proprietarilor sa fie permanent informat cu privirei la starea animalutului lor. Sistemul va incorpora si un Step Motor controlat prin PWM pentru a reumple automat bolul de apa atunci cand nivelul acesteia scade sub un prag prestabilit. | Sistemul se bazeaza pe un controler ESP32 si integreaza o serie de senzori folositi pentru detectarea prezentei cainelui, monitorizarea consumului de apa si a temperaturii mediului inconjurator. Datele colectate sunt afisate pe un ecran LCD si transmise prin e-mail prin intermediul modulului WiFi si protocolului SMTP, permitand proprietarilor sa fie permanent informat cu privirei la starea animalutului lor. Sistemul va incorpora si un Step Motor controlat prin PWM pentru a reumple automat bolul de apa atunci cand nivelul acesteia scade sub un prag prestabilit. | ||
- | {{:pm:prj2024:mdinica:ioana.aradoaie-diagrama.drawio.png?750|}} | + | {{:pm:prj2024:mdinica:ioana.aradoaie-draww.jpg?750|}} |
Line 24: | Line 24: | ||
<note tip> | <note tip> | ||
- | Lista de piese: | + | ** Lista de piese: ** |
* Arduino Nano ATMEGA328PB | * Arduino Nano ATMEGA328PB | ||
* ESP32-CAM WIFI+BT | * ESP32-CAM WIFI+BT | ||
Line 46: | Line 46: | ||
==== Implementare fizica: ==== | ==== Implementare fizica: ==== | ||
- | <note tip> | + | === Structura legaturilor dintre componente: === |
- | Legaturi componente <-> pini ESP32 | + | |
- | * Trig senzor ultrasonic -> GPIO 12 (HS2_DATA2) | + | | Componenta 1 | Protocol | Componenta 2 | |
- | * Echo senzor ultrasonic -> GPIO 13 (HS2_DATA3) | + | | RX ESP32-CAM | UART | TX Arduino Nano | |
- | * senzor de temperatura -> GPIO 14 (HS2_CLK) | + | | TX ESP32-CAM | UART | RX Arduino Nano | |
- | * senzor nivel apa -> GPIO 4 (HS2_DATA0) | + | | TRIGGER_PIN (9) | GPIO | Senzor ultrasonic (Trigger)| |
- | * SDA LCD -> GPIO 16 (U2RXD) | + | | ECHO_PIN (10) | GPIO | Senzor ultrasonic (Echo) | |
- | * SCL LCD -> GPIO 0 (CSI_MCLK) | + | | DHTPIN (2) | GPIO | Senzor DHT11 (Data) | |
- | * Step Motor 1 -> GPIO 15 (HS2_CMD), GPIO 14 (HS2_CLK) | + | | SERVO_PIN (3) | PWM | SG90 Servo motor | |
- | * Step Motor 2 -> GPIO 2 (HS2_DATA1/FLASH), GPIO 4 (HS2_DATA0) | + | | SDA (A4) | I2C | LCD I2C (SDA) | |
- | * servomotor PWM -> GPIO 3 (U0RXD) | + | | SCL (A5) | I2C | LCD I2C (SCL) | |
- | </note> | + | | A0 | ADC | Senzor de nivel al apei (Data)| |
+ | |||
+ | |||
+ | === Implementare: === | ||
{{:pm:prj2024:mdinica:ioana-aradoaie-hw1.png?750|}} | {{:pm:prj2024:mdinica:ioana-aradoaie-hw1.png?750|}} | ||
Line 82: | Line 85: | ||
* **Laboratorul 5: SPI** - Utilizat indirect prin ESP Mail Client pentru trimiterea email-urilor. | * **Laboratorul 5: SPI** - Utilizat indirect prin ESP Mail Client pentru trimiterea email-urilor. | ||
* **Laboratorul 6: I2C** - Controlul afișajului LCD prin interfața I2C folosind biblioteca LiquidCrystal_I2C. | * **Laboratorul 6: I2C** - Controlul afișajului LCD prin interfața I2C folosind biblioteca LiquidCrystal_I2C. | ||
+ | |||
=== Calibrarea elementelor de senzoristică: === | === Calibrarea elementelor de senzoristică: === | ||
Line 98: | Line 102: | ||
Ajustarea măsurătorilor: Aplicarea corecțiilor în cod pentru a compensa orice erori constatate. | Ajustarea măsurătorilor: Aplicarea corecțiilor în cod pentru a compensa orice erori constatate. | ||
+ | |||
=== Librării și surse 3rd-party === | === Librării și surse 3rd-party === | ||
Line 111: | Line 116: | ||
**TimerOne.h**: Biblioteca TimerOne.h este folosită pentru a gestiona un timer hardware pe Arduino Nano, pentru a actualiza periodic afișajul LCD. | **TimerOne.h**: Biblioteca TimerOne.h este folosită pentru a gestiona un timer hardware pe Arduino Nano, pentru a actualiza periodic afișajul LCD. | ||
+ | |||
=== Algoritmi și structuri implementate === | === Algoritmi și structuri implementate === | ||
Line 120: | Line 126: | ||
**Gestionarea timpului**: Utilizarea funcției millis() pentru a măsura timpul care a trecut de la ultima băutură și afișarea acestuia pe LCD. | **Gestionarea timpului**: Utilizarea funcției millis() pentru a măsura timpul care a trecut de la ultima băutură și afișarea acestuia pe LCD. | ||
+ | |||
=== Flow firmware === | === Flow firmware === | ||
Line 126: | Line 133: | ||
* **Actualizarea LCD-ului**: La fiecare secundă, LCD-ul este actualizat cu temperatura, umiditatea și timpul care a trecut de la ultima băutură. | * **Actualizarea LCD-ului**: La fiecare secundă, LCD-ul este actualizat cu temperatura, umiditatea și timpul care a trecut de la ultima băutură. | ||
* **Trimiterea datelor**: Datele sunt trimise către ESP32-CAM pentru a fi trimise prin emailcu ajutorul protocolului SMTP. | * **Trimiterea datelor**: Datele sunt trimise către ESP32-CAM pentru a fi trimise prin emailcu ajutorul protocolului SMTP. | ||
+ | |||
=== Optimizări === | === Optimizări === | ||
Line 133: | Line 141: | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | Link Repo GitHub: https://github.com/aradoai3/PawsWatch/ \\ | + | **Link Repo GitHub:** https://github.com/aradoai3/PawsWatch/ \\ |
===== Jurnal ===== | ===== Jurnal ===== | ||
+ | * **15 aprilie-30 aprilie** - comenzi de piese | ||
+ | * **1 mai** - primul draft de documentatie | ||
+ | * **10 mai** - logistica pentru hardware (schema electrica, lipituri, cablaj) | ||
+ | * **15 mai** - adaugare implementare harware + documentatia aferenta | ||
+ | * **26 mai** - adaugare repo GitHub si finalizare cod | ||
===== DEMO ===== | ===== DEMO ===== | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== |