Sterownik Podlewania Ogrodowego RAIN

Sterownik Podlewania Ogrodowego RAIN

Sterownik podlewania ogrodowego RAIN (c) Zawartek

https://www.youtube.com/watch?v=FDeTxusD5eY&t

„Krótka” Historia powstania sterownika

Jakieś cztery lata temu w momencie montażu u siebie systemu nawadniającego ogród, zakupiłem sterownik Hunter 4 sekcyjny do załączania podlewania.

Już po pierwszych 5 minutach pojawił się problem z mało intuicyjnym menu sterownika i dość skomplikowanym sposobem uruchamiania sekcji podlewania, chwilę później okazało się , że sterownik ma 9V bateryjkę podtrzymującą ustawienia pamięci i w przypadku rozłączenia jej gubi całkowicie ustawienia sekcji podlewania, w tamtym czasie energetyka robiła u nas modernizację linii napowietrznych i często wyłączano prąd na wiele godzin, męczyłem się wielokrotnie ustawiając na „durnym” sterowniku od nowa godziny sekcji podlewania itd.. do tego nieszczęsna bateryjka padała bardzo szybko nie wiedzieć czemu ???

            W międzyczasie wróciłem do mojego Hobby tzn. po 20 latach przerwy wróciłem do hodowli rybek. Ze względu na sterowanie oświetleniem i paroma innymi urządzeniami zacząłem szukać jakiegoś gotowego sterownika, który załatwiłby to sprawę . Większość gotowców okazała się droga i jak zwykle rozbudowana i oczywiście miały problem z zapamiętaniem ustawień w przypadku zaniku prądu. W akcie desperacji kupiłem

Kit-AVT2800 , który wg opisu miał spełnić moje wymagania. Jak się okazało była to kolejna „wpadka” – sterownik po złożeniu działał stabilnie tylko pod warunkiem, że załączał diody LED  lub inne niskonapięciowe urządzenia , niestety w przypadku „głupiej” żarówki 40W potrafił zawiesić się i nie reagować aż do resetu. Nie będę tu opisywał ile godzin straciłem na eksperymentach i próbach uruchomienia tego cuda – łącznie z UPS-em podtrzymującym i  stabilizującym napięcie.

            W pewnym momencie trafiłem na sterownik o nazwie AQma computer – zrobiony na bazie Arduino i paru gotowych elementów wykonawczych. Sama AQma nie jest jakimś drogim czy też skomplikowanym urządzeniem, ale autor Marcin Grunt z,  którym się zaprzyjaźniłem poświęcił temu projektowi wiele godzin swojej pracy, dopieszczając to cacko do perfekcji – polecam stronę autora www.magu.pl . Sterownik ten posiada opcję odczytu stanu timerów z eepromu a do podtrzymania zegara ma osobną bateryjkę a co za tym idzie staje się niezależnym od wyłączenia prądu, a najważniejszą cechą jest to, że jeżeli w trakcie uruchomionego timera wystąpi zanik prądu to sterownik i tak po przywróceniu zasilania, jeżeli nie upłynął czas timera uruchamia zaprogramowany zegar. – nie trzeba czekać 24h na przywrócenie stanów !!!!!!!!!!

            Wracając do tematu „podlewacza” pomyślałem sobie zrobię prościutką adaptację Aqmy i będzie wszystko działać lepiej jak oryginał !

            He he – o ja „głupia blondynka”  jak daleki byłem od prawdy.

Marcin udostępnił kod źródłowy swojego dzieła więc stwierdziłem spoko, kiedyś w końcu programowałem w Turbo Pascalu to na pewno sobie poradzę. No i oczywiście kolejny „Zonk” Arduino Ide bazuje na C++, przez pół roku kombinowałem z gotowymi sketchami no i myśląc już , że „ pozjadałem wszystkie rozumy” przeszedłem do budowy sterownika.

Wstępna nazwa AQma RAIN – ze względu na to, że magu pozwolił mi na użycie jego nazwy jak i na zawartość programową.

            Mając taką wiedzę i wsparcie Marcina przystąpiłem do konstruowania sterownika:

Wymagania Sterownika

– Sterownik ma mieć przynajmniej 4 sekcje zegarowe , ale najlepiej 6 lub 8 :)

– Każda z sekcji ma mieć możliwość odpalenia przynajmniej 1 na dobę, ale najlepiej 2 lub 4

– Najlepiej jakby każdą sekcję można było uruchomić w konkretny dzień tygodnia

– Sterownik musi mieć wyświetlacz LCD

