Spisu treści:

System ostrzegania o niskiej wilgotności gleby dla Twojej rośliny: 5 kroków
System ostrzegania o niskiej wilgotności gleby dla Twojej rośliny: 5 kroków

Wideo: System ostrzegania o niskiej wilgotności gleby dla Twojej rośliny: 5 kroków

Wideo: System ostrzegania o niskiej wilgotności gleby dla Twojej rośliny: 5 kroków
Wideo: Jak zwiększyć zawartość próchnicy w glebie? Biologizacja wg Top Farms. Paweł Kaczmarek 2024, Listopad
Anonim
System ostrzegania o niskiej wilgotności gleby dla Twojej rośliny
System ostrzegania o niskiej wilgotności gleby dla Twojej rośliny

W kilku rezydencjach często można znaleźć słoiki z różnymi rodzajami roślin. A przy dużej liczbie codziennych czynności ludzie zapominają o podlewaniu roślin i umierają z braku wody.

Aby uniknąć tego problemu, postanowiliśmy stworzyć system informujący o braku wody w roślinie. W ten sposób nigdy nie zapomnisz nawodnić swojej rośliny i będzie ona żywa przez długi czas. Następnie przedstawimy cały rozwój tego projektu.

Kieszonkowe dzieci

  • PCBWay Niestandardowa płytka drukowana
  • Analogowy czujnik wilgotności gleby dla Arduino
  • Arduino UNO
  • Przewody połączeniowe (ogólne)
  • Standardowy wyświetlacz LCD - 16 x 2 niebieski
  • Potencjometr obrotowy UTSOURCE 10k

Krok 1: Rozwój projektu

Rozwój projektu
Rozwój projektu

Jednym ze sposobów, których używamy do wykrywania ilości wody w roślinie, jest parametr wilgotności. Tak więc im mniej wody znajduje się w słoiku naszej rośliny, tym niższa wilgotność gleby.

Dlatego musimy użyć czujnika wilgotności, aby przeanalizować stan nawilżenia w naszym zakładzie.

Za jego pośrednictwem zestawiliśmy obwód montowany w płytce stykowej z Arduino, aby przeprowadzić monitorowanie i sygnalizację niskiej wilgotności słoika kaktusa. Tak więc za pomocą wyświetlacza LCD informujemy naszego użytkownika o wilgotności, jak pokazano na rysunku 1.

Krok 2: Wkładanie czujnika wilgoci do obwodu

Wkładanie czujnika wilgoci do obwodu
Wkładanie czujnika wilgoci do obwodu
Wkładanie czujnika wilgoci do obwodu
Wkładanie czujnika wilgoci do obwodu

Z powyższego obwodu wstawimy sondę do pomiaru wilgotności w instalacji, którą chcemy monitorować. W naszym projekcie wkładamy sondę do małego kaktusa, jak pokazano na rysunku 2.

Teraz zobaczymy, jak projektować pracę krok po kroku, a następnie nauczymy się tworzyć kod sterujący. Początkowo, gdy nie podłączymy czujnika wewnątrz słoika, urządzenie ma niską wilgotność 2% na zewnątrz słoik kaktusa. Widać to na rysunku 3.

Krok 3: Zrozum wartości wilgotności

Zrozum wartości wilgotności
Zrozum wartości wilgotności
Zrozum wartości wilgotności
Zrozum wartości wilgotności

Ta niska wartość procentowa reprezentuje niską wilgotność. Teraz po włożeniu czujnika do gleby słoika z kaktusami wyświetli się wartość 36%, jak pokazano na Rysunku 4. Czyli nasza wilgotność jest niska i system wyświetla komunikat Low Moisture bo wartość jest mniejsza niż 60%.

Kolejnym krokiem jest nawodnienie gleby dzbanka naszego kaktusa i możemy zweryfikować wzrost wartości wilgotności do 69%.

Po zrozumieniu działania projektu przedstawimy całą logikę budowy, aby stworzyć ten system monitorowania. Zacznijmy!

Krok 4: Programowanie logiczne

Następnie logika programowania zostanie przedstawiona za pomocą skonstruowanego kodu.

Początkowo zadeklarowano bibliotekę Display LCD, zmiennych oraz utworzono obiektowy LCD z jego wyprowadzeniami połączenia z Arduino UNO.

#włączać

