Dozownik nawozów do akwarium wersja 2.0 ;)

Opiszę teraz trochę menu a przy okazji wylezie funkcjonalność dozownika.

  1.  Ustaw czas – to wiadomo ;). W dozowniku zastosowałem moduł precyzyjnego zegara czasu rzeczywistego DS3231 który sterowany jest również szyną I2C. Zastosowałem bibliotekę Makuna RtcDS3231.h . Umożliwia ona dość proste ustawienie czasu w zegarze. Do czego potrzebny jest zegar czasu rzeczywistego chyba nie trzeba tłumaczyć 😉
    RtcDateTime currentTime = RtcDateTime(rok, mc, dz, g, m, s); //define date and time object
    
     Rtc.SetDateTime(currentTime); //configure the RTC with object
  2. Pokaz parametry – funkcja ta wyświetla parametry poszczególnych pomp.
    Na ekranie widać:
    – numer pompy
    – stan ON/OFF aktywna/nieaktywna
    – Start – o której godzinie poda nawozy
    – Dawka – ile mililitrów poda
    – Kb – kalibracja w ile sekund podaje 10 ml
    – Dni – w które dni tygodnia poda nawozy
    Tutaj można tylko podejrzeć parametry ustawia się je przez www.
  3. Kalibracja pomp
    Każdy dozownik należy skalibrować, Ja sobie wymyśliłem że będę mierzył czas podania przez pompę 10 ml czynnika i potem w programie przeliczę to na ml/s.
    Do tej czynności wykorzystałem dodatkowy przycisk umieszczony na kablu.

    A dlaczego na kablu? Kalibrację należy dokonać w warunkach rzeczywistej pracy sterownika. Czyli urządzenie znajduje się w szafce pod akwarium rurki natomiast wyprowadzone są do akwarium i mają około 1,5m + rurki z pojemników do pompek. Podkładam menzurkę pod przewód danej pompy i guzikiem na kablu włączam pompkę po osiągnięciu 10 ml puszczam przycisk  a mikrokontroler zapamiętuje czas w jakim pompka podała czynnik. No i stąd kabelek.
  4. Stan nawozów – system zapamiętuje oddzielnie pojemność każdego pojemnika oraz stan startowy nawozu i potem za każdym razem odejmuje podaną dawkę. W ten sposób można dość precyzyjnie określić poziom nawozów w pojemnikach.
  5. Manualne dozowanie – system umożliwia manualne podanie nawozów z zapisaniem stanu nawozów. Po wyborze pompy naciskając przycisk uruchamiamy wybraną pompę. System rejestruje ilość podanego nawozu.
  6. Zalewanie układu działa podobnie jak manualne dozowanie ale system nie rejestruje ilości podanego nawozu. Uruchamiana jest tylko pompa na czas naciśnięcia guzika.

No i cała filozofia.

Zostały jeszcze do opisania te linijki ledów RGB. Jako że jestem człowiekiem leniwym i wiem że nie będzie mi się chciało zaglądać do menu lub na www i sprawdzać poziom nawozów postanowiłem że wyświetle stan pomp i nawozów na linijkach diod RGB.

Górna linijka pokazuje stan pomp – zielona aktywna, czerwona nieaktywna.

Dolna linijka uwidacznia poziom nawozów w zbiornikach. Dioda zmienia kolor od zielonego -full, poprzez żółty, pomarańczowy do czerwonego – poniżej 15% stanu nawozu.

Diody te sterowane są przez układ WS2801 do sterowania nimi wykorzystałem bibliotekę Adafruit_NeoPixel.h . Wszystko ładnie opisane jest na stronie Adafruit jednak ja dodam coś co odkryłem empirycznie ;).  W programie należy stworzyć obiekty neopixel:

Adafruit_NeoPixel l_sts = Adafruit_NeoPixel(NUMPIXELS, P_D1, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel l_poj = Adafruit_NeoPixel(NUMPIXELS, P_D2, NEO_GRB + NEO_KHZ800);

gdzie P_D1 i P_D2 to piny do których są podłączone poszczególne linijki. Na początku inicjowałem te obiekty na końcu inicjacji obiektów (przed samamym setup{}) i niestety druga linijka led zupełnie nie reagowała na polecenia. Po przeniesieniu tych dwóch linii na sam początek kodu zaraz po ostatnim #includ wszystko zadziałało jak trzeba.

Widocznie biblioteka pogryzła się  z którą wcześniej użytą. WS2801 działa od 3V więc można sterować ledami wprost w NodeMCU.

Kilka fotek sterownika.

Zasilanie sterownika oparte jest na LM317 które ustawione jest na 10V. Pompki nominalnie zasilane są 12V jednak przy tym napięciu strasznie szybko podają co powoduje mocne falowanie czynnika w przewodzie, po zmniejszeniu napięcia do 10V pompki pracują zdecydowanie płynniej. Natomiast LM7805 stabilizuje napięcie 5V do zasilania NodeMCU i wyświetlacza.

3 myśli do „Dozownik nawozów do akwarium wersja 2.0 ;)”

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.