– Każda sekcja ma mieć możliwość uruchomienia manualnego – załaczenie jednej wyłącza kolejną !!

– Możliwość ustawienia temperatury granicznej przy którym sterownik ma przestać włączać   podlewanie

– Obsługa najprostszego gotowego czujnika deszczu ( włącz/wyłącz)

– Możliwość programowania przez PC jak i bluetooth (przyszłościowo WIFI)

Mając takie szczytne założenia pościągałem ze strony Maga Aqmę LED control, Aqmę computer i parę gotowych funkcji i zacząłem klecić program, a program trzeba gdzieś wgrać no to przechodzimy do tego co tygryski lubią najbardziej czyli Hardwareu

  • Wyświetlacz lcd 16×2
  • 6 takt switchy
  • Arduino Nano
  • 8 diodek
  • Czujnik temperatury ds18b20

 Jako podstawa do testowania wystarczy !

Oczywiście ja od razu muszę mieć gotowca więc dodatkowo ścieżki trzeba łączyć drucikami i  co chwila coś jak się ruszy to nie działa w końcu co gdzie z czym zaczęło się plątać i zwierać. Mówię sobie ok, trzeba własną płytkę zaprojektować i wytrawić. A jak to się robi Hmmmmm jakiś program ???? Wszędzie w necie piszą Eagle lub Kikad ściągnąłem oba i znowu „Zonk”  ani nie wiadomo jak zacząć, ani co zrobić aby było dobrze, ale drążąc internet jak „krasnoludy Morię” znalazłem Fritzinga specjalnie dla Arduino, dużo ułatwień itd. Wiele godzin spędzonych na projektowaniu płytek jak i na nauce elektroniki. A to tu dodać zasilanie tam kondensator itd.. no radość nieprzeciętna. Co płyteczka wytrawiona zaraz do zlutowania i test „migającej diody” . Zafascynowany małymi kosteczkami minąłem się z najważniejszym a taka sobie różnica AC  a DC.  Aaaaaa….. uściślając pominąłem element wykonawczy czyli elektrozawór sterowany prądem zmiennym 24V-26V  200mA. No i połowa płytek z miejsca w kosz !!!! Na mosfecie to sobie można ledami sterować, silnikiem pokręcić na PWMie a nie zaworami wodnymi ( no dobra można też ale trzeba 2 mosfetów na jeden kanał i troszkę pokombinować z płytką – możecie poszukać na googlu są gotowe schematy)

       Co tu dużo mówić poszukałem, podrążyłem znowu w Morii no i są TRIAKI. Fajnie, pięknie ale triak bezpośrednio podłączony pod mikroprocesor to nawet mi pachnie solidną zworą z czasem no to może jakaś optoizolacja ??? MOC3041 – optotriak do załączania triaków połączony z diodą led, po prostu „radość małego dziecka na widok cukierka”.

            No dalej już niby wszystko ok – to „plagiatuino” pełną parą – Schemat AQmy led bo wygodny dodane triaczki guziczki o czujniczek DS18B20 wyjście LCD  Zegarek – duża ilość ścieżek – trzeba zrobić dwustronną :) a co  kolejne godziny nauki :)

            No jak zwykle fajnie się projektowało ale ta brzydka obudowa wiercenie w niej kombinowanie. Dorwałem się do drukarki 3D „ Mój własny zaczarowany ołówek”. Ołówek jest, no tylko malarz z „przedszkola” wycina klocki w programie zbliżonym do Painta tylko 3D. Wizyta jednego z kolegów z pracy uświadamia, że w Inventorze bez problemów można robić cuda z wymiarami itd. Parę kursów z Youtuba, kilka zarwanych nocy no i ołówek zaczyna słuchać rysownika.

.

No to coś już jest to „wrotki” do programu, ale tu gorzej jak Syzyfofi, w końcu dogadałem z Marcinem,  że wyślę mu sterownik a on zrobi dla mnie soft a żebym się nie nudził to stworzył właśnie nową wersję Aqma LED control. Wszystko fajnie, ale ja nie lubię latać z kompem do sterownika. To może by tak Apka na ANDROIDA ????????

Czemu nie MIT APP INVENOR zrobiony na bazie scratcha, powalczyłem parę tygodni nauczyłem się pewnych rzeczy i powstała apka, którą Magu zamieścił na stronce http://magu.pl/aqma-systemandroid moja duma :) moja pierwsza apka na ANDROIDA.

