System nawadniania ogrodu powinien „wiedzieć”, kiedy pada deszcz. Gdy używałem karty przekaźnikowej (w wersji z cyfrowymi wejściami), to miałem do niej podłączony sensor opadów wykonany w oparciu o czujnik zalania CZ 01 firmy Sigma Projekt. Czujnik ten bardzo dobrze będzie współpracował z Arduino. Może nie jest to najprostsze możliwe rozwiązanie w przypadku niebieskiej płytki, ale do tej pory świetnie się sprawdzało i chcę je zachować.
Sam czujnik ma średni rozmiar – 6,5cm x 4 cm x 3cm i przeznaczony jest do umieszczania na podłodze, w miejscu gdzie spodziewamy się zalania. Z tego powodu jego obudowa jest hermetyczna, a na jej spodzie znaleźć można dwie elektrody do wykrywania cieczy.
Czujnika można jednak używać także w inny sposób. Posiada on możliwość podłączenia zewnętrznych elektrod. Możemy więc wyprowadzić z obudowy dwa przewody, których odizolowane końcówki umieścimy w jakimś miejscu, a sensor będzie reagował, gdy między nimi znajdzie się ciecz. Tak właśnie działa mój czujnik opadów.
Co więcej, do systemu nawadniania (który ma więcej funkcji) miałem podłączony także drugi czujnik zalania. Przewody, służące jako zewnętrze sondy (połączone równolegle) zostały poprowadzone w piwnicy pod kafelkami, a ich końcówki wyprowadzone są w kilku miejscach na podłodze tuż przy ścianie. Czujnik sprawdza więc obecność cieczy w jednym z pomieszczeń – w trzech miejscach gdzie mogłaby się pojawić woda. Pomieszczenie to, znajdujące się pod tarasem, faktycznie jest problematyczne pod względem zalewania, dlatego zależy mi, żeby dostawać smsa zaraz po wykryciu wilgoci.
Jak więc CZ 01 można podłączyć do Arduino? Po rozkręceniu hermetycznej obudowy, dostępnych jest kilka styków.
GND i +V to oczywiście masa i zasilanie. Układ może być zasilany napięciem 7-24V. IN E1 i IN E2 to wejścia, do których można podłączyć zewnętrzne elektrody. Pozostają jeszcze dwa wyjścia typu OC (otwarty kolektor) – jedno NO – normalnie otwarte, drugie NC – normalnie zamknięte. Czym jest, z punktu widzenia podłączenia do Ardiuno, wejście typu otwarty kolektor? Mechanizmem, który potrafi zewrzeć styk (wejście cyfrowe Arduino) do masy. Czyli czymś podobnym do przekaźnika podłączonego z jednej strony do GND. Jak więc tego użyć? Przede wszystkim należy mieć wspólną masę w czujniku zalania i Arduino. W moim przypadku jest to naturalne, bo Arduino i CZ 01 zasilam z tego samego źródła. Znalazłem stary zasilacz 7,5V, 1A, z wtykiem 2,1mm, pasujący idealnie do Arduino, a przy kazji napięcie świetnie pasuje do czujnika zalania. Podłączam więc moje Arduino Uno do zasilacza, pin GND Arduino łączę z GND w czujniku, Vin z +V, a jedno z wejść cyfrowych z OUT NO. NO, czyli normalnie otwarte oznacza, że gdy nie wykryto wody, nie ma zwarcia do masy.
Pozostaje już tylko obsłużyć wejście w sposób analogiczny jak w przypadku kontaktronów. Konfigurujemy wbudowany rezystor pull-up i w normalnym przypadku (bez wody) mamy stan wysoki. Gdy pojawi się woda, otwarty kolektor zwiera wejście Arduino do masy i pojawia się stan niski.
Proste i przydatne. Czujnik z pewnością pojawi się jeszcze w opisach, gdy już dojdziemy do implementacji całego systemu podlewania/alarmowania na Arduino. Zapewne wkrótce.