Cuprins:

Sistem de alertă a solului cu umiditate scăzută pentru planta dvs.: 5 pași
Sistem de alertă a solului cu umiditate scăzută pentru planta dvs.: 5 pași

Video: Sistem de alertă a solului cu umiditate scăzută pentru planta dvs.: 5 pași

Video: Sistem de alertă a solului cu umiditate scăzută pentru planta dvs.: 5 pași
Video: Modul meu de a cultiva roșii - cum să obțin plante sănătoase și o recoltă bogată? 2024, Iulie
Anonim
Sistem de alertă a solului cu umiditate scăzută pentru planta dvs
Sistem de alertă a solului cu umiditate scăzută pentru planta dvs

În mai multe reședințe, este obișnuit să găsești borcane cu diferite tipuri de plante. Și cu numărul mare de activități de zi cu zi, oamenii uită să-și udă plantele și ajung să moară din lipsă de apă.

Ca modalitate de a evita această problemă, am decis să creăm un sistem care să informeze când o plantă nu are apă. În acest fel, nu veți uita niciodată să vă irigați planta și aceasta va rămâne vie mult timp. În continuare, vom prezenta întreaga dezvoltare a acestui proiect.

Provizii

  • PCBWay PCB personalizat
  • Senzor analogic de umiditate a solului pentru Arduino
  • Arduino UNO
  • Sârme jumper (generice)
  • LCD standard - 16 x 2 albastru
  • UTSOURCE Potențiometru rotativ 10k

Pasul 1: Dezvoltarea proiectului

Dezvoltarea proiectului
Dezvoltarea proiectului

Una dintre modalitățile pe care le folosim pentru a detecta cantitatea de apă din plantă este prin parametrul de umiditate. Deci, cu cât este mai puțină apă în borcanul plantei noastre, cu atât este mai mică umiditatea solului.

Prin urmare, trebuie să folosim un senzor de umiditate pentru a analiza starea de umiditate din planta noastră.

Prin intermediul acestuia, am configurat un circuit montat în panou cu Arduino, pentru a efectua monitorizarea și indicarea umidității scăzute a borcanului de cactus. Deci, prin intermediul ecranului LCD pentru a informa utilizatorul despre umezeală, așa cum se arată în Figura 1.

Pasul 2: Introducerea senzorului de umiditate în circuit

Introducerea senzorului de umiditate în circuit
Introducerea senzorului de umiditate în circuit
Introducerea senzorului de umiditate în circuit
Introducerea senzorului de umiditate în circuit

Din circuitul de mai sus, vom introduce sonda pentru măsurarea umidității în instalația pe care dorim să o monitorizăm. În proiectul nostru, introducem o sondă într-un cactus mic, așa cum se arată în Figura 2.

Acum, vom vedea cum să proiectăm lucrările pas cu pas și, în continuare, vom învăța cum să creăm codul de control. La început, când nu conectăm senzorul în interiorul borcanului, dispozitivul are un conținut scăzut de umiditate de 2% în exterior borcanul cactusului. Acest lucru poate fi văzut în Figura 3.

Pasul 3: Înțelegeți valorile umidității

Înțelegeți valorile umidității
Înțelegeți valorile umidității
Înțelegeți valorile umidității
Înțelegeți valorile umidității

Această valoare procentuală mică reprezintă o umiditate scăzută. Acum, după introducerea senzorului în solul borcanului de cactus, va fi afișată o valoare de 36%, așa cum se arată în Figura 4. Adică umiditatea noastră este scăzută și sistemul afișează mesajul Umiditate scăzută deoarece valoarea este mai mică mai mult de 60%.

Următorul pas este să irigăm solul ulciorului cactusului nostru și putem verifica creșterea valorii umidității la 69%.

După înțelegerea funcționării proiectului, vom prezenta toată logica de construcție pentru a crea acest sistem de monitorizare. Să începem!

Pasul 4: Programare logică

În continuare, logica de programare va fi prezentată prin intermediul codului construit.

Inițial, a fost declarată biblioteca de afișaj LCD, variabile și a fost creat un obiect LCD cu pinii de conexiune cu Arduino UNO.

#include