W międzyczasie Marcin mówi,  że z moich wypocin z RAINEM nie za wiele się da zrobić bo program się „nie klei” –cholera a ja mam prawie gotową apkę do niego :(- a w dodatku podciągnąłem switche do masy robiąc im PULLDOWN .

Wersja 2.0 – a co w chwili wolnej – tylko trzeba iść dalej rozwijać się :). JAK ??? Soldermaska i SMD.

A co z drukiem 3D ??????

Wygląd zadowalający, ale sterownik nadal coś nie działa poza timerami „zerżniętymi” od Maga – no dobra nie do końca bo zrobiłem „kombajna” Połączyłem Timery tak, że można wybrać dzień i czterokrotnie go odpalić w ciągu dnia – „Wow”  minisukces – no i coś się świeci na LCD – z manualną obsługą guzików „głęboka studzienka”.

No i naszło mnie zniechęcenie – kryzys nieunikniony, Magu nie znalazł czasu, zresztą nie jego projekt,  wylądował „na półeczce” na około 8 miesięcy. W między czasie parę innych ciekawych rzeczy wyskoczyło i nie miałem w ogóle ochoty na powrót. Problem z guzikami okazał się na chwilę obecną nie do „ogarnięcia”

Jak to, zapytacie ??? Co trudnego w Arduino w obsłudze guzików ??? W Arduino może nic ale moje założenie :

– jeden guzik obsługuje jedną sekcję – łatwizna :)

– załączenie drugiego guzika w trakcie przerywa tryb manualny i wyłącza go, po czym ponowne wciśnięcie załącza kolejny rozłączjąc poprzednika – ale kurna jak to zrobić ? A Magu dla dobicia – tylko pamiętaj od Debouncingu klawiszy – WTF???????

-załączenie manuala rozłącza na określony czas timery, po czym je przywraca – schody do nieba

– czas manualnego załączenia ma być programowalny z aplikacji – aaaaaa gdzieś to mam widać się nie da   !!!!

W ten oto sposób AQma Rain 2.0 wylądował na półeczce wraz z prawie gotową apką na Androida. Myśląc teraz po czasie trzeba było tryb manualny zrobić przy obsłudze z telefonu i po problemie, ale brałem pod uwagę, że ludzie nie zawsze łażą do ogrodu z telefonem !

W międzyczasie odezwał się Marcin, który wysłał mi wersję sterownika z jednym guzikiem (yupiiiiii….) i znowu Zonk – guzik działa ale czasami, jak się źle w pętlę trafi, to nie działa !!! Myślę sobie a na co w Arduino przerwania, no są tylko, że ja mam 6 guzików a nie dwa. No to znowu „wujek google” – zastosować expander portów, który ma obsługę przerwania w momencie jakiegokolwiek ruchu na szynie danych.  Myślę sobie, że po cholerę za każdym razem buduję całość od nowa czas rozbić Raina na płytki:

– Sterującą  wyjściami ( arduino, timer, bluetooth, czujnik temperatury)

– płytkę IO czyli guziczki i diody

– płytkę wykonawczą triaki i i gniazda przyłączeniowe

            Aby pozbyć się Efektu bouncingu switchy i skończyć komplikowanie sobie życia poszedłem w rozwiązanie Hardwareowe J . ( 1 kondensator i 2 rezystory – na klawisz jakieś 20gr za komplet) wersje SMD – no co , nie można ????

Mój wybór jeżeli chodzi o expander padł na najbardziej pospolity PCF8574 szybko zrobiona i   wytrawiona płytka

 i ………….. „kolejny zgon” – nie doczytałem specyfikacji, że PCF ma dość specyficzne parametry prądowe :(  więc 2 diód w szeregu już nie zaświeci :

Stan niski     : 25mA

Stan wysoki : 300uA

I kolejna płytka w kosz !!!!!!!!!!!!!

Następny okazał się układ MCP23017 – no ten w końcu działa be problemu rozjarzy niejedną diodę :) .

Chwilę (patrz- parę dni ) zajęło mi „rozkminienie” jak to cudo programować tak  aby działało no i oczywiście trzeba było zaprojektować panel kontrolny (obudowę) układu:

