Czujnik Wilgotności Gleby z Arduino: Jak Podłączyć i Wykorzystać?

Znowu zapomniałeś podlać swoją ukochaną petunię na czas? A może marzy Ci się projekt inteligentnej doniczki? W tym poradniku pokażemy, jak działa i jak wykorzystać czujnik wilgotności gleby z Arduino. Skupimy się na trwalszej wersji pojemnościowej, która w przeciwieństwie do tańszych odpowiedników nie zardzewieje po kilku tygodniach.

Pokażę Ci krok po kroku, jak go podłączyć i napisać program, który będziesz mógł łatwo rozwinąć w inteligentny system nawadniający.

Co Będzie Potrzebne?

  • Dowolna płytka programowalna
  • Czujnik wilgotności gleby

Sprawdzi się praktycznie każda płytka posiadająca piny analogowe, od klasycznego Arduino Uno po ESP32. Jeśli chcesz ten projekt rozwinąć o powiadomienia na stronie WWW skorzystaj z płytki z komunikacją WiFi (np ESP8266 lub Arduino Uno R4 WiFi). W tym projekcie skorzystam z popularnego klona Arduino Uno R3. Wystarczy, że ma wolny pin analogowy i zasilanie kod będzie działał poprawnie.

Ja w tym poradniku skorzystam z bardziej trwałego czujnika pojemnościowego opartego na HW-390.

Czym są Czujniki Wilgotności Gleby?

Na rynku hobbystycznym królują dwa główne typy czujników wilgotności gleby: oporowe (rezystancyjne) i pojemnościowe (profesjonalne/naukowe czujinki są oparte na TDR i FDR, jednak są one znacznie dorższe i trudno dostępne). Warto poznać różnicę, bo ma ona kluczowe znaczenie dla trwałości Twojego projektu.

Przeczytaj także: Objawy Uszkodzonej Sondy Lambda i Filtra Powietrza

Czujniki Oporowe

Tańsze i popularniejsze czujniki oporowe działają na bardzo prostej zasadzie. Składają się z dwóch ścieżek (elektrod), które wbijasz w ziemię. Mikrokontroler mierzy opór elektryczny (rezystancję) między nimi. Ponieważ woda przewodzi prąd, zasada jest prosta: im więcej wody w glebie, tym niższy opór. Niestety, ten przepływ prądu w wilgotnym środowisku powoduje zjawisko zwane elektrolizą, które prowadzi do szybkiej korozji elektrod. W efekcie, po kilku tygodniach lub miesiącach czujnik „zjada” samego siebie i przestaje działać.

Czujniki Pojemnościowe

Nasz czujnik pojemnościowy podchodzi do tematu znacznie sprytniej. Zamiast mierzyć opór, działa jak otwarty kondensator. Sonda, którą wbijasz do doniczki, generuje wokół siebie niewielkie pole elektryczne. Nie ma więc mowy o korozji, a czujnik może działać niezawodnie przez lata. To właśnie dlatego jest idealnym wyborem do projektów, które mają działać długo i bezobsługowo.

Jak Połączyć Czujnik Wilgotności Gleby z Arduino Uno?

Dobra wiadomość jest taka, że fizyczne podłączenie naszego czujnika do Arduino jest dziecinnie proste i zajmie Ci dosłownie chwilę. Moduł elektroniczny, który otrzymujemy w zestawie, posiada zaledwie trzy piny, których będziemy używać: dwa do zasilania i jeden do przesyłania danych.

Zacznijmy od podstaw, czyli od zasilania. Weź dwa przewody i połącz pin oznaczony jako GND na module z dowolnym pinem GND na płytce Arduino - to nasza wspólna masa. Następnie podłącz pin VCC modułu, ale zamiast do 5V, podłącz go do wyjścia 3.3V. Zrobimy tak, aby przygotować nasz układ do bardziej precyzyjnego pomiaru.

Ostatni jest pin sygnałowy AUOT. To nim czujnik będzie wysyłał informację o wilgotności. Wepnij go do jednego z pinów analogowych Arduino, na przykład A0.

Przeczytaj także: Wszystko o wilgotnościomierzach igłowych

Został nam jeszcze jeden, bardzo ważny krok, który zwiększy dokładność odczytów. Weź dodatkowy, krótki przewód i za jego pomocą połącz na płytce Arduino pin 3.3V z pinem AREF. Ten zabieg „mówi” Arduino, aby całą swoją skalę pomiarową dopasowało do napięcia pracy naszego czujnika, co pozwoli na wychwycenie nawet najmniejszych zmian wilgotności.

Tabela Połączeń

Czujnik wilgotności gleby Arduino Uno
GND GND
VCC 3.3V i AREF
AUOT A0

Jak Zaprogramować Czujnik? Czas na Kod!

Skoro układ jest gotowy, pora przejść do przykładowego programu. Dobra wiadomość jest taka, że nie potrzebujemy do tego żadnych skomplikowanych bibliotek!

Funkcja setup() - Przygotowanie do Pracy

Następnie przechodzimy do funkcji setup(), która wykonuje się raz po uruchomieniu płytki. Konfigurujemy w niej dwie kluczowe rzeczy. Najpierw, za pomocą Serial.begin(9600);, uruchamiamy port szeregowy, aby móc wyświetlać odczyty na komputerze. Zaraz po tym dodajemy najważniejszą komendę dla naszego precyzyjnego układu: analogReference(EXTERNAL);.

Funkcja loop() - Odczyt w Pętli

Cała reszta dzieje się w nieskończonej pętli loop(). Na jej początku, za pomocą analogRead(A0);, odczytujemy wartość napięcia z naszego czujnika. Wynik zostanie zapisany w zmiennej wartosc_czujnika.

Następnie po prostu wyświetlamy ten wynik w Monitorze portu szeregowego.

Przeczytaj także: Poradnik: walka z wilgocią w mieszkaniu

Ewentualne Poprawki

Powyżej zamieszczony kod działa w pełni poprawnie, jednak może być dla nas niezbyt użyteczny, prawda? Zwraca on jakąś wartość, np. 526. I co to tak właściwie znaczy? Nam zależy na bardziej dyskretnym działaniu (dyskretnym w sensie matematycznym, a nie językowym), czyli aby program zwracał komunikat: „podlane”, „wilgotno” albo „pora na podlewanie”.

Oczywiście wszystko jest zależne od roślin, które posiadamy. Dlatego o wiele lepiej określić te progi samodzielnie, korzystając z poprzedniego, prostego kodu. Weź doniczkę, którą zamierzasz testować. Zmierz wartość, gdy ziemia jest sucha. Podlej ją i ponownie zmierz, gdy będzie już solidnie nawodniona. W ten sposób określisz swoje własne zakresy. Oto jego ostateczna, ulepszona wersja, która zamiast suchej wartości analogowej zwraca czytelną wiadomość.

tags: #sonda #pojemnosciowa #wilgotnosc #arduino #jak #podłączyć

Popularne posty: