Kategorie | Hardware, Howto, Linux

  

Router podlewa mi ogródek

Opublikowano 01 czerwca 2011 przez Franek

Autorem wpisu jest Łukasz S., ten wpis bierze udział w konkursiepozostałe prace konkursowe.

Linux w domowych routerach może mieć wiele zastosowań, także nietypowych. Możliwości jakie daje popularny sprzęt i dostępne oprogramowanie OpenSource są olbrzymie, a tworzenie ciekawych projektów jest coraz prostsze, sprowadzając się często do łączenia gotowych “klocków” w jedną całość. Okazuje się, że domowy router nadaje się nawet do stworzenia systemu mogącego pretendować do miana “inteligentnego domu”.

Jako linuksowy entuzjasta powierzam temu systemowi wiele zadań ułatwiających codzienne życie. Jednym z pomysłów, który przyszedł mi ostatnio do głowy, zapewne w związku z nadejściem cieplejszych dni, było stworzenie instalacji do podlewania ogródka. Oczywiście mógłbym kupić gotowy system, albo jeszcze prościej zatrudnić firmę, która profesjonalnie nawodni mi działkę. To jednak droga nie dla mnie – może i wygodnie, ale satysfakcja niewielka, a możliwości kontrolowania systemu przeciętne. Dlaczego ogródka nie może podlewać Linux?

Oczywiście można się zastanawiać czy nie będzie to przerost formy nad treścią. Przecież dedykowane systemy trochę jednak potrafią – mogą podlewać o zadanej porze, nie podlewać gdy pada lub przed chwilą padał deszcz, nie włączać zraszaczy, gdy wieje wiatr. Sterowniki systemów nie są też bardzo drogie – jednostkę centralną można kupić za 200-300 zł. Do tego przyda się czujnik deszczu – od 100 zł w górę. Czujnik siły wiatru to niestety już trochę droższa zabawka.

Sprzęt
Zapadła więc decyzja – router i Linux. Zakup routera z portem USB, na którym można zainstalować oprogramowanie OpenWRT to koszt 100 zł. Płytka z dwoma przekaźnikami kontrolowanymi przez USB to wydatek 70zł, ja jednak zdecydowałem się od razu na rozbudowaną wersję z ośmioma przekaźnikami i takąż też ilością wejść za 160 zł. Do tego doszedł klucz USB 1GB i hub warte razem około 40 zł. Mamy więc koszt odpowiadający dobremu sterownikowi dedykowanemu.

Nawadnianie to jednak nie tylko elektronika, a przede wszystkim kopanie ogródka. Przyznaję, to w całym projekcie najbardziej pracochłonny element i to on spowodował, że budowa trwała przeszło tydzień (tak naprawdę 4 popołudnia i pół dnia). Warto nadmienić, że pomijając zalanie kuchni przez rurę w łazience, nie miałem wcześniej doświadczeń hydraulicznych. Nie odstraszyło mnie to jednak od zadania – wręcz przeciwnie – trzeba podejmować nowe wyzwania.

Działka nie jest wielka, a do nawadniania zostały wytypowane trzy obszary. Trawnik o powierzchni 55 metrów kwadratowych, zgodnie z założeniami podlewać mają trzy zraszacze firmy Hunter z dyszami statycznymi 17A (łącznie 11 zł za sztukę), natomiast dwie spore rabatki z kwiatkami i warzywami mają być zasilane przez linie kroplujące (0,88zł za metr). Krótka analiza sytuacji zastanej ujawniła, że woda do kranu w ogródku doprowadzona jest rurą PE o średnicy 32mm. Na takiej też rurze (2,50zł za metr) postanowiłem oprzeć instalację szkieletową. Zaplanowałem gdzie ma być studzienka (61zł) z elektrozaworami (60zł za sztukę) i innymi fajnymi sprzętami, jak będą biegły rury do zraszaczy i linii kroplujących i zacząłem kopać. Trzeba przyznać, że prace hydrauliczne z rurami PE nie wymagają wiedzy tajemnej. Co więcej system skręcanych złączek sprawia, że po wykopaniu rowów położenie rur to czynność prosta i szybka. Podobnie banalnie do systemu podłącza się zraszacze i linie kroplujące, a wszystkie te czynności kojarzą się z dziecinną zabawą klockami, choć rzecz jasna skala jest nieco inna.

Trochę zabawy było też ze skręceniem elementów, które miały trafić do studzienki: dwa elektrozawory, filtr (30zł) i zawór do spuszczania wody na zimę (30zł). Kolanka, trójniki, śrubunki i zmieszczenie wszystkiego w studzience i uszczelnienie gdzie trzeba to też niezbyt trudna łamigłówka. Do studzienki trafiła także puszka hermetyczna (2,50zł) łącząca przewody elektrozaworów z 3-żyłowym kablem, który poprowadziłem do piwnicy, do routera.

Elektrozawór do nawadniania to takie sprytne urządzenie, które gdy nie jest zasilane nie pozwala na przepływ wody przez rurę. Gdy natomiast dostaje prąd zmienny o napięciu 24V – otwiera przepływ. Całe więc zadanie sterownika to podawanie tego napięcia przez czas podlewania. Tylko, że router, jak łatwo się domyślić, nie dysponuje takim zasilaniem. Trzeba więc napięcie z gniazdka elektrycznego obniżyć do 24V. Potrzebny jest więc transformator – w moim przypadku toroidalny (50zł). Musi on zapewnić 400mA, bo wg producenta taki jest prąd rozruchowy elektrozaworu. Znając te dane sprzedawca w sklepie elektronicznym bez problemu dobierze właściwy.

Aby nie przeciążyć transformatora, w jednym momencie nigdy nie będą zasilane dwa elektrozawory, co zagwarantowane zostanie przez odpowiednie podłączenie do przekaźników na płytce. Podczas gdy nie podlewamy nie będzie także zasilany transformator. Wykorzystywane są 2 przekaźniki. Pierwszy podaje napięcie 230V z sieci do transformatora – przewód fazowy przechodzi przez złącze NC (normalnie zamknięte) przekaźnika. Gdy więc karta przekaźnikowa nie jest zasilana (np. przy awarii routera lub huba), prąd nie jest dostarczany. Jeden z kabli wychodzący z transformatora (z uzwojenia wtórnego rzecz jasna) łączony jest z żyłą kabla idącą do obu elektrozaworów. Drugi zaś podłączany jest jest do drugiego przekaźnika. Z tego też przekaźnika kable ze złącz NO i NC wędrują osobno do elektrozaworów (jeden do jednego, drugi do drugiego). Gwarantuje to, że zawory nie będą zasilane w tym samym czasie.

Ponieważ w grze jest napięcie 230V, trzeba położyć nacisk na bezpieczeństwo. Z tego powodu kupiłem skrzynkę elektryczną natynkową z szyną DIN i drzwiczkami (25zł). Do szyny przykręcony został transformator i plastikowa płytka, do której z kolei przymocowana została karta przekaźnikowa. Zgodnie z projektem odpowiednie złącza zostały połączone solidnymi przewodami. Gdy skrzynka zawisła na ścianie, można było uznać, że część sprzętowa została ukończona.

Oprogramowanie
Przygotowanie routera to była czynność niemalże rutynowa, w końcu to już trzeci sprzęt z OpenWRT w domu. Instalacja, przeniesienie partycji root na pendrive (exroot). Potem przyszła kolej na pakiety. Oprogramowanie postanowiłem napisać w php, potrzebne więc było php5-cli. Do komunikacji z kartą przekaźnikową, która oparta jest na konwerterze usb-serial FT2232 firmy FTDI, wymagane są pakiety kmod-usb-serial i kmod-usb-serial-ftdi. Po ich zainstalowaniu można rozpocząć pierwsze testy.

Aby z php dostać się do portu szeregowego, najłatwiej jest użyć gotowej klasy. Ja użyłem php_serial.class.php jako pierwszej podpowiedzianej przez wyszukiwarkę. Ponieważ klasa wymaga programu stty, więc trzeba było jeszcze doinstalować pakiet coreutils-stty.

Zgodnie z dokumentacją karty przekaźników należało ustawić odpowiednie parametry portu szeregowego (57600 bitów/sekundę, 8 bitów danych, 1 bit stopu, brak parzystości).

$serial = new phpSerial;
$serial->deviceClose("/dev/ttyUSB0");  
$serial->deviceSet("/dev/ttyUSB0");
$serial->confBaudRate(57600);
$serial->confParity(none); //Set the Parity
$serial->confCharacterLength(8);//Set the word length
$serial->confStopBits(1); //Set Stop Bit
$serial->confFlowControl(none);

A teraz możemy z kolei otworzyć port, włączyć zasilanie na przekaźniku od transformatora, odczekać 30 sekund, wyłączyć i zaknąć port:

$serial->deviceOpen("a+b");
$cmd=chr(0x01)."O".chr(0x07);
$serial->sendMessage( chr(0x55).$cmd.chr(crcmaxim(sbin2ar($cmd))).chr(0xa0) );
sleep(30);
$cmd=chr(0x01)."F".chr(0x07);
$serial->sendMessage( chr(0x55).$cmd.chr(crcmaxim(sbin2ar($cmd))).chr(0xa0) );
$serial->deviceClose();

To powinno włączyć nawadnianie jednej z sekcji na 30 sekund. I włącza. 0x07 to numer przekaźnika, do którego jest podłączony transformator. Ewentualne przełączenie drugiego przekaźnika odpowiada za wybór sekcji, która ma być zasilana. Oczywiście protokół jest specyficzny dla komunikacji z kartą przekaźnikową, którą kupiłem, natomiast świetnie pokazuje, że obsługa od strony programistycznej nie jest skomplikowana.

Co dalej?
Kolejnym krokiem było przerobienie programu tak, żeby podlewał nie 30 sekund tylko 30 minut, a następnie przełączał sekcję i uruchamianie go z crona. W tym momencie mamy już podstawową funkcjonalność dedykowanego sterownika do polewania. Na tym plany jednak się nie kończą.

Ponieważ nawadnianie to nie jedyny system w moim domu, więc wykorzystam komunikację i dane, które już mam zebrane. Ponieważ mam dostęp do pomiarów temperatury zewnętrznej, więc będę sterował czasem nawadniania w zależności od tego jak było gorąco. Planuję co godzinę sprawdzać średnią temperaturę z ostatnich 60 minut i zależnie od niej dodawać do bazy “punkty podlewania” – im cieplej tym więcej. Wiadomo, że gdy w dzień było 35 stopni, to warto intensywniej podlać trawnik niż po chłodnawych 20 stopniach. Z kolei wiosną trawa wymaga intensywniejszego nawadniania, co także algorytm powinien uwzględnić.

Na rośliny pada jednak także deszcz, zmniejszając potrzeby sztucznego nawadniania. Dlatego chcę także podłączyć sensor deszczu własnej konstrukcji. Brzmi groźnie, ale też będzie proste w realizacji. Do czujnika zalania (35zł) można zwykle podłączyć dodatkowe czujki, więc łatwo go przerobić, żeby spełniał odpowiednią funkcję. Deszcz powinien odejmować “punkty podlewania” i z pewnością blokować także nawadnianie, które właśnie trwa.

I tutaj dochodzimy do kolejnego punktu rozważań, który dodatkowo przemawia za sensownością rozwiązania opartego o router internetowy. Po co podlewać ogród, gdy za godzinę będzie ulewa? W tym przypadku nie można się oprzeć na czujnikach, wszak czujnika przyszłości nie ma. Ale są za to prognozy pogody. W szczególności ICM udostępnia bardzo szczegółową (z siatką 4km), a przede wszystkim sprawdzalną prognozę pogody. Dzięki jej analizie będzie wiadomo kiedy wstrzymać się, przynajmniej na jakiś czas z nawadnianiem. Co więcej archiwalną prognozą można także zastąpić czujnik deszczu. Z tego samego źródła można uzyskać informacje o sile wiatru. Często warto podlać o 2 godziny później lub wcześniej albo zrezygnować niż marnować wodę ze zraszaczy zwiewaną przez wiatr do sąsiadów.

