This shows you the differences between two versions of the page.
pm:prj2025:ccristi:andrei_daniel.lungu [2025/05/24 23:04] andrei_daniel.lungu [Hardware Design] |
pm:prj2025:ccristi:andrei_daniel.lungu [2025/05/27 22:13] (current) andrei_daniel.lungu [Jurnal] |
||
---|---|---|---|
Line 28: | Line 28: | ||
- Valve = "robinetul" care va porni apa din rezervor | - Valve = "robinetul" care va porni apa din rezervor | ||
- DHT22 = senzor de umiditate si temperatura pentru a citi temperatura ambientala si umiditatea aerului | - DHT22 = senzor de umiditate si temperatura pentru a citi temperatura ambientala si umiditatea aerului | ||
+ | |||
+ | Descriere a functionarii: | ||
+ | * Senzorul de umiditate sol e citit in mod analogic pe pinul GP1. | ||
+ | * Senzorul DHT22 e citit in mod digital pe pinul GP0. | ||
+ | * Valva e controlata de pinul GP2, care e configurat in modul open drain astfel incat valva sa isi ia curentul de la baterie dar sa fie controlata pornirea de pe microcontroller. | ||
Poza cu hardware-ul: | Poza cu hardware-ul: | ||
Line 34: | Line 39: | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | Mediul de dezvoltare: ESP-IDF (Espressif IoT Development Framework) | ||
- | <note tip> | + | Biblioteci si surse third-party: |
- | Descrierea codului aplicaţiei (firmware): | + | |
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | + | Pentru ca ESP nu ofera acces low level atat de usor ca Arduino, am fost nevoit sa folosesc mai multe biblioteci din framework-ul ESP-IDF. |
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | + | |
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | + | * esp_wifi.h - pentru conectarea la reteaua wifi |
- | * (etapa 3) surse şi funcţii implementate | + | * esp_timer.h - pentru masurarea timpului in sistemul de loguri |
- | </note> | + | * nvs_flash.h - non-volatile storage, necesar pentru modulul de wifi |
+ | * esp_http_server.h - pentru a raspunde la cereri http cu informatii despre parametrii masurati | ||
+ | |||
+ | Pe langa asta, am avut nevoie de o biblioteca custom pentru senzorul de umiditate si temperatura DHT22, care implementeaza un protocol one-wire special pentru citirea datelor. | ||
+ | |||
+ | |||
+ | Functionalitati implementate: | ||
+ | - server http pe placuta care afiseaza o pagina cu butoane din care poti trimite cereri prin wifi | ||
+ | - citire senzor de umiditate sol in mod analogic | ||
+ | - citire senzor de temperatura si umiditate DHT22 in mod digital (folosind biblioteca specializata) | ||
+ | - comandarea valvei de pornire a apei atunci cand umiditatea ambientala este sub un prag | ||
+ | - citirea logurilor prin cereri http | ||
+ | |||
+ | Link git: https://github.com/D9nni/PM-Plant-Watering-System | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
- | <note tip> | + | La finalul proiectului, placuta se conecteaza la reteaua wi-fi prestabilita si primeste o adresa IP la care poate fi accesata din browser, unde afiseaza butoane prin care poti face cereri despre parametrii importanti. Proiectul se comporta ca o mica statie meteo mai degraba, care iti poate raspunde care este umiditatea, temperatura si umiditatea solului in timp real. |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
- | </note> | + | |
+ | Partea de pornire a apei a esuat din cauza hardware-ului prost ales, am avut o valva de aer in loc de o valva de apa sau de o pompa, care consuma mult curent si care pana la urma nu mai functioneaza deloc. | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | In concluzie, proiectul a esuat ca produs final, am castigat doar experienta. Lipsa componentei necesare care era o pompa submersibila mica sau o valva mai serioasa pentru apa a fost o problema esentiala, de asemenea a durat mult sa gasesc cum sa programez placuta mea care e una dintr-o serie mai rara. Ar fi trebuit sa lucrez cu ceva asemanator cu ce am avut la laborator pentru rezultate mai bune. | ||
===== Download ===== | ===== Download ===== | ||
Line 61: | Line 80: | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
- | <note tip> | + | 12 mai - am cumparat ESP32, senzor de umiditate sol si senzor de temperatura si umiditate a aerului DHT11 |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
- | </note> | + | 14 mai - am lipit placuta la laborator, am testat componentele, am folosit pentru inceput cod Arduino. Nu am reusit sa gasesc in platformIO placuta mea. Am ars din greseala senzorul DHT11. |
+ | |||
+ | 20 mai - am comandat alt senzor DHT22 si o valva de aer in loc de pompa de apa pe care ar fi trebuit sa o am. | ||
+ | |||
+ | 22 mai - Am constatat ca valva de aer consuma mult curent si nu o pot lega direct la un pin, am incercat sa folosesc pinul in modul open drain si sa pun o rezistenta de pull up catre vcc, dar curentul obtinut era prea mic pentru a porni valva. Valva se deschidea totusi daca o puneam direct la vcc, dar daca puneam o rezistenta cat de mica nu mai mergea. M-am gandit sa adaug o baterie, dar nu era ok sa bag curentul care vine din baterie in pinul de la esp. | ||
+ | |||
+ | 23 mai - am inceput dezvoltarea codului pentru proiect folosind esp-idf pe linux | ||
+ | |||
+ | 25 mai - La laborator mi s-a recomandat ca solutie un tranzistor IRLZ44N, nu era pe stoc, am luat altceva care avea tensiunea de poarta de prag prea mare, nu am reusit nimic cu el. | ||
+ | |||
+ | 27 mai - Am cautat IRLZ44N si.. surpriza, am primit IRLZ234N, care tot nu comuta cu impulsul dat de pinul de pe esp. Ca ultima solutie am pus un buton care sa deschida valva manual pentru a face o demonstratie, dar pana la urma pare ca valva nu mai functioneaza deloc. | ||
+ | Am imbunatatit codul, transformand esp-ul intr-un server http care raspunde la requesturi despre parametrii de mediu si prin care sa poti porni apa. | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== |