No teraz to już duma mnie rozpiera (kurcze – ale jest tu 8 szt switchy  :) ), ale wygląd to nie wszystko czas zabrać się za programowanie, HEHEHEHE…..  Postanowiłem, że więcej nie zrobię już żadnej płytki dopóki nie będę miał softu dającego nadzieję na działanie układu, zgodnie z wcześniejszymi założeniami. Stary program poszedł do kosza !!! Zacząłem od nowa :

            – uruchomienie guzików – tu z pomocą przyszła funkcja switch case – Po co mi były te przerwania, :) nie wiem, ale bez nich też działa i to zgodnie z założeniem nie komplikuje mi programu.

            – uruchomienie LCD – błahostka, ale jak zrobić aby pewne rzeczy zmieniały się w trakcie działania programu nie przerywając go  – zbawienna procedura Marcina oszczędziła mi godzin pracy http://magu.pl/arduino/124-execute-interval   

            – teraz czujnik temperatury który decyduje czy włączanie timera ma w ogóle sens – w sumie proste dzięki emulatorowi ds18b20 mogłem dowoli testować.

            – czujnik deszczu ok na pinie 2 to nie problem działa jak powinien, nawet na wyświetlaczu wyświetla informację.

            – nadszedł czas dodania moich zmodyfikowanych timerów, bazowałem na tym co podesłał mi Magu, ale dodałem obsługę dni. I znowu Zonk :(

Timery nie chcą się uruchomić a dodatkowo programowanie kłopotliwe bo wysyłanie po RS232 komend w stylu 11,1,10,00,11,00,1,1,1,1,1,1,1 jest męczące. No to albo Android, albo Microsoft Visual Studio na PC. Znowu 2 tygodnie zleciały bo postanowiłem nauczyć się robić apki na PC, Na szczęście Youtube ma sporo przykładów z użyciem C#  no i na szczęście przypomina troszkę scratcha z Androida. Tak więc powstała aplikacja na PC do konfiguracji Raina.

            Jak łatwo się domyślić apka działa, ale timery leżą odłogiem więc znowu po prośbie do Marcina. Wysłałem mu kod i proszę o jakieś sugestie – pada jedna -według niego nie ma :

void rtcRead() {
    if (RTC.read(tm))
   {
     currentTimeSec =  (long(tm.Hour)3600) + (long(tm.Minute)60) + long(tm.Second);
     currentDayOfWeek = tm.Day;
   }   

Patrzę u siebie, i faktycznie  nie ma tego „ścierkostwa”, po dodaniu  nadal timer nie rusza, zdesperowany „powyrzucałem” na LCD parametry timera, godziny stany i wg mnie wszystko jest w jak najlepszym porządku , więc dlaczego nie działa ???

Sięgnąłem do szkicu z ver 1.0 z 2015 –  na pierwszy rzut oka wszystko jest tak samo, dopiero program do porównywania wykazał ciekawostkę J

Zamiast

currentDayOfWeek = tm.Day   (magu – mam cię J)

powinno być

currentDayOfWeek = tm.Wday

 No i EUREKA timery ruszyły.

Jeszcze mały problem ( rozwiązanie zajęło tylko parę godzin ), aby w przypadku gdy jest za zimno, timer w ogóle nie próbował załączyć sekcji :) (zawory są wrażliwe na mruganie :))

Pozostało jeszcze dopracować informacje na LCD, doszlifować Aplikację na PC i Na Androida

Zaprojektować płytkę procesora i wydrukować obudowę.

            Postanowiłem też zmienić nazwę na Rain Mega ( ze względu na 8 sekcji ) a w głowie jeszcze mam wersję Mini z 4 sekcjami która ma już swoją płytkę z klawiszami J

            Minęło 2 tygodnie od ostatniego tekstu. Troszkę się porobiło :). Dużo czasu straciłem na poprawkę pewnych niedociągnięć w samym kontrolerze. Zmieniłem też właściwie jeden bezsens tzn : Ograniczenie górne temperatury – stwierdziłem, że nie ma właściwie górnej granicy przy której nie należy podlewać. Jeżeli ktoś będzie chciał to bez problemu poprawi sobie szkic i wgra do kontrolera. Plułem sobie w brodę bo pomimo dodania hardwareowego debouncingu i tak musiałem go zastosować ( program za szybko mi się kręci :)). Dodatkowo poprawiłem komunikaty wyświetlane na LCD.

            Jeżeli chodzi o interfejs komunikacyjny –Dokończyłem aplikację na PC – długo by tu też można pisać, ale znów szczególne dzięki dla Marcina gdyż utknąłem z odczytem eepromu i przetworzeniem tego na macierz w  Visual Studio. Niby prosta rzecz, ale w goglach jakoś mało informacji na ten temat. To znaczy pełno informacji , ale nie jak przerobić to na działający kod :). Muszę przyznać, że Magu znów potraktował mnie dydaktycznie i dał jak to mówią „wędkę” a nie  „rybę” więc z tym co od niego dostałem, musiałem jeszcze z godzinkę popracować, aby ogarnąć mechanizm działania, ale dzięki temu sam robię za „łowcę” a nie za pasożyta :).

            Zabrałem się w końcu za wykonanie wersji ostatecznej sterownika ( Płyty głównej ) jak przejdzie ostatecznie testy to dokończę obudowę do niej.

            Wróciłem też do kodu na Androida – aplikacja która powstała prawie 2 lata temu wymaga sporo poprawek – choć najważniejsze można już dzięki niej zaprogramować Raina bez większych zgrzytów. Pozostało do skopiowania z mojej poprzedniej aplikacji dla Aqmy LED obsługi odczytu EEpromu , ale skoro jest gotowa to po co robić coś od nowa. W aplikacji swojej znalazłem parę rzeczy, które musiałem usunąć i zastąpić je czymś nowym. Sam nie wiem dlaczego powprowadzałem „delay” w apce , która tylko blokuje program i w zasadzie źle działa , zamiast zastosować timera z licznikiem – mea culpa.

 

            rok 2018

 

