AQma – Sterownik akwariowy – Arduino Leonardo

AQma – Sterownik akwariowy – Arduino Leonardo

Założenia

Darmowy komputer akwariowy na Arduino Leonardo :

  • do akwarium morskiego
  • na ogólnie dostępnych podzespołach
  • stworzony w jak najprostszy sposób
  • zarządzany przez USB za pomocą aplikacji na Windows
  • z instrukcją, która umożliwi jego złożenie nawet humanistom

(Dokładną instrukcję wraz z opisem aplikacji można zobaczyć http://magu.pl/aqma )

FUNKCJONALNOŚCI:

Trzy timery włącz/wyłącz

  • pracujące z rozdzielczością sekundową
  • z “pamięcią” stanu pracy po zaniku zasilania
  • z możliwością “przejścia” przez godzinę zero
  • z możliwością manualnego włączenia/wyłączenia obwodu za pomocą przycisku, obwód zostanie wprowadzony w stan przełączenia manualnego po kliknięciu guzika na obudowie, w tym przypadku dioda sygnalizacyjna zaczyna migać, wyprowadzenie z tego stanu nastąpi po ponownym, kilkusekundowym kliknięciu guzika obwodu, dioda przestanie migać a biper zrobi biiip
  • z możliwością programowego wyłączenia/włączenia obwodu

Sterowanie trzema pompami dozującymi

  • z możliwością programowego włączenia/wyłączenia poszczególnych obwodów
  • z możliwością określenia wydajności pompy (ml/min)
  • z możliwością określenia czterech czasów dozowania i ilości wlewanego płynu (w ml) dla każdej z pomp
  • z możliwością wybrania w jakie dni tygodnia następowało będzie dozowanie
  • wszystkie trzy obwodu mają mieć możliwość zmienienia się w dodatkowe obwody timerów, jeżeli funkcjonalność “pomp dozujących” nie zostanie wykorzystana
  • z “pamięcią” stanu pracy po zaniku zasilania

Sterowanie trzema kanałami PWM dla driverów lamp LED

  • z możliwością programowego włączenia/wyłączenia poszczególnych kanałów
  • z możliwością ustawienie czasu włączenia i wyłączenia kanału PWM (0-100%)
  • z możliwością ustawienia minimalnej i maksymalnej mocy lampy w %
  • z możliwością ustawienia długości świtu i zmierzchu
  • z możliwością ustawienia lampy w trybie oświetlenia nocnego, jeżeli zaptaszkowany jest określone pole w aplikacji, to lampa w czasie kiedy powinna być wyłączona ustawi PWM na wartość ustawioną w polu minimalnej mocy świecenia
  • z możliwością “przejścia” PWM przez godzinę zero
  • z możliwością “przejścia” świtu przez godzinę zero
  • z możliwością “przejścia” zmierzchu przez godzinę zero
  • z możliwością wprowadzenia obwodów w interaktywny tryb testu dla każdego z kanałów (takie kolorowanie rgb :))

Automatyczna dolewka

  • z możliwością ustawienia jak długo w sekundach czujnik musi raportować konieczności dolania wody
  • obwód powinien móc pracować również w oparciu  o bardzo popularny, wymyślony przeze mnie algorytm “silky smooth refill” oparty o cykle :)

Opóźniony start

  • z możliwością ustawienia po jakim czasie od włączenia zasilania obwód zostanie włączony (przydatne przy odpieniaczu lub HQI)
  • z możliwością zmiany trybu pracy obwodu na “Karmienie”

Karmienie

  • z możliwością ustawienia na jak długo obwód ma zostać wyłączony po kliknięciu guzika karmienia
  • z możliwością zmiany trybu pracy na obwód opóźnionego startu

 

Co jest potrzebne

  • Arduino Leonardo :)
  • Zegarek RTC DS1307 (tylko z akumulatorem nie z baterią! – 3$)

Zegarek RTC

 

  • Panel ośmiu przekaźników SSR (16$)

ssr-male

