Skocz do zawartości
mathom

A quaLED sterownik LED + termometry + LCD Nextion

Rekomendowane odpowiedzi

Witam

po zbudowaniu mojej lampy DIY i wrzuceniu do niej wyśmienitego softu MAGU zacząłem oczywiście ulepszać soft. Doszedłem do punktu gdzie od nowa napisałem sterownik zostawiając tylko kompatybilność bluetooth z AQMA by Magu.

0.jpg1.jpg2.jpg3.jpg4.jpg5.jpg6.jpg7.jpg8.jpg

Uwaga! Grafiki wykorzystane w sterowniku są ściągnięte z netu, oczywiście nie mam do nich praw autorskich, są dodane poglądowo do użytku prywatnego. Fajnie by było gdyby ktoś zrobił własne i się podzielił ;)

Sterownik mieści się (ledwo) na Arduino Nano i do wykorzystania pełnych możliwości wymaga:

Sprzęt:

- Arduino Nano

- zegar RTC z baterią

- moduł bluetooth

- 3 termometry cyfrowe DS18B20 - ja używam tych na sondzie (cena ok 10 zł / szt)

- 3x przekaźniki do sterowania obwodami wiatraków (moduły na allegro po 2 lub 4, cena 20-30 zł)

- dotykowy wyświetlacz Nextion 2.8" - ~16USD z wysyłką na Aliexpress. Wyświetlacz warto podłączyć przez przetwornicę (5v) lub osobnym zasilaczem. Wydajność prądowa nano jest za mała.

- (opcjonalnie) przetwornice napięcia step-down, ja używam tych z LCD i potencjometrem do zasilania wszystkiego z jednego zasilacza i płynnej regulacji obrotów wiatraków napięciem (cena 35 zl / szt)

Oczywiście wszystko będzie działało również bez termometrów, przekaźników i wyświetlacza.

Możliwości:

- obsługa 6 PWM (z modułem i2c do 70)

- obsługa 3 termometrów

- obsługa 3 przekaźników uruchamiających obwody wiatraków przy przekroczeniu zadanej temp.

- podobnie jak u Magu - płynne wschody i zachody, ale dodatkowo płynne ściemnianie/rozjaśnianie przy każdej zmianie mocy.

- logarytmiczne ściemnianie i rozjaśnianie do wyboru w ustawieniach (przyjemniejsze dla oka - UWAGA! eksperymentalnie - mogą być problemy, pracuję nad tym)

- dodatkowy program dostępny z menu głównego (np. do aklimatyzacji lub oświetlenia sumpa)

- możliwość wyłączenia światła, włączenia oświetlenia nocnego (płynne przejścia)

- uruchamianie wiatraków w zależności od temperatury

- pełna konfiguracja na LCD, w tym godziny pracy, czas wschodów itd, data i godzina, temperatury, adresy termometrów, czasów płynnego rozjaśniania itd. itp.

- ekran z godzinnym harmonogramem pracy

- wygaszacz ekranu z godziną i temperaturą wody

- tryb test

- wszystkie ustawienia w pamięci lampy

UWAGA! Ze względu na inną strukturę EEPROM przy pierwszym uruchomieniu nastąpi wyczyszczenie pamięci.

Todo:

- czas letni :)

Oprogramowanie:

- standardowe Arduino IDE, wymagane biblioteki w paczce