Znowu minęło trochę czasu i a nawet jeszcze więcej…. :-) . Trzeba powiedzieć sobie wprost dopadł mnie chroniczny brak czasu i chęci do zabawy, ale czas to skończyć !!!

           Usiadłem znowu do GUI na PC poprawiłem zakończyłem i działa ! wiele można by tu pisać, ale w końcu rozwiązałem nękające mnie problemy i mam działającą w pełni aplikację PC dla 8 sekcji ( hehe z mniejszą ilością też działa ). Z ciekawostek to musiałem opanować tworzenie instalki aplikacji dorobić ikonkę itd…., poprawić  parę niedociągnięć.

Oto wygląd aplikacji PC:

           

Przez prawie całe wakacje programowałem aplikację na Androida i też wczoraj tj 30.08.2018 obejrzała światło dzienne w pełni sprawna aplikacja na w/w platformę. Duma dosłownie mnie rozpiera. Sądzę, że zmierzamy do finalnej publikacji Raina :).

Kończąc aplikacje zdecydowałem się definitywnie na nazwę RAIN_2018.

A teraz  najważniejsze wrócić do poprawy płytek PCB.

Na pierwszy rzut poszła sekcja z triakami – zmieniłem parę rzeczy

            – dodane kolejne 2 triaki do sekcji czyli ma już obsługę pełnych 8 sekcji

            – zmieniłem podejście do zasilania i zdecydowałem aby układ prostujący

             z filtrem był tu na płytce

            – przetwornica DC-DC też ląduje tutaj

Projekt płytki wygląda tak :):

TAK WIEM ŻE MOŻNA TO ZROBIĆ PROŚCIEJ I TANIEJ !!! Już sprawdziłem można pominąć bt137  teoretycznie sam moc3041 powinien dać radę załączyć cewkę  elektrozaworu, ale ….

No i oczywiście można zastosować inne triaki mniejsze np. 1A, to śpiewka przyszłości tak jest łatwiej, poza tym to ciągle Mój i tylko mój projekt hehehehehehheehehhe :)

A teraz czas na samego Raina :)

Tu też zmieniłem wyprowadzenie USB z boku aby można było podłączyć w łatwy sposób do PC. Powywalałem też wiele zbędnych w tym projekcie dodatkowych pinów i diody świecącej bo po co ?

No i finalnie poprawka klawiatury :

Pozostało teraz tylko poprawić obudowę.

            HA HA HA – myślicie że to już koniec :), sorki no bonus, bo jak zwykle postanowiłem potestować swoje cudo w praktyce i niech mnie szlag nie trafi – pierdzielona klawiatura nie działa poprawnie, myślałem że switch case załatwi sprawę , ale jak zwykle życie uczy pokory. Po pewnym czasie zawieszała się i miała niekontrolowane objawy. Będąc na etapie usunięcia przycisków z projektu. Trafił mi się inny projekt z obsługa klawiatury, który musiałem zrobić na „cito” i musiał działać niezawodnie. Tu mając pole do popisu napisałem sobie program od zera i zdziwiony, że działa –postanowiłem wrócić do klawiatury RAINA.

HE HE HE znów się można uśmiać bo spędziłem nad tym parę ładnych dni, znowu kosz, jeszcze chwila i cały projekt spuszczę w toalecie. Problemem, który zatrzymał mnie był związany z tym że z poprawnie działającą klawiaturą, nie działały poprawnie timery – jakieś głupie mrugające diody – WTF ???? Przemyślałem sprawę jeszcze raz od początku i spłynęło na mnie olśnienie – koniec zabawy z fizycznymi zabawami na Pinach !!!

Przerobiłem klawiaturę na stany logiczne „Kochana matematyka Boolowska” – i w końcu mogę z czystym sumieniem powiedzieć, że Rain działa zgodnie z założeniami początkowymi. Dla was to ver 1.3 dla mnie chyba z 8.0, ale skoro nigdy nie było publik to muszę się zadowolić tą 1 :). Tak z własnych przemyśleń to czuję się jak Edison, który po bardzo wielu nieudanych próbach doszedł do jednej jedynej poprawnej odpowiedzi i nie załamując się stwierdził, że udowodnił na wiele sposobów przy których urządzenie na pewno nie działa.  Z ciekawostek dodatkowych to przerobiłem działanie wyświetlacza i zamiast bawić się „modulo” z liczby do odliczania czasu wyświetlacza. Stworzyłem dla nich osobne liczniki, wpadłem na to zupełnie przypadkowo, ale w końcu jest wyświetlacz też w pełni przewidywalny i można na nim wyświetlać co się chce i przez jaki czas.

            I znów was zaskoczę – to nie koniec :) bo trafiła mi w łapki drukarka 3D DLP, jak już tyle poświęciłem temu projektowi ( właściwe 3 lata ) to stwierdziłem, że parę dni więcej już nie zrobi różnicy. Powstała obudowa Hybrydowa (jeżeli chodzi o technologię) połączyłem klasyczny wydruk z wydrukiem żywicznym :) :

Ok teraz czas na wnętrze :) :

Teraz abyście się uśmiali przeanalizowałem wygląd płytki z kontrolerem i stwierdziłem ,że zmienię ją po raz kolejny :) nie podoba mi się wyprowadzenie zasilania na płytkę oraz dołączenie czujników ( hi hi powiem, że już to zaprojektowałem ale na razie nie miałem czasu zmontować płytki )

       Jeżeli nie będzie zawierała błędów to ona pójdzie publik.Dla ciekawskich Led_reg to będzie dioda(dy) ws282812B do podświetlenia nazwy :)

A wracając do obudowy:

Z racji, że bawiąc się klawiaturą dostrzegłem problemy z „haczącymi” się mechanicznie guzikami musiałem przeprojektować pokrywę (stąd otwory przesunięte w klawiaturze) oczywiście PCB z projektu ma już poprawione te niuanse, ale na chwilę obecną nie mam czasu na zrobienie jej od nowa , i nie zmienia to już nic w konstrukcji samej płytki.

            W chwili wolnej musiałem jeszcze napisać instrukcję obsługi aplikacji, też troszkę zajęło :).( są dołączone do projektu)

OK teraz zmierzamy naprawdę ku końcowi.

Elementy niezbędne do zbudowania Sterownika:

– Arduino Nano v3.0

– Moduł zegara RTC

– Moduł bluetooth HC-05

– Wyświetlacz LCD I2C 2×16

– Przetworniczka DC-DC

– Płytki PCB

– Elementy elektroniczne ( rezystory, diody, układ gretza,  triaki,  optotriaki,  switche, przyłacza, buzzer)

– Śrubki montażowe, kabelki łączeniowe, Piny

Z elementów wykonawczych poza sterownikiem:

– Elektrozawór wody AC 24V – 8 sekcji to 8 zaworów

– Czujnik Deszczu 1 szt (Normaly closed) lub zwykła zwora jeżeli ma go nie być

Zasilacz AC 24V 1A

Jeżeli ktoś będzie drukować obudowę – to z 0,5 kg filamentu (ja używam PET-G)

A wersja dla wstawek z żywicy to już sami określcie (wg mnie z 100ml max)

No na koniec coś jeszcze dotyczące Praw Autorskich:

Udostępniam ten Projekt „Jak Jest” nie gwarantuję poprawnego działania choć u mnie działa :)

Powyższy projekt można kopiować i udostępniać innym pod warunkiem zachowania informacji o autorze projektu – patrz MNIE

Nie wyrażam zgody, aby ktoś handlował tym projektem chyba, że za moim pisemnym przyzwoleniem

Projekt ten jest wynikiem mozolnej pracy więc pozytywne opinie :) jak i negatywne :( (te ostatnie niemile) mile widziane

Ta sama sytuacja ma się do napisanych aplikacji i projektów PCB oraz Obudów

Życzę Udanej Zabawy

A żeby nie było że się nudz: :)

Mały update ze względu na pytania o wykaz części:

