Table of Contents

Sistem automat pentru udarea plantelor

Introducere

Sistemul automat pentru udarea plantelor verifica umiditatea din sol periodic si o mentine la un nivel constant prin pornirea unui sisem de udare prin picurare. Cu acest sistem fiecare planta are senzorul ei si e conectata la un rezervor, individual sau distribuit. Nivelul de umiditate poate fi setat de catre utilizator in functie de nevoile plantei si de tipul solului. De asemenea, sistemul poate fi accesat prin internet cu ajutorul unei aplicatii. Alte functionalitati pe care le ofera vor fi: afisarea temperaturii, log-uri pentru cand a udat, nivelul de apa din rezervorul fiecarei plante.

Descriere generală

Schema bloc

Cu ajutorul telefonului sau a laptop-ului voi comunica prin wifi cu microcontroller-ul ESP32, astfel incat sa obtin de la el informatii in timp real despre temperatura ambientala si umiditatea din aer/sol din zona plantelor.

Hardware Design

Lista de componente:

Schema electrica:

Explicarea necesitatii componentelor:

  1. ESP32-C6 Super Mini = microcontroller-ul care va gestiona conexiunea cu telefonul, va primi input de la senzor si va comanda pornirea sistemului de udare
  2. Battery 5V = sursa de alimentare pentru valva, era insuficient curentul primit de la microcontroller
  3. Soil moisture sensor = senzorul care masoara umiditatea din sol si pe baza caruia se va decide pornirea apei
  4. Valve = “robinetul” care va porni apa din rezervor
  5. DHT22 = senzor de umiditate si temperatura pentru a citi temperatura ambientala si umiditatea aerului

Descriere a functionarii:

Poza cu hardware-ul:

Software Design

Mediul de dezvoltare: ESP-IDF (Espressif IoT Development Framework)

Biblioteci si surse third-party:

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.

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:

  1. server http pe placuta care afiseaza o pagina cu butoane din care poti trimite cereri prin wifi
  2. citire senzor de umiditate sol in mod analogic
  3. citire senzor de temperatura si umiditate DHT22 in mod digital (folosind biblioteca specializata)
  4. comandarea valvei de pornire a apei atunci cand umiditatea ambientala este sub un prag
  5. citirea logurilor prin cereri http

Link git: https://github.com/D9nni/PM-Plant-Watering-System

Rezultate Obţinute

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.

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

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

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.

Jurnal

12 mai - am cumparat ESP32, senzor de umiditate sol si senzor de temperatura si umiditate a aerului DHT11

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

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

Datasheet ESP32-C6FH4: https://www.espressif.com/sites/default/files/documentation/esp32-c6_datasheet_en.pdf