- Nextion Editor (https://nextion.itead.cc/download.html)

Wyświetlacz NEXTION:

- komunikuje się z Arduino przez UART (łącze szeregowe) - należy podłaczyć Rx (arduino) - Tx (nextion), Tx (arduino) - Rx (nextion)

- co ważne - nie mając wyświetlacza można przetestować soft w symulatorze w środowisku Nextion Editor (https://nextion.itead.cc/download.html). Wystarczy podłączyć lampę po USB (115200 baud). Symulator jest w pełni funkcjonalny.

Mam nadzieję że Magu nie obrazi się o przeróbki totalne jakie dokonałem w jego sofcie. Zachowana jest kompatybilność z AQMA w obsłudze przez Bluetooth w zakresie wspólnych opcji. Gdyby Wam się soft spodobał to myślę że można by poprosic Magu o dorobienie reszty ;)

Sterownik w wersji 1.0 więc błędy mogą być, będę się starał naprawiać na bierząco.

Link do softu:

https://github.com/mathompl/***

Okablowanie:

wiring.jpg

Edytowane przez mathom (wyświetl historię edycji)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

- dotykowy wyświetlacz Nextion 2.8" - ~16USD z wysyłką na Aliexpress.

- pełna konfiguracja na LCD, w tym godziny pracy, czas wschodów itd, data i godzina, temperatury, adresy termometrów, czasów płynnego rozjaśniania itd. itp.

Czyli można ją sterować dotykowo?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Super, że mamy kolejnego magika na forum.


The more you know, the less you don't know.

5a2103787c297b436c09ce400f180611u966a839.png

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

A jest możliwość dodania włącz wyłącz np. do swietlówek T5 3 kanały

Pozdrawiam Łukasz


375l z sumpem, Maxspect Gyre 150, 1x Jeba WP-25,Jebao DC 1200,Vertex Omega 180i,34kg skały, 6x 54W T5+ 60W Led multichipy, , auto dolewka, RO+DI

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Termometry łączy się z jednym pinem - jest w konfigu ***.h. Trzeba tylko dać rezystor np. 4.7k między sygnałem a vcc. Tutaj manual: http://tomczak.org.pl/index.php/dydaktyka/swbud/arduino-odczyt-termometru-cyfrowego/

został mały babol w kodzie (delay). wrzuciłem poprawioną wersję, link w 1 poście.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wrzucona nowa wersja, poprawione kilka bugów w tym jeden poważny w czytaniu temperatury.

Dodatkowo:

- logarytmiczny algorytm ściemniania/rozjaśniania działa

- uporządkowany kod

- możliwość wyłączenia obsługi bluetooth lub wyświetlacza

- obsługa eksperymentalna obsługa kontrolera PWM PCA9685 pozwalającego na podłączenie kilkuset kanałów PWM. W sterowniku na razie można wybrac czy kanał obsługiwany przez PWM arduino czy PCA9685. Dodatkowo dołożyłem obsługe +2 kanałów PWM w wyświetlaczu ( w sumie 8, można korzystać albo z arduino mega albo z PCA9685)

PCA9685 wygląda bardzo fajnie - na razie zamówiłem, nie testowałem, ale z lektury dokumentacji: ma swój zegar, nie trzeba cały czas utrzymywać napięcia na linii sygnałowej, wysyła sie tylko raz sygnał. Częstotliwość PWM do 1600HZ - ja osobiście mam problem z migającymi ledami białymi przy standardowej częstotliwości arduino. Podniesienie pomogło, ale mam nadzieję że ten driver będzie lepszm rozwiązaniem (a koszt to 3USD). I co ważne, komunikuje się z arduino po I2C, więc zwalniają się wszystkie wyjścia cyfrowe.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Uwaga! Dzieku lukaszt0 wykryliśmy buga w plikach nextiona. Pliki zapisane na komputerze z ustawionym wyższym DPI nie otwierają się poprawnie w komputerach z mniejszym i vice versa. Wrzuciłem 2 pliki demo dla 96dpi i 120dpi.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Podpiąłem wczoraj moduł PWM i2c PCA9685, taki:

https://www.aliexpress.com/item/16-Channel-12-bit-PWM-Servo-Driver-I2C-interface-PCA9685-for-arduino-or-Raspberry-pi-shield/32447354314.html?spm=2114.13010608.0.0.JfUXBO

Koszt 1,45USD z wysyłką :)

Moduł wpina się do arduino zamiast zegara RTC, a zegar wpina się szeregowo w wyjścia modułu (SDA-SDA, SCL-SCL, VIN-VIN, GND-GND)

Moduł ma same zalety:

- zwalnia się 6 pinów arduino

- 16 kanałów PWM na dzień dobry, zamiast 6 w arduino nano. Pozostałe można wykorzystać na dodatkowe drivery lub pompy dozujące. Są moduły oferujące większą liczbę kanałów.

- 12 bitowa rozdzielczość, czyli ściemnianie i rozjaśnianie zamiast 0-255 jest 0-4025 - widać różnicę w płynności, szczególnie we wschodach/zachodach

- regulowana częstotliwość działania (jedno polecenie), dzięki temu można łatwo wyregulować np. buczące drivery

- światło jest znacznie stabilniejsze, tj. u mnie zniknął efekt lekkiego migotania

- koszt praktycznie zerowy

Mój soft obsługuje moduł standardowo, wystarczy zmienić konfig .h

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Cześć.

Fajny projekt. W zasadzie każdy projekt jest fajny - zarówno Magu jak i twój. Twój ma jedną przewagę - nie trzeba odpalać kompa, żeby zmienić ustawienia lub po prostu zapalić lampy. Dla mnie rozwiązaniem problemu używania PC byłby telefon, który każdy przeważnie nosi w kieszeni. Eliminacja wyświetlacza i eliminacja konieczności użycia komputera za jednym zamachem. Wczoraj spotkałem się z kolegą - obaj mamy sterowniki z oprogramowaniem Magu i po krótkiej dyskusji doszliśmy do tego samego wniosku - brak obsługi przez Androida.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość

(...) obaj mamy sterowniki z oprogramowaniem Magu i po krótkiej dyskusji doszliśmy do tego samego wniosku - brak obsługi przez Androida.

założymy się ?

http://magu.pl/aqma-systemandroid

AQma_LED_2.jpg

to "coś" z prawej pod zegarem - to bluetooth

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

No dobra, zalepiłem - przeoczyłem ten mały link na stronie :blushing: . Od jutra testowanie. Ale i ekran bedzie po 13USD w piątek więc też kupię i spróbuję alternatywnego softu.

założymy się ?

http://magu.pl/aqma-systemandroid

AQma_LED_2.jpg

to "coś" z prawej pod zegarem - to bluetooth

Edytowane przez bienki (wyświetl historię edycji)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Oczywiście bluetooth działa jak w Aqmie, czyli dla max 6 kanałów PWM.

Mogę oczywiście wystawić inny interfejs po bluetooth który pozwoli na ustawienie większej liczby PWM + opcje dodatkowe jak w panelu lcd.

Problem jest inny - pomimo ostrej optymalizacji osiągnąłem sufit pamięci flash arduino nano. Bluetooth nie mieści się jednocześnie z obsługą Nextiona. Obsługa bluetooth zajmuje chyba ok 5kb - sam nie wiem dlaczego, jak będę miał chwilkę to się tym zajmę. Na razie rozwiązaniem jest Arduino Mega.

ps. dzisiaj doszedł LCD Nextiona i plastikowa ramka/maskownica na wyświetlacz, podłączę i zdam relację.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zamiast wielkiego Arduino Mega można zastosować takie cudo: http://www.ebay.com/itm/New-Small-Meduino-Mega2560-R3-Pro-Mini-ATMEGA16U2-Arduino-Mega2560-Compatible-/162264493523?hash=item25c7b7add3:g:-9cAAOSwyQtVnMbp

Ja planuje zrobić sobie sterownik na Raspbarry Pi Zero.

Edytowane przez Gothmog (wyświetl historię edycji)

Akwa: 375l (1500x50x50), Sump 70l (70x40x40), Cyrkulacja: Jebao CP-55, Światło: QMaven 6600 + 2x80W, Ceramika, Piasek: 20kg

156005748a1c0dfed1d13c2debaa7203u1054a16

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Chciałem wypróbować soft ale przy kompilacji dostaję błąd:

Nextion:680: error: 'discoverOneWireDevices' was not declared in this scope
s = discoverOneWireDevices ();
Nextion:701: error: 'listContains' was not declared in this scope
idxLed = listContains (SETTINGS.ledSensorAddress);
exit status 1
'discoverOneWireDevices' was not declared in this scope

Soft czysty prosto z GitHub-a jedynie co zrobiłem to doinstalowałem potrzebne biblioteki.

Co jest nie tak?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Włącz obsługę termometrów, nie przetestowałem tych definów wyłączających do końca.

Plik aq ual ed.h,

#define NO_TEMPERATURE

na

//#define NO_TEMPERATURE

od razu też w tym pliku ustaw sobie piny i flagi PWM zgodnie z komentarzem. Jest defaultowo ustawione na moduł PWM.

patch na githubie.

Edytowane przez mathom (wyświetl historię edycji)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dzięki kompiluje się

Jeśli chodzi o konfig to PWM_I2C od 1 do 8 dałem 0

i odremowałem

#define PWMS 8
#define PWM1_PIN 3
#define PWM2_PIN 5
#define PWM3_PIN 6
#define PWM4_PIN 9
#define PWM5_PIN 10
#define PWM6_PIN 11
#define PWM7_PIN 1
#define PWM8_PIN 2

Po wgraniu soft działa niestety wyglada to tak jakby arduino się restartowało co pewien czas.

Mogę poklikać na wyświetlaczu - przetestować kanały - testowo podpiąłem tylko 1 kanał pwm i zmiana wypełnienia działa.

Co może być przyczyną restartów?

Na sofcie Aqmy działa prawidłowo bez restartów więc hardware wydaje się być ok.

Oczywiście zasilanie zewnętrzne nie po USB / kabel odpięty.

Edytowane przez s.sienicki (wyświetl historię edycji)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Kanały 7 i 8 działają tylko na i2c chyba że masz arduino mega. Jeśli masz 1 kanał ustaw PWMS 1, albo przynajmniej PWM7_I2C i PWM8_I2C na 1.

co jaki czas jest restart i jak się objawia ? masz podpięty zegar RTC ? Możesz na początek spróbować wyłączyć watchdoga, w pliku aqua l ed.ino skomentuj wdt_enable(WDTO_4S);

Edytowane przez mathom (wyświetl historię edycji)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Ten wątek jest dość stary. Należy rozważyć rozpoczęcie nowego wątku zamiast ożywienia tego.

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.


  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wchodząc do serwisu Nano-Reef, zgadzasz się na warunki Warunki użytkowania.