Składniki płyty sterującej:
Arduino Nano, HC-05 bluetooth, ds18b12 -czujnik temperatury na przewodzie, zegarek ds3231,1 buzzer 5V,rezystory 10k- 1szt , 1k -1szt, 4,7k-1szt,kondensator 1uF 16V – 1szt, 2 przyłącza 4 pin, 2 przyłącza 3 pin, złącza śrubowe podwójne- 2szt, przełącznik do włączania bluetootha ( może być nie musi ) 3 pin do druku.
Składniki płyty z klawiaturą:
MCP23017 – 1szt, kondensator 1uF SMD – 10 szt, kondesator SMD 10k – 20 szt, kondensator SMD 220 – 8 szt, led SMD lub zwykłe 8szt, 2 przyłącza 4 PIN , goldpiny 10 szt, 8 takt switchy, Wyświetlacz 2×16 I2C – 1 szt.
Płyta wykonawcza:
8 szt BC137, 8 szt moc3041, 8 szt rezystor 330,przetworniczka DC-DC wybrać z kondensatorami 50V na wejściu, 4 diody prostownicze, kondensator 50V-470uF-1szt, przyłącza śrubowe do druku – 10szt,goldpin 9 szt,
Tą płytkę można zastąpić gotowymi przekaźnikami lub też SSRami, warunek doprowadzenia zasilania do 1 płytki z zasilacza max 12V

A teraz – Tak Wyglądają płytki PCB w wykoniu z soldermaską, metalizacją otworów i opisem

UWAGA – może się pojawić problem z załanczaniem zaworu elektrycznego. Moja wina nie zwróciłem uwagi na prąd jaki potrzebuje MOC3041.

w płytce z klawiaturą należy zmienić rezystory z 220  na 30 Ohm. !!!!!!!!!!!!!!!!!!!

W instrukcji napisane też jest aby przetworniczkę ustawić  na 6,5 V – zmieniam to lepiej na 7,5V ze względu na diodę która jest po drodze zasilania .

Pliki załączone do artykułu:

Ocena: 5/5 (głosów: 7)

Podobne posty

13 komentarzy do “Sterownik Podlewania Ogrodowego RAIN

  • Jeżeli chodzi o ethernet to nie widzę problemu aby można było z niego korzystać za wyjątkiem jednego :) . W projekcie urzyłem Arduino NANO mój program wykorzystuje ok 91% pamięci avra – jeżeli zmieścisz się w 9% to ok (operacyjnej masz zajęte jakieś 56%). Zawasze można pójść krok dalej i zastosować Arduino megę a tu to chulaj dusza nawet lcd 7” da radę :).
    A tak na poważnie najprostszym rozwiązaniem o którym ja myślę i popróbuję niedługo to rs232WIFI (moduł od Atnela -są też chińskie klony) który działa jak bluetooth po rsie i można go bez problemu dodać na jakiś pinach wolnych ( a jest ich też sporo bo zastosowałem rejestr przesuwny do obsługi podlewaczy i klawiatury)
    Teraz jeszcze jedna uwaga dla wszystkich którym na myśl wpadnie użyć PCF jako rejestr przesuwny, jest znany nierozwiązany problem w Arduino z biblioteką PCF i software serial stąd nie polecam stosowania tego rejestru ,choć można używać zwykłego wire do uruchomienia pcfa.( w przypadku lcd i2c nie ma problemu)

    Odpowiedz
  • bardzo fajny projekt z jednym ale – UI (zarówno Androidowe jak i PCtowe) wygląda tragicznie ;)
    przypominają mi się strony z lat 90-tych ( …. )
    jak mi padnie sterownik RainBirda to pomyślę, czy zamiast kupować nowego (za grubą kasę ze sterowaniem przez wifi) nie storzyć sobie własnego na podstawie Twojego projektu

    Odpowiedz
    • UI jakie jest każdy widzi. Nie jestem informatykiem.
      To po pierwsze.
      Po drugie, fakt bawiłem się kolorkami itd, ale UI jest w pełni moje i nie zerżnięte od kogokolwiek. To są pierwsze programy jakie powstały od czasów zabawy Turbo Pascalem i udostępniłem je za friko. Zresztą Wiesz zawsze ktoś może powiedzieć fajne , ale dlaczego projekt nie w Eaglu, dlaczego wygląd taki a nie inny.
      Moja odpowiedź zawsze będzie taka sama:
      – nie robiłem tego dla kasy tylko for fun & knowledge :-)
      – takie miałem wyobrażenie o tym sterowniku i tak go skonstruowałem :-}
      – taki w końcu interfejs bo taki mi się podobał :-)
      Za krytykę dziękuję w następnej wersji jeżeli powstanie to uwzględnię twoje uwagi :-]
      A tak swoją drogą lata 90 to faktycznie moje klimaty :-D

      Odpowiedz
  • Mnie udało się zaprojektować układ sterowania 8 ma sekcjami bez mechanicznej obsługi urządzenia. Uaktywnianie urządzenia do pracy odbywa się ze smartfona. Jedynie co trzeba zrobić to po oblokowania urządzenia smartfonem przeciągnąć dłonią w pobliżu włącznika zbliżeniowego. Reszta sterowana jest z poziomu przeglądarki internetowej. Nawet zegary ustawień podlewania są graficzne. System na tyle jest inteligentny, że sam dobiera właściwe czasy podlewania na podstawie analizy podłoża na którym rosną roślinki oraz wyznacza właściwy czas rozpoczęcia podlewania, czas kiedy roślina faktycznie ma zapotrzebowanie na wodę.
    Ostatnio dorobiłem moduł przy pomocy, którego ustawiam parametry urządzenia głosem (wydaję komendy przez swój smartfon). Nie korzystam z Internetu, a co za tym idzie nie potrzebuję Asystenta głosowego (np Google). Moje urządzenie rozpoznaje komendy po polsku. Zapomniał bym. Moje urządzenie wysyła mi raporty sms-em z podlewania. Mam też dodatkowy moduł z wyświetlaczem ustawiony daleko od urządzenia, który właczam kiedy chcę. Zaraz po uruchomieniu dostaję wizualne komunikaty o tym co zostało zrealizowane w ostatnim czasie, jaki jest stan faktyczny gleby, i co zamierza urządzenie zrobić przy kolejnym najbliższym podlewaniu (godzina rozpoczęcia podlewania, nowe czasy podlewania właściwe dla stanu gleby i roślin.
    A i tak gratuluję pomysłu autorowi. Każde rozwiązanie ma przecież ciekawe wątki.

    Odpowiedz
    • Rysiek. Nie bardzo rozumiem twój tok myślenia. “bez mechanicznej obsługi urządzenia” . Ja te guziki specjalnie zaprojektowałem z myślą o osobie starszej jak mój ojciec, który jak chce na chwilę włączyć podlewanie to wciska sobie guzik.

      Poza tym weź pod uwagę że to mój pierwszy poważny projekt na arduino, i wszystkiego uczyłem się od zera. :)
      Twój sterownik jak domniemuję korzysta z internetu i czujników wilgotności gleby. Jak ktoś chce to wolna droga może to dorobić bez większych problemów. Ja nie chciałem tych czujników bo są kiepskiej jakości (te lepsze są drogie).
      Zresztą pochwal się proszę swoim cudem :) aby inni mogli też ocenić . Pozdrawiam.

      Odpowiedz
  • Cześć, wspaniały projekt :)
    Mam pytanie odnośnie ds’a 1307, czy jesteś w stanie ustawić manualnie w kodzie godzinę? Jeżeli tak to w jaki sposób to robisz? Przez funkcję setTime? Buduję swój projekt na tej samej bibliotece i mam problem bo moduł zegara się spieszy. Dziękuję i pozdrawiam :)

    Odpowiedz
    • tzn bibliotekę używam ds1307 natomiast stusuję tu zegarek na ds3231 bo się mu czas nie kitaczy :)
      w Moim programie używam kodu :
      ///////////////////////////////////////////////////////////////////////////////////////////
      ///// Ustaw czas /////
      ///////////////////////////////////////////////////////////////////////////////////////////
      byte setHour, setMinute, setSecond, setYear, setMonth, setDay;

      if (val[0] == 90)
      {
      if (val[1] >=0 && val[1] =0 && val[2] =0 && val[3] =15 && val[4] =1 && val[5] =1 && val[6] <=31 ) { setDay = val[6]; } else { return false;} // setDay – 6

      setTime(setHour,setMinute,setSecond,setDay,setMonth,setYear); // godz, min, sek, dzien, miesiac, rok

      RTC.set(now());

      Odpowiedz
  • No jestem pod wrażeniem. Przeglądałem strony pod kątem budowy własnego sterownika do nawadniania. ale jak widzę ile to jest roboty i jakiej tony wiedzy mi brakuje to chyba sobie temat odpuszcze… ale mam pytanie, czy jak mam po prostu zasilacz, ktory daje mi 24 V AC to mogę go dać bezpośrednio na elektrozawór czy to jest jakoś bardziej skomplikowane i nie można? Z gory dziekuję za odpowiedź i jeszcze raz gratulacje! Respect pelna geba!

    Odpowiedz

Odpowiedz

anuluj

Masz uwagi?