Osoby bardzo (może nawet zbyt) kreatywne mogą też sobie wyobrazić użycie zraszaczy, w połączeniu z kamerą wykrywającą ruch podłączoną akurat do innego routera, do odstraszania ze świeżo posianego trawnika intruzów. To już zapewne przesada, jednak świetnie obrazuje, że im więcej systemów jest w domu, tym więcej zastosowań ich współpracy można wymyślić.

Podsumowanie
Podlewanie ogrodu to tylko jedno z możliwych zastosowań routera. Zdaję sobie sprawę, że dla wielu osób, bardzo nietypowe, może nawet dziwaczne. Pozwala jednak zdać sobie sprawę, że pozornie proste, domowe routery to tak naprawdę całkiem rozbudowane komputery, niewiele ustępujące biurkowym jednostkom sprzed kilku lat. Nad tradycyjnymi komputerami mają natomiast wielką przewagę – energooszczędność.

  

16 Comments For This Post

  1. Franek Says:

    Fajne!

  2. Jakub Says:

    Mogę prosić o szczegóły dot. przekaźnika?

  3. maxios Says:

    bardzo pouczajacy opis tylko malo linkow a konkretniej chodzi o modol przekaznikow z usb z kad zostal zakupiony poniewaz tak to trzeba szukac po googlach i stronach ktore nie zawsze odsylaja do tak rozbudowanego przekaznika

  4. techniczny Says:

    Kartę przekaźnikową można znaleźć bez problemu na Allegro.
    Zdjęć trawnika nie ma, bo system działa od dwóch dni. Również czekam na efekty nawadniania.

    Jeżeli to komuś pomoże to sprzedawcą był jack_62. Poprosiłem dodatkowo o wyprowadzenie 8 wejść (do czujnika deszczu, czujnika otwarcia drzwi, zalania piwnicy, itp.)

  5. bobiko Says:

    Nie no :D to jest dopiero świetny i bardzo ciekawy wpis. Nie da się ukryć, że jest to nowatorski pomysł, który można wykorzystać także i u mnie…

  6. Franek Says:

    Czekam na Twoje pomidory powered by Linux ;D

  7. hyena Says:

    Opis mógł by zawierać jak najwięcej sczegułów

  8. Franek Says:

    Komentarz n mógłby nie zawierać błędów.

  9. svnsvliusz Says:

    Odnośnie sprawdzalności prognoz pogody to trzeba mieć zawsze duuuży dystans. Jako opcję zamiast ICM możesz wykorzystać obserwacje wstecz, na stronach GDDKIA uaktualniają ją co 10 minut, może znajdziesz jakąś blisko siebie (jest tam również opad): http://www.traxelektronik.pl/pogoda/gddkia/ . Fajowy artykuł. Mogłoby mi takie coś spuszczać rolety wieczorem? ;p

  10. dcm_Marecheq Says:

    Wykorzystałem taką samą kartę przekaźników w swoim pojeździe sterowanym przez Wi-Fi:
    ubuntu.pl/forum/viewtopic.php?f=170&t=157570

  11. Krystian Says:

    Witam,
    Czy moglby ktos zrobic mi podobny sterownik?oczywiscie odplatnie :)

  12. Franek Says:

    Napisz do autora

  13. Krzysztof Says:

    OK – poprzedni wpis nieaktualny – teraz spojrzałem na <? zamiast <?php :)
    Niemniej jednak chętnie skorzystam z doświadczenia i przemyśleń… dodatkowo router ma sterować roletami podczas naszej nieobecności…

    pozdrawiam
    Krzysztof

  14. Krzysztof Says:

    ałtorze kochany – toć pisałem wcześniej i nie było odzewu… a mam chyba dług wdzięczności – faktycznie wszystko działa – zakupiłem kartę z obsługą pilotów i przekaźnikami sterowanymi sygnalłem ciągłym i impulsem… zabawa się zaczęła :) Jednak szkoda, że forum głuche…

  15. Krzysztof Says:

    i mojego wpisu jednak nie ma :(

  16. Marcin Says:

    no głuche niestety :(

Leave a Reply

Polityka komentarzy

Wyszukiwane tagi: jak podczy router      
     
Green Dog Says

MiniBlog