#define sensor A0 bool LCDControl = 0, LowUmid = 0, HighUmid = 0; octet UmiditatePercent = 0, umiditate = 0, Valoare precedentă = 0; int ValUmidade = 0, AnalogValue = 0; const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);

După aceasta, funcția de configurare și afișajul LCD 16x2 au fost inițializate și pinul senzorului a fost configurat ca intrare. În cele din urmă, am făcut prima citire a senzorului nostru și am folosit ca referință pentru variabila PreviousValue, așa cum se arată mai jos.

{Serial.begin (9600); lcd.inceput (16, 2); pinMode (senzor, INPUT); Valoare anterioară = analogRead (senzor); }

Cu variabilele create și comenzile din funcția de configurare nulă, vom explica toate programările logice din funcția buclă.

// Le o valor do pino A0 do sensorAnalogValue = analogRead (senzor); // Mostra o valoare da porta analogica nu serial monitor Serial.print ("Analog Port:"); Serial.println (AnalogValue); UmidityPercent = hartă (AnalogValue, 0, 1023, 0, 100); umiditate = 100 - UmiditatePercent;

În funcția buclă, valoarea analogică a fost citită și valoarea a fost mapată în intervalul 0 și 100. Această valoare reprezintă un procent de umiditate a solului. Când umiditatea este ridicată, valoarea se apropie de 0, iar dacă umiditatea este scăzută, valoarea se apropie de 100.

Pentru a facilita reprezentarea valorii și pentru a preveni confuzia citirii utilizatorului, inversăm această logică și reprezentăm că 0% va fi umiditate scăzută și 100% umiditate ridicată. Acest lucru a fost realizat prin intermediul calculului efectuat după mapare.

umiditate = 100 - UmiditatePercent;

După citire, valoarea umidității trebuie prezentată pe ecranul LCD. Următorul pas este de a verifica dacă valoarea umidității este diferită de valoarea sa plus 1 sau valoarea sa minus 1, conform condiției de mai jos.

if ((umiditate> (Valoare anterioară) +1) || (umiditate <(Valoare anterioară) - 1))

Această condiție este utilizată pentru a împiedica sistemul să prezinte aceeași valoare de mai multe ori pe ecranul LCD. Dar, atunci când condiția este adevărată, sistemul va prezenta valoarea pe ecranul LCD și va verifica dacă valoarea este mai mare sau egală cu 60% sau mai mică de 60%. Dacă valoarea a fost mai mare sau egală cu 60%, sistemul este prezent mesajul Umiditate ridicată, în caz contrar, prezintă mesajul Umiditate scăzută, așa cum se arată mai jos.

if ((umiditate> (Valoare precedentă) +1) || (umiditate <(Valoare precedentă) - 1)) {lcd.setCursor (1, 0); lcd.print ("Umiditate:"); lcd.print (""); lcd.setCursor (11, 0); lcd.print (umiditate); lcd.print ("%"); if (umiditate = 60 && HighUmid == 0) {lcd.setCursor (2, 1); lcd.print (""); lcd.setCursor (1, 1); lcd.print ("Umiditate ridicată"); HighUmid = 1; LowUmid = 0; } Valoare precedentă = umiditate; }

În cele din urmă, sistemul va stoca valoarea variabilei de umiditate în variabila PreviousValue pentru a-și actualiza valoarea. De fiecare dată când o nouă valoare este prezentată pe afișaj, variabila PreviousValue este actualizată pentru a fi utilizată în alte cicluri de procesare a codului. Prin urmare, acesta este un sistem simplu utilizat pentru a monitoriza umiditatea plantelor din rezidențele noastre și pentru a informa utilizatorii despre nivelul de umiditate al solului.

Pasul 5: Mulțumiri

Laboratorul Silícios mulțumește PCBWay pentru sprijin și colaborează. Și avem multe beneficii pentru dvs. Câștigați 10 PCB-uri gratuite și o mulțime de monede de fasole (Aflați mai multe) pentru a face schimb de produse pe site-ul PCBWay.

În plus față de acestea, Laboratorul Silícios mulțumește UTSOURCE pentru sprijinul acordat, pentru că ne oferă componente electronice low cost, de o calitate excelentă și un serviciu bun.

Recomandat: