Watering Buddy

Realizat de Frecuș Tudor George - 334CA

Introducere

Sistem de irigare automat al plantelor de casă.

Scopul proiectului este de a nu te mai stresa cu udarea plantei preferate, atât atunci când pleci în vacanță, cât și în viața de zi cu zi.

Ușurează munca casnică eliberându-te de o activitate. Proiectul poate, de asemenea, fi făcut pe o scară largă și folosit în sere sau alte aplicații agricole.

Descriere generală

Circuitul este realizat prin conectarea unui senzor de umiditate a solului la un microcontroller EPS32, care în funcție de valoarea citită decide dacă planta are nevoie de să fie udată sau nu cu ajutorul mini pompei de apă submersibile.

Există trei stări în care se poate afla pământul:

  • Prea umed, caz în care led-ul RGB va arăta culoarea albastră.
  • Umiditate perfectă, led-ul se face verde, aici dacă pământul a fost anterior într-o stare uscată, se mai pornește pompa timp de 2 secunde pentru a mai da puțină apă plantei. Dacă planta se află în această stare, se va aștepta o perioadă mai lungă pentru a verifica din nou starea solului, chiar de o zi pentru a nu îneca planta.
  • Uscat, în starea aceasta led-ul se face galben și pompa începe să irige planta timp de 3 secunde, după care circuitul iar verifică nivelul umidității din sol și acționează din nou pompa la nevoie.

Nivelul de umiditate din sol poate fi vazut și de pe telefon prin Blynk, unde se poate vedea starea plantei și se poate controla manual pompa de apă.

Hardware Design

Componente necesare:

  • Placa de dezvoltare ESP32 (35 lei)
  • 14 Rezistențe diferite valori (1.5 lei)
  • Senzor de umiditate diy (6 lei)
  • 1 x Tranzistor 2n2222 NPN (1 leu)
  • Mini Pompă de apă submersibilă (3-6V) (12 lei)
  • Mini furtun 6x8mm (7 lei)
  • fire tata-tata, mama-mama si tata-mama (~10 lei)
  • Suport baterii 4 x R6 (5 lei)
  • 4 Baterii R6 (10 lei)
  • RGB Led (3 lei)
  • Plantă de casă (Nu se include în cost din păcate)

Cost total ~= 90 lei

Înainte de a citi datele de la senzorul de umiditate și cel al nivelului apei, tensiunea trebuie redusă cu ajutorul unui divizor de tensiune la 3V, deoarece ESP32 acceptă tensiuni între 0-3,3V.

Software Design

Mediu de dezvoltare: Arduino IDE

Librării folosite: - WiFi.h - WiFiClient.h - BlynkSimpleEsp32.h

Flow-ul programului:

1. Inițializarea sistemului:

  1. Configurarea pinilor de intrare și ieșire.
  2. Conectarea la WiFi și Blynk.

2. Setup:

  1. Inițializare serială.
  2. Configurare pini senzori și LED-uri.
  3. Configurare pompă (inițial oprită).

3. Loop principal:

  1. Citirea senzorilor (la intervale de 1 zi):
  2. Oprire Blynk.
  3. Citirea nivelului de apă și umiditate.
  4. Ajustarea umidității (20%-90%).
  5. Dacă umiditatea < 50%, pornire pompă 3 sec și LED roșu.
  6. Repornire Blynk și trimitere date.
  1. Verificarea stării pompei:
    1. Monitorizare stare pompă.
    2. După oprire, verificare nivel apă și umiditate.
  1. Gestionarea LED-urilor:
    1. Roșu pentru pompă în funcțiune.
    2. Albastru pentru umiditate mare.
    3. Verde pentru umiditate medie.
    4. Galben pentru umiditate scăzută.
  1. Rularea Blynk: Menținerea conexiunii și comunicarea cu serverul.

4. Funcții utilitare:

  1. ledActivate(int led): Control LED-uri RGB.
  2. startBlynk(): Pornire Blynk.
  3. stopBlynk(): Oprire Blynk și WiFi.
  4. readSensors(): Citirea și ajustarea valorilor senzorilor.

Rezultate Obţinute

Am reușit să realizez proiectul cu succes! Pe partea de software, există posibilități de îmbunătățire și ajustare în funcție de nevoile specifice ale fiecărei plante (precum timpul de verificare al solului și alte informații). În prezent, proiectul este un prototip funcțional și promițător.

Am întâmpinat dificultăți cu ESP32, deoarece pin layout-ul nu se potrivea cu datasheet-ul producătorului Plusivo. Inițial, am crezut că trebuie să selectez placa ESP32-WROOM în Arduino IDE, dar am reușit să fac să funcționeze doar când am selectat DOIT Devkit1. Am pierdut câteva ore verificând fiecare pin pentru a vedea dacă se potrivesc, deoarece încercam să citesc un senzor pe un pin care, conform datasheet-ului, era GPIO, dar în realitate reseta ESP32-ul. Până am realizat acest lucru, am crezut că placa era defectă.

Concluzii

Mi-a făcut plăcere să lucrez cu ESP32 și să învăț cum să folosesc WiFi-ul.

Am învățat cum să fac un proiect util în viața de zi cu zi.

Download

Bibliografie/Resurse

pm/prj2024/amocanu/tudor_george.frecus.txt · Last modified: 2024/05/27 16:47 by tudor_george.frecus
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0