Przekaźniki mechaniczne nie nadają się! Przy obciążeniu indukcyjnym resetują arduino. Próbowałem je obstawić kondensatorami, diodami, dławikami i zawsze w końcu trafiał się restart. Przy akwarium za kilka tysiaków raczej niedopuszczalne jest żeby zacięła się pompa dozująca.

Tak wygląda mój, gotowy projekt

aqma_instrukcja_front

 

Tak aplikacja

timers

system

pwm

dosing

Tak schemat

schematA tak kod

 

Ocena: 4.46/5 (głosów: 81)

Podobne posty

55 komentarzy do “AQma – Sterownik akwariowy – Arduino Leonardo

  • Mistrzostwo Swiata… moim zdaniem mega fajny projekt. pare opci bym przystosował osobiście do akwarium słodkiego ale sam pomysł mnie urzekł…

    Odpowiedz
  • Widzialem już lepsze diy dla akwa, ale mimo to konstrukcja całkiem fajna, tylko te leonardo potwornie się nudzi ;p. Co do przekaźników to diody zenera nie rozwiązały problemu ? prąd zwrotny bywa niebezpieczny dla uC

    Odpowiedz
    • “Widzialem już lepsze diy dla akwa”
      O którym kontrolerze konkretnie piszesz? Bo gwarantuje, że nie znajdziesz darmowego sterownika do morskiego, który możesz złożyć w 15 minut za kwotę około 100zł. Wiem bo sam szukałem :)

      Diody próbowałem, restarty zdarzały się bardzo rzadko, jednak były. Testowałem na silniku 230V/15W i modułach 8 przekaźników 5V (takich niebieskich) i na module ośmiu przekaźników 12V firmy keys. Dodatkowo, oba miały optoizolację.

      Inwestycja w SSRy moim zdaniem daje spokojny sen.

      Odpowiedz
      • Są lepsze DIY dla akwariów, np. sterownik skalar kilka lat temu prezentowany na elektrodzie. Teraz każdy idzie na łatwiznę i zamiast się chociaż trochę przyłożyć, zaprojektować i wytrawić płytkę, to tylko łączy prowizorycznie moduły, za które w dodatku z reguły się przepłaca. Kto powiedział, że taki sterownik musi dać się złożyć w 15min i za kwotę 100zł? Ten twój kosztuje ok. 200zł. Mogę się założyć, że przy zakupie pojedynczych części da się złożyć taki sterownik, z wyświetlaczem, na atmedze za kwotę ok 100zł, wliczając w to koszty laminatu, wytrawiacza, transformatora zasilającego i obudowy na triakach.

        Odpowiedz
        • Skalara mam i używałem w słodkim… W morskim brakuje obsługi pomp perystaltycznych, obsługi wyłączania cyrkulacji na karmienie, obsługi automatycznej dolewki. Projekt sam w sobie jest rewelacyjny.
          Co do kosztów…

          Arduino Leonardo: 6,38$
          przekażniki: 14,66$
          zegarek: 0,99$
          Powyższe po dzisiejszym kursie: 80,85 (oczywiście przesyłka za darmo)

          obudowę kupowałem na allegro, jakoś 15zł
          microswitche, buzer, pierdoły 10zł.

          To tyle jeżeli chodzi o komputer. Faktycznie powyżej 100zł.

          Co do tego zdania:
          “Teraz każdy idzie na łatwiznę i zamiast się chociaż trochę przyłożyć, zaprojektować i wytrawić płytkę, to tylko łączy prowizorycznie moduły, za które w dodatku z reguły się przepłaca.”

          Żal mi to komentować… Nad projektem siedziałem prawie dwa miesiące, napisałem w sumie około 3 000 linii kodu. Testy trwały prawie miesiąc, do tego jest obszerna instrukcja i otwarty kod dla sterownika. To wszystko za darmo… Ręce opadają.

          Odpowiedz
          • wez sie przyłóż i wytraw sobie płytke i nie marudź
            zrób 10 sztuk sprzedaj i ciesz się
            gderać każdy potrafi
            masz problem jakiś, ktoś ci każe robić albo czytać to
            nie pasuje kliknij krzyżyk w rogu ekranu i po sprawie

            Odpowiedz
        • te moduły nie są wcale drogie jak przeliczysz ile czasu wło żysz w zrobienie takiego i to ze musisz mieć wyposażone stanowisko elektroniczne , a poza tym jaka różnica czy atmega czy arduino?

          Odpowiedz
        • Muszę mojego starszego się podpytać o koszty jego sterownika do akwarium. Robił od zera prototypując na płytce ATMega16v2.

          Aczkolwiek wydaje mi się że wyszedł Ci naprawdę tanio.

          Myślałeś żeby dołożyć jakiś przetwornik ciśnienia i dorobić sterowanie cyrkulatorów w dziedzinie ciśnienia i czasu (cykl dobowy)?

          Odpowiedz
  • Bardzo fajny opis. Myślałem od jakiegoś czasu o zrobieniu czegoś podobnego na Arduino, ale nie znam się jeszcze na tym, choć ogólne pojęcie mam. Ciekaw jestem jak realizujesz karmienie? Przerobiłeś jakiś gotowy karmnik?

    Zimny

    Odpowiedz
    • Funkcja karmienia działa jak “Mode Feed” w kontrolerach tunze czy jebao. Karmiąc korale szczególnie niefotosyntezujące dobrze jest wyłączyć cyrkulację, żeby zwierzaki miały czas na konsumpcję. Nie mam “karmnika” automatycznego, a nawet zrobiłem sobie urządzenie, które pozwala mi karmić każdego korala z osobna “do mordki” bez moczenia rąk :)

      Odpowiedz
  • Sprytne, atmega 32u4 kilka elementów i już można sprzedawać gotowe moduły. Jeszcze tylko testy trzeba przeprowadzić. Pytanie do autora kiedy gotowy sterownik będzie w sprzedaży i czy będzie posiadał moduł bluetooth?

    Odpowiedz
    • Aplikacja i kod pod arduino jest dostępny ZA DARMO dla każdego, kto zechce go używać. Części również są ogólnie dostępne, więc można go szybko sklecić (problem w PL jest z modułem przekaźników ssr, można go zastąpić modułem wykonawczym na triakach za cztery dychy). Zarabiać na sterowniku nie mam zamiaru. Natomiast w miarę możliwości i wiedzy, staram się pomagać w złożeniu, programowaniu itp. Testy trwają już od kilku miesięcy, AQma obsługuje już kilka baniaków. Co do bluetooth to moduł na ebayu kosztuje 1$ :) Aplikacja na widows komunikuje się przez USB, ale jest to wirtualny COM, wystarczą więc odpowiednie sterowniki i heja :)

      Odpowiedz
  • Fajny projekt .
    A możesz go rozwinąć i np. wzbogacić o wyświetlacz na którym będą wyświetlane czynności które w danej chwili wykonuje komputer ?

    Odpowiedz
  • Moduł doładowuje baterię. A baterie z reguły nie lubią być doładowywane :)
    Możesz wymienić baterię na akumulator guzikowy LIR2032 (allegro albo zegarmistrz).

    Odpowiedz
  • No to już się wyjaśniło. Zamiana baterii na akumulator to żaden problem. Tyle że aku kosztuje więcej niż cały moduł :). W innym swoim projekcie magu tj. http://magu.pl/aqma-led-control użyłeś zegara RTC DS3231, czy ten moduł też ma takową przypadłość? A może jego można używać z bez zamiany na akumulator?
    Przy okazji zapytam o w/w projekt. Jest on przewidziany na sterowanie 6-cioma kanałami. Czy można wykorzystać go do sterowania 4-ma? Bo takową lampę LED właśnie buduję.

    Odpowiedz
  • Sporo osób (często nieświadomie) używa zegarków ze zwykłymi bateriami. Nigdy nie słyszałem o żadnym wypadku z tym związanym. Jednak polecam akumulator. Co do lampy, to oczywiście możesz użyć sterownika do kontroli czterech kanałów. Jeżeli będziesz dorzucał bluetooth to pamiętaj o konwerterze napięć.

    Odpowiedz
    • “w jaki sposób podłączyć pin PWM z arduino z DIM w driverze led.”
      Nie bardzo rozumiem… Przewodem?
      Pamiętaj, żeby połączyć masy Arduino i zasilania drivera.

      Odpowiedz
  • Już wszystko OK. Jeśli ktoś jest laikiem w kwestii elektroniki to dopytuje o wszystko, a trywialne i oczywiste dla innych sprawy są dla niego problemem. Zmyliły mnie oznaczenia PWM i DIM, niektóre drivery mają DIM a inne PWM. Nie wiedziałem, że nazwy są tożsame. Mój ma DIM i nie byłem pewny czy mam PWM w raduino podłaczyć do DIM drivera. Prześledziłem kilka tematów związanych z budową lampy LED sterowanej arduino. Wszędzie nikt nic nie wspominał jak driver led podłączyć do arduino, żeby symulować zmierzch i świt. A fotek nie było, bo wyparowały. W temacie na http://nano-reef.pl o dwukanałowej lampie Twojego autorstwa znalazłem potrzebne mi wskazówki. Podłączyłem zatem pin DIM drivera, którego posiadam z PWM arduino i wszystko zadziałało. Szperając w internecie natknąłem się na wspomnianym nano-ref inne Twoje projekty. Między innymi sterowanie komputerem akwariowym z wykorzystaniem www. Można zapytać jak daleko zaawansowane są prace nad tym projektem? Oraz czy podłączając do arduino moduł bluetooth w projekcie lampy led 6-cio kanałowej będzie możliwość sterowania nią z wykorzystaniem tego medium?
    I chyba już ostatnie pytanko, w jaki sposób najlepiej można kontaktować się z Tobą, w sprawie twoich projektów? Planuję bowiem zbudować własny komputer do akwarium słodkowodnego. Analizując różne projekty Twoje najbardziej mi odpowiadają. Musze je jednak zmodyfikować bo akwarium słodkowodne ma inną specyfikę niż morskie. Chciałbym zatem od czasu do czasu zapytać co i jak skonfigurować i połączyć.

    Odpowiedz
  • witam a ja poszukuje coś podobnego tylko chciałbym zastąpić pięć sterowników czasowych w jeden sterownik na arduino tylko np na 6 lub 8 przekazników czy ten program na win da sie tak przerobić

    Odpowiedz
  • Czy można prosić o fotki jak ty to upchałeś w tej puszce? Tak przy okazji projekt rewelacja! a największą rewelacją jest to że chcesz się nim dzielić. Mam nadzieję że durne komentarze nie zniesmaczą Cię do dalszego rozwoju projektu. Bardzo, bardzo dziękuję.

    Odpowiedz
  • Magu, dobra robota!
    Możesz rozwinąć czemu nie należy używać przekaźników magnetycznych? Mikrokontrolery za nimi nie przepadają (dzieją się jakieś cuda z prądem)?

    Odpowiedz
  • Dziękuję za projekt, osobiście przymierzam się do budowy sterownika do akwa słodkowodnego, mam ambicje i ochotę sam po kolei dostawiać kolejne opcje jednak Pana projekt pozwoli mi podejrzeć jeśli utknę na etapie samego algorytmu w konfrontacji z samym arduino:) Samemu przynajmniej będzie więcej zabawy, jeszcze raz dzięki za wstawkę i chęć podzielenia się własną inwencją.

    Pozdrawiam.

    Odpowiedz
  • Projekt rewelacja. Wdrożyłem go nawet u siebie klasopracowni szkolnej. Na lekcjach budownictwa. Akwarium w klasie też jest, wszystko na aQmie oczywiście.

    Odpowiedz
  • Witam
    Również zbudowanej sterownik oparty o Pana projekt i jeszcze raz chciał bym podziękować z udostępnienie swojej pracy dla innych.
    Ponieważ do tej pory używałem 1 kanału pwm do oświetlenia nocnego, a buduje lampkę na Power LED które maja zastąpić świetlówki, mam pytanie odnośnie sterowania driverow LED sygnałem pwm. Zasilanie driverow LED jest z innego zasilacza niż arduino, ale masy z tego co doczytalem muszą być połączone. Nie jest to zagrożeniem dla arduino, ponieważ, nie mamy żadnej optoizolacji?

    Odpowiedz
      • Witam, mam jeszcze jedno pytanie odnośnie sterownika. Projekt byl trochę przerobiony, bo skorzystałem z gotowej obudowy i zasilacza od starego dekodera satelitarnego cyfry +marki Philips. Poza tym przerobiłem modul avt z triakami na 4 kanały na prąd stały które sterują dolewką i dozowaniem, pozostałe 4 pozostaly na 230v. Wyświetlacz kanalow wykorzystałem jako miernik temp na lm35. Niestety podejrzewam, że zastosowany zasilacz ma za mała wydajnosc prądową., moje pytanie brzmi, jaki zasilacz zastosował Pan w swoim sterowniku, mam na myśli zasilanie arduino i pomp dozujących.

        Odpowiedz
  • Witam. Czy ten sterownik potrafi np: w ciągu doby wyłączyć filtr powierzchniowy na np 40min tak aby w tym czasie automatycznie uruchomiło się karmienie, po czym ponownie uruchomić filtr? Czy planujesz może przystosować go pod akwarium słodkowodne? Przydał by się pomiar temperatur, ph oraz uruchomienie np wiatraków gdy temperatura osiągnie np 28 stopni. Tak na marginesie, przywracasz mi wiarę w ludzi kolego. Masz talent i umiejętności powyżej przeciętnego człowieka i potrafisz się tym dzielić. Dziękuję za wstawkę i oby tak dalej. Pozdrawiam.

    Odpowiedz
  • Witam. Czy ten sterownik potrafi np: w ciągu doby wyłączyć filtr powierzchniowy na np 40min tak aby w tym czasie automatycznie uruchomiło się karmienie, po czym ponownie uruchomić filtr? Czy planujesz może przystosować go pod akwarium słodkowodne? Przydał by się pomiar temperatur, ph oraz uruchomienie np wiatraków gdy temperatura osiągnie np 28 stopni. Tak na marginesie, przywracasz mi wiarę w ludzi kolego. Masz talent i umiejętności powyżej przeciętnego człowieka i potrafisz się tym dzielić. Dziękuję za wstawkę i oby tak dalej. Pozdrawiam.

    Odpowiedz
  • Czyli rozumiem że musiało by to być dodatkowe urządzenie?. W akwa(głównie aulonocara) utrzymuje mi się stale 25 stopni i nie posiadam grzałki. Większy problem jest z za wysoką temperaturą. Szczególnie latem. Nie zawsze niestety jestem w domu by zareagować. Zdarzało się że temperatura rosła do 33 stopni. Ok dziękuję za odpowiedź będę szukał dalej rozwiązania. Pozdrawiam.

    Odpowiedz
    • Tak, ale… Mega nie potrafi tak szybko obsługiwać komunikacji USB, więc w linii 179 (v1.1.2) musisz usunąć znaki komentarza przy delayu.
      ” // Odkomentuj delay, jezeli uzywasz MEGA 2560, UNO, NANO!!!!!!!!!!!!!!!!!!!!!!!!!!
      // delay(4);”
      Druga sprawa, musisz uwolnić piny RX i TX, inaczej nie dasz rady skomunikować się ze sterownikiem. Mega nie ma emulowanego seriala.

      Odpowiedz
      • magu: Witam
        Załadowałem kod do mega2560. Odkomentowałem linie z deley(4); i zmieniłem piny RX iTX na inne. Komunikacja sterownik komputer jest. Timery dają się programować z aplikacji na kompie i działają prawidłowo, ale przy próbie ustawienia pomp, pwm albo karmienia wyskakuje komunikat “Aqma: Błędne dane.” Tak jak Pisałeś w manualu próbowałem pokonfigurować wszystkie obwody, żeby zapisały się właściwe dane w Eeprom, ale nic to nie dało. Nie mogę rozgryźć gdzie jest przyczyna że TIMERY dają się programować a pozostałe ustawienia nie.
        Pozdrawiam

        Odpowiedz

Odpowiedz

anuluj

Masz uwagi?