mathom Report post Posted October 10, 2016 (edited) 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. 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: Edited November 3, 2016 by mathom (see edit history) Quote Moja rafka 247L Arduino PWM Sterownik DIY LED Share this post Link to post Share on other sites
lukaszt0 Report post Posted October 10, 2016 - 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? Quote Share this post Link to post Share on other sites
inn0vat1on Report post Posted October 10, 2016 Super, że mamy kolejnego magika na forum. Quote The more you know, the less you don't know. Share this post Link to post Share on other sites
mathom Report post Posted October 10, 2016 Tak oczywiście sterowanie dotykowe. Quote Moja rafka 247L Arduino PWM Sterownik DIY LED Share this post Link to post Share on other sites
lukisc Report post Posted October 10, 2016 A jest możliwość dodania włącz wyłącz np. do swietlówek T5 3 kanały Pozdrawiam Łukasz Quote 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 Share this post Link to post Share on other sites
mathom Report post Posted October 10, 2016 Tak, wystarczy zamiast driverow led dać przekaźniki 230v i zmienić obsługę wyjść w sofcie. Quote Moja rafka 247L Arduino PWM Sterownik DIY LED Share this post Link to post Share on other sites
lukaszt0 Report post Posted October 10, 2016 Podasz do jakich złączy podłączyć termometry? Zobacz PW Quote Share this post Link to post Share on other sites
mathom Report post Posted October 10, 2016 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. Quote Moja rafka 247L Arduino PWM Sterownik DIY LED Share this post Link to post Share on other sites
mathom Report post Posted October 23, 2016 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. Quote Moja rafka 247L Arduino PWM Sterownik DIY LED Share this post Link to post Share on other sites
mathom Report post Posted October 26, 2016 Sterownik wrzucony na github: https://github.com/mathompl/*** Quote Moja rafka 247L Arduino PWM Sterownik DIY LED Share this post Link to post Share on other sites
mathom Report post Posted November 1, 2016 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. Quote Moja rafka 247L Arduino PWM Sterownik DIY LED Share this post Link to post Share on other sites
mathom Report post Posted November 3, 2016 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 Quote Moja rafka 247L Arduino PWM Sterownik DIY LED Share this post Link to post Share on other sites
bienki Report post Posted November 6, 2016 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. Quote Share this post Link to post Share on other sites
Guest Report post Posted November 6, 2016 (...) 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 to "coś" z prawej pod zegarem - to bluetooth Quote Share this post Link to post Share on other sites
bienki Report post Posted November 6, 2016 (edited) No dobra, zalepiłem - przeoczyłem ten mały link na stronie . 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 to "coś" z prawej pod zegarem - to bluetooth Edited November 6, 2016 by bienki (see edit history) Quote Share this post Link to post Share on other sites
mathom Report post Posted November 8, 2016 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ę. Quote Moja rafka 247L Arduino PWM Sterownik DIY LED Share this post Link to post Share on other sites
mathom Report post Posted November 8, 2016 Działa zajedwabiście ramka z aliexpresu też pasuje: Quote Moja rafka 247L Arduino PWM Sterownik DIY LED Share this post Link to post Share on other sites
sq6kbr Report post Posted November 9, 2016 Dobra robota. Podaj link do maskownic jeśli możesz. Quote Share this post Link to post Share on other sites
mathom Report post Posted November 9, 2016 https://pl.aliexpress.com/item/3DSWAY-3D-Printer-Parts-White-2-8-3-5-LCD-Protective-Case-LCD-Cover-for-TFT/32639612283.html?spm=2114.13010608.0.0.JtqarN Quote Moja rafka 247L Arduino PWM Sterownik DIY LED Share this post Link to post Share on other sites
Gothmog Report post Posted November 10, 2016 (edited) 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. Edited November 10, 2016 by Gothmog (see edit history) Quote Akwa: 375l (1500x50x50), Sump 70l (70x40x40), Cyrkulacja: Jebao CP-55, Światło: QMaven 6600 + 2x80W, Ceramika, Piasek: 20kg Share this post Link to post Share on other sites
s.sienicki Report post Posted November 13, 2016 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? Quote Share this post Link to post Share on other sites
mathom Report post Posted November 13, 2016 (edited) 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. Edited November 13, 2016 by mathom (see edit history) Quote Moja rafka 247L Arduino PWM Sterownik DIY LED Share this post Link to post Share on other sites
s.sienicki Report post Posted November 13, 2016 (edited) 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. Edited November 13, 2016 by s.sienicki (see edit history) Quote Share this post Link to post Share on other sites
mathom Report post Posted November 13, 2016 (edited) 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); Edited November 13, 2016 by mathom (see edit history) Quote Moja rafka 247L Arduino PWM Sterownik DIY LED Share this post Link to post Share on other sites
mathom Report post Posted November 14, 2016 mam podejrzenie że może brakować sramu. Wrzuciłem na githuba wersję z wyrzuconą tablicą ściemniania do pamięci flash. Sprawdź czy na tej wersji jest ok. Quote Moja rafka 247L Arduino PWM Sterownik DIY LED Share this post Link to post Share on other sites