#define sensor A0 bool LCDControl = 0, LowUmid = 0, HighUmid = 0; bajt UmidityPercent = 0, wilgotność = 0, PreviousValue = 0; int WartośćUmidada = 0, WartośćAnalogowa = 0; const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7; LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

Następnie zainicjalizowano funkcję konfiguracji i wyświetlacz LCD 16x2, a pin czujnika został skonfigurowany jako wejście. Na koniec dokonaliśmy pierwszego odczytu naszego czujnika i użyliśmy go jako odniesienia dla zmiennej PreviousValue, jak pokazano poniżej.

{Serial.początek (9600); lcd.początek(16, 2); pinMode(czujnik, WEJŚCIE); PoprzedniaWartość = odczyt analogowy (czujnik); }

Za pomocą utworzonych zmiennych i poleceń w funkcji void setup wyjaśnimy całe programowanie logiczne w funkcji pętli.

//Le o valor do pino A0 do sensorAnalogValue = analogRead(sensor); //Mostra o valor da porta analogica bez monitora szeregowego Serial.print("Port analogowy: "); Serial.println(Wartość Analogowa); UmidityPercent = map(AnalogValue, 0, 1023, 0, 100); wilgotność = 100 - UmidityPercent;

W funkcji pętli odczytano wartość analogową i odwzorowano ją w zakresie od 0 do 100. Wartość ta reprezentuje procent wilgotności gleby. Gdy wilgotność jest wysoka, wartość zbliża się do 0, a jeśli wilgotność jest niska, wartość zbliża się do 100.

Aby ułatwić przedstawienie wartości i zapobiec mylącemu odczytowi przez użytkownika, odwracamy tę logikę i przedstawiamy, że 0% będzie niską wilgotnością, a 100% wysoką wilgotnością. Dokonano tego za pomocą obliczeń wykonanych po mapowaniu.

wilgotność = 100 - UmidityPercent;

Po odczytaniu wartość wilgotności należy przedstawić na wyświetlaczu LCD. Następnym krokiem jest sprawdzenie, czy wartość wilgotności różni się od jej wartości plus 1 lub jej wartości minus 1, zgodnie z poniższym warunkiem.

if((wilgotność > (PoprzedniaWartość)+1) || (Wilgotność < (PoprzedniaWartość)- 1))

Warunek ten służy do zapobiegania kilkukrotnemu wyświetlaniu przez system tej samej wartości na wyświetlaczu LCD. Ale gdy warunek jest spełniony, system wyświetli wartość na wyświetlaczu LCD i zweryfikuje, czy wartość jest większa lub równa 60% lub mniejsza niż 60%. Jeśli wartość była większa lub równa 60%, system komunikat Wysoka wilgotność, w przeciwnym razie wyświetl komunikat Niska wilgotność, jak pokazano poniżej.

if((wilgotność > (PoprzedniaWartość)+1) || (Wilgotność < (PoprzedniaWartość)- 1)) { lcd.setCursor(1, 0); lcd.print("Wilgotność: "); lcd.print(" "); lcd.setCursor(11, 0); lcd.print(wilgoć); lcd.print("%"); if(wilgotność = 60 && HighUmid == 0) { lcd.setCursor(2, 1); lcd.print(" "); lcd.setCursor(1, 1); lcd.print("Wysoka wilgotność"); Wysoki Umid = 1; NiskiUmid = 0; } PoprzedniaWartość = wilgoć; }

Na koniec system zapisze wartość zmiennej wilgotności w zmiennej PreviousValue, aby zaktualizować jej wartość. Za każdym razem, gdy na wyświetlaczu prezentowana jest nowa wartość zmienna PreviousValue jest aktualizowana do wykorzystania w innych cyklach przetwarzania kodu. Dlatego jest to prosty system służący do monitorowania wilgotności roślin w naszych rezydencjach i informowania użytkowników o poziom wilgotności gleby.

Krok 5: Podziękowania

Laboratorium Silícios dziękuje PCBWay za wsparcie i współpracę. I mamy dla Ciebie wiele korzyści. Zdobądź 10 darmowych PCB i dużo monet fasoli (Dowiedz się więcej), aby handlować produktami na stronie PCBWay.

Oprócz nich Silícios Lab dziękuje firmie UTSOURCE za wsparcie, za oferowanie nam tanich komponentów elektronicznych o doskonałej jakości i dobrej obsłudze.

Zalecana: