Sadržaj:
Video: Sistem upozorenja za tlo niske vlažnosti za vašu biljku: 5 koraka
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
U nekoliko rezidencija uobičajeno je pronaći staklenke s različitim vrstama biljaka. Uz veliki broj svakodnevnih aktivnosti, ljudi zaboravljaju zalijevati svoje biljke i umiru zbog nedostatka vode.
Kako bismo izbjegli ovaj problem, odlučili smo stvoriti sistem za obavještavanje kada biljka nema vode. Na ovaj način nikada nećete zaboraviti navodnjavati svoju biljku i ona će dugo ostati živa. Zatim ćemo predstaviti cjelokupni razvoj ovog projekta.
Supplies
- PCBWay Prilagođena PCB
- Analogni senzor vlage tla za Arduino
- Arduino UNO
- Žice za spajanje (općenito)
- Standardni LCD - 16 x 2 plavi
- UTSOURCE rotacijski potenciometar 10k
Korak 1: Razvoj projekata
Jedan od načina za otkrivanje količine vode u biljci je parametar vlage. Dakle, što je manje vode u staklenci naše biljke, to je niža vlaga u tlu.
Stoga moramo koristiti senzor vlažnosti za analizu stanja vlage u našoj biljci.
Kroz njega smo postavili krug montiran u matičnoj ploči s Arduinom, za praćenje i indikaciju niske vlažnosti staklenke s kaktusima. Dakle, pomoću LCD ekrana koji informiše našeg korisnika o vlažnosti, kao što je prikazano na slici 1.
Korak 2: Umetanje senzora vlage u krug
Iz gornjeg kruga ubacit ćemo sondu za mjerenje vlažnosti u postrojenje koje želimo nadzirati. U našem projektu ubacujemo sondu u mali kaktus, kao što je prikazano na slici 2.
Sada ćemo vidjeti kako projicirati rad korak po korak i u nastavku, naučit ćemo kako kreirati kontrolni kod. U početku, kada ne povežemo senzor unutar posude, uređaj ima nizak sadržaj vlage od 2% izvana tegla za kaktus. To se može vidjeti na slici 3.
Korak 3: Shvatite vrijednosti vlage
Ova niska postotna vrijednost predstavlja nisku vlažnost. Sada, nakon umetanja senzora u tlo posude s kaktusima, prikazat će se vrijednost od 36%, kao što je prikazano na slici 4. To jest, naša vlažnost je niska i sistem prikazuje poruku Low Moisture jer je vrijednost manja više od 60%.
Sljedeći korak je navodnjavanje tla vrča našeg kaktusa i možemo provjeriti povećanje vrijednosti vlažnosti na 69%.
Nakon razumijevanja rada projekta, predstavit ćemo svu logiku izgradnje za stvaranje ovog sistema praćenja. Počnimo!
Korak 4: Logičko programiranje
U nastavku će programska logika biti predstavljena kroz konstruirani kod.
U početku je proglašena bibliotekom Display LCD -a, varijabli i stvoren je objektni LCD sa svojim pinovima veze sa Arduino UNO.
#include
#define senzor A0 bool LCDControl = 0, LowUmid = 0, HighUmid = 0; bajt UmidityPercent = 0, vlažnost = 0, PreviousValue = 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);
Nakon toga su funkcija za postavljanje i LCD ekran 16x2 inicijalizirane, a pin senzora konfiguriran kao ulaz. Konačno smo prvo očitali senzor i koristili smo ga kao referencu za varijablu PreviousValue, kao što je prikazano u nastavku.
{Serial.begin (9600); lcd.begin (16, 2); pinMode (senzor, ULAZ); PreviousValue = analogRead (senzor); }
S kreiranim varijablama i naredbama u funkciji void setup, objasnit ćemo sve logičko programiranje u funkciji petlje.
// O valor do pino A0 do sensorAnalogValue = analogRead (sensor); // Vrijednost analognog porta bez serijskog monitora Serial.print ("Analogni port:"); Serial.println (AnalogValue); UmidityPercent = mapa (AnalogValue, 0, 1023, 0, 100); vlaga = 100 - UmidityPercent;
U funkciji petlje, analogna vrijednost je očitana i vrijednost je mapirana u rasponu od 0 i 100. Ova vrijednost predstavlja postotak vlažnosti tla. Kad je vlaga velika, vrijednost se približava 0, a ako je vlaga niska, vrijednost se približava 100.
Da bismo olakšali predstavljanje vrijednosti i spriječili zbunjivanje korisničkog čitanja, preokrećemo ovu logiku i predstavljamo da će 0% biti niska vlažnost i 100% visoka vlažnost. To je učinjeno pomoću proračuna izvršenog nakon mapiranja.
vlaga = 100 - UmidityPercent;
Nakon očitavanja, vrijednost vlage je potrebno prikazati na LCD ekranu. Sljedeći korak je provjeriti razlikuje li se vrijednost vlage od njene vrijednosti plus 1 ili vrijednosti minus 1, u skladu s donjim uvjetom.
if ((vlaga> (Prethodna vrijednost) +1) || (vlaga <(Prethodna vrijednost)- 1))
Ovaj uslov se koristi da se spriječi sistem da prikaže istu vrijednost nekoliko puta na LCD ekranu. Ali, kada je uslov ispunjen, sistem će prikazati vrijednost na LCD -u i provjeriti je li vrijednost veća ili jednaka od 60%ili manja od 60%. Ako je vrijednost bila veća ili jednaka od 60%, sistem je prisutan poruka High Moisture, inače, prikazuje poruku Low Moisture, kao što je prikazano ispod.
if ((vlaga> (Prethodna vrijednost) +1) || (vlaga <(Prethodna vrijednost)- 1)) {lcd.setCursor (1, 0); lcd.print ("Vlaga:"); lcd.print (""); lcd.setCursor (11, 0); lcd.print (vlaga); lcd.print ("%"); if (vlaga = 60 && HighUmid == 0) {lcd.setCursor (2, 1); lcd.print (""); lcd.setCursor (1, 1); lcd.print ("Visoka vlaga"); HighUmid = 1; LowUmid = 0; } PreviousValue = vlaga; }
Konačno, sistem će pohraniti vrijednost varijable vlažnosti u varijablu PreviousValue kako bi aktualizirao njenu vrijednost. Svaki put kada se na ekranu prikaže nova vrijednost, varijabla PreviousValue se aktualizira za upotrebu u drugim ciklusima obrade koda. Stoga je ovo jednostavan sistem koji se koristi za praćenje vlage biljaka u našim stanovima i informiranje korisnika o nivo vlažnosti zemljišta.
Korak 5: Zahvalnice
Silícios Lab zahvaljuje PCBWay -u na podršci i zajedničkom radu. A mi imamo mnogo prednosti za vas. Zaradite 10 besplatnih PCB -a i puno novčića u grahu (Saznajte više) za trgovinu proizvodima na web stranici PCBWay.
Osim njih, Silícios Lab zahvaljuje UTSOURCE -u na podršci, što nam nudi jeftine elektroničke komponente odličnog kvaliteta i dobre usluge.