Witam.
Chcę zaprezentować wam jeden z moich szybkich projektów, jakie ostatnio skonstruowałem. Jest nim oświetlenie części pokoju poprzez taśmę LED na diodach WS2812B. Aby było ciekawiej i łatwiej nią sterować wykorzystałem opcję sterowania przez WiFi :)
Potrzebne materiały :
- Taśma LED WS2812 (liczba diod na metr, oraz długość taśmy każdy musi wybrać według swojego zapotrzebowania)
- Moduł NodeMcu v3
- Kabel USB-microUSB
- Wtyk i gniazdo USB (opcjonalnie)
- Chęci do pracy :)
ZACZYNAMY BUDOWĘ !
1)HARDWARE
Pierwszym co należy zrobić jest docięcie naszej taśmy na potrzebny nam odcinek. Taśmę można odcinać w wyznaczonych miejscach, które zaznaczyłem na poniższym zdjęciu czerwoną linią.
Następnym krokiem jest policzenie ile diod mamy na naszym odcinku taśmy którego będziemy używać, gdyż będzie nam to potrzebne przy konfiguracji oprogramowania.
Teraz możemy połączyć nasz układ według schematu:
Jako zasilanie naszej taśmy możemy podpiąć zasilacz/akumuator o napięciu 5V lub skorzystać z pinu VU na płytce NodeMCU. Jeżeli mamy zamiar korzystać z zasilania z płytki to należy sprawdzić pobór prądu z naszego odcinka taśmy, aby nie był za duży. Pamiętaj aby masy z zasilacza i NodeMCU były połączone ! Pin sterujący taśmą możemy sobie wybrać sami w oprogramowaniu, do czego dojdziemy za chwilę.
Ja u siebie zastosowałem następujące rozwiązanie: Do taśmy dolutowałem 3 żyły przewodu zakończonego wtykiem USB. Natomiast do NodeMCU wpiąłem 3 wtyki żeńskie na raster 2,54mm, a z drugiej strony dołączyłem gniazdo USB. Wystarczy wtyczkę od taśmy i gniazdo od NodeMCU spiąć ze sobą, a samo NodeMCU podpiąć kablem microUSB-USB do jakiegoś źródła zasilania (np. komputer)
2) SOFTWARE
Cały projekt jest ogólnodostępny pod nazwą McLighting v2. Całe oprogramowanie do sterowania naszą taśmą można pobrać z https://github.com/toblum/McLighting
Pliki do pobrania wrzucę również pod projektem.
Pierwszym krokiem, który musimy zrobić jest instalacja bibliotek ESP8266 w ArduinoIDE.
Wejdź w Plik<Preferencje
W zaznaczonym na czerwono polu dodaj : http://arduino.esp8266.com/stable/package_esp8266com_index.json
Następnie wejdź w Narzędzia<Płytka<Menedżer płytek i wyszukaj “esp” i zainstaluj bibliotekę.
Teraz przejdź do Narzędzia<Płytka i wybierz płytkę “NodeMCU 1.0 (ESP-12E Module)”, potem ustaw częstotliwość “CPU frequency na 80MHz”, Flash Size „4M (1M SPIFFS)”, prędkość 115200 i wybrać swój port COM z podłączonym układem.
Czas na dodanie bibliotek potrzebnych do prawidłowej kompilacji w ArduinoIDE. Wszystkie biblioteki będą dostępne w załączniku do pobrania. Trzeba tylko wejść w Szkic<Dołącz Bibliotekę<Dodaj Bibliotekę .ZIP i dodać wszystkie biblioteki po kolei.
W końcu możemy przystąpić do konfiguracji oprogramowania do naszych potrzeb :)
Wejdź do pobranego folderu McLighting-master<Arduino i odpal program McLighting w ArduinoIDE. Przejdź teraz do zakładki definitions.h i wpisz swoje parametry wg. komentarzy obok:
1 2 3 4 5 6 7 8 9 |
// Neopixel #define PIN 5 // Wpisz pin, którego bedziesz używał, do sterowania taśmą #define NUMLEDS 24 // Wpisz obliczoną wcześniej liczbę diod na twoim odcinku taśmy const char HOSTNAME[] = "ESP8266_01"; //Nazwa ESP w sieci WiFi, najlepiej zostawić. #define ENABLE_OTA // Jeśli nie używasz Arduino OTA, to możesz usunąć tę linijkę #define ENABLE_MQTT // Jeśli nie masz konta MQTT, to możesz usunąć tę linijkę |
1 2 3 4 5 6 7 |
uint32_t autoParams[][4] = { // kolor, prędkość, tryb, czas (sekundy) {0xff0000, 200, 25, 5.0}, // multi strobe red for 5 seconds {0xff0000, 200, 1, 5.0}, // blink red for 5 seconds {0x00ff00, 200, 3, 10.0}, // wipe green for 10 seconds {0x0000ff, 200, 11, 5.0}, // dual scan blue for 5 seconds {0x0000ff, 200, 42, 15.0} // fireworks for 15 seconds }; |
W kodzie powyżej, możemy dodać efekty wg. schematu do trybu automatycznego na naszej stronie ze sterowaniem.
Jeśli już ustawiliśmy wszystkie parametry, należy skompilować program i załadować go do NodeMCU.
Następnym krokiem jest połączenie ESP8266 z naszym punktem WiFi. Na naszym komputerze lub smartfonie należy wejść w listę dostępnych sieci WiFi. Naszym oczom powinna się ukazać sieć pod nazwą ESP8266_01 (chyba, że zmieniliśmy ją na inną wcześniej w ustawieniach). Łączymy się z tą siecią i powinna uruchomić nam się automatycznie strona na której należy wpisać nazwę routera i ewentualne hasło do niego.
Po wpisaniu klikamy Save
Możemy przystąpić do ostatniego kroku związanego z oprogramowaniem czyli wysłaniem strony internetowej do systemu SPIFFS.
Przejdź do strony http://NAZWA TWOJEGO ESP8266_LUB_JEGO IP/upload
IP i nazwę możesz znaleźć po uruchomieniu portu szeregowego.
Powinien pojawić się proste okno, do wrzucenia potrzebnego pliku.
Prześlij plik index.html z katalogu “McLighting \ clients \ web \ build”
MOŻEMY JUŻ URUCHOMIĆ NASZĄ STRONĘ ! :)
Kolor oświetlenia możemy wybrać z kółka widocznego powyżej, lub kliknąć zakładkę Modes i wybrać jeden z interesujących nas efektów świetlnych. Możemy tam również ustalić poziom jasności, prędkość efektu, lub manualnie dobrać kolory.
Taśma przyklejona nad biurkiem świetnie się sprawdza zarówno jako kolorowe oświetlenie ocieplające wizerunek pokoju, jak i białe oświetlenie robocze.
Dziękuję za uwagę !
Pliki załączone do artykułu:
- arduinowebsockets-master.zip
- wifimanager-master.zip
- ws2812fx-master.zip
- adafruit_neopixel-master.zip
- pubsubclient-master.zip
- mclighting-master.zip
WooW super sprawa dzięki, a orientujesz się co trzeba było jeszcze dokupić do tego żeby nasze diody grały pod muzykę z PC, chciałbym zrobić coś takiego ale z możliwością grania pod muzykę ;)
Można dokupić mikrofon i przerobić oprogramowanie, żeby np. sterowało jasnością w zależności od impulsu dźwięku. Jeśli byś miał więcej basu w piosence, to diody by zwiększały swoją jasność i wyszedłby całkiem fajny efekt migania pod rytm muzyki :)
Fajnie by było jakby ktoś tutaj opisał tego typu projekt, niby jest tego dużo na yt i wszędzie, ale jednak nie ma tutka step by step :P
Jak znajdę wolną chwilę, to wezmę się za to i opiszę to na Majsterkowo :)
Bardzo fajny jak i praktyczny projekt ;) Bardzo ciekawe rozwiązanie z tym kabelkiem USB.
Dzięki :)
“Powinien pojawić się proste okno, do wrzucenia potrzebnego pliku.”
Jak ma wyglądać to proste okno? bo szczerze mówiąc tutaj utknąłem…
Po wpisaniu IP w przeglądarkę wyskakuje mi tylko
“File Not Found
URI: /
Method: GET
Arguments: 0”
Dobra już rozumiem swój bład… nie ważne… wszystko jest idealnie opisane :P
Jeśli już sobie ze wszystkim poradziłeś to się cieszę, a jak nie to pisz. Chętnie pomogę :)
Postanowiłem sobie zrobić podświetlenie wnętrza obudowy.
Jak wiadomo wincyj ledów to +15 FPSów do każdej gry :P
Wszystko działa bez zarzutu, świetny poradnik!
Cieszę się, że coś mój poradnik ci pomógł :)
Ogólnie zastosowanie w obudowie PC też jest fajnym pomysłem :)
I z tego co słyszałem to można wyciągnąć nawet +20fpsów :)))
Pozdrawiam
Cześć – możecie mi coś podpowiedzieć do źle robię, że nie potrafię sobie poradzić z odpaleniem tej aplikacji?
Paweł
Cześć, może mnie ktoś podratować?
Po wgraniu i ustawieniu jako sieć publiczna nie wyskoczyło mi okienko do wgrania pliku “index.html”.
Sieć jest widoczna, ale nie ma szafy fraficznej.
Po połączeniu się z http://192.168.4.1/upload
widnieje:
“File Not Found
URI: /upload
Method: GET
Arguments: 0”
Dzięki za wszelką pomoc.
Jeden z kolegów miał też z tym samym problem ale – DLACZEGO NIE JEST TO OPISANE JAK NAPRAWIŁEŚ SWÓJ BŁĄD?
Cześć, ja jakoś nie miałem żadnych problemów z uruchomieniem tego. Pokaż jakiegoś screena z tym z czym masz problem.
Możesz wybrać plik do wgrania?
Cześć, robię tak samo jak w opisie autora, ale nie mogę załadować stronki na http://192.168.4.1/upload.
Może jest gdzieś na sieci filmik pokazujący co i jak zrobić – ja nie znalazłem.
Masz takie okno jak na zdjęciu czy nie ?
Jak nie odpowiesz na pytania to nikt Ci niestety nie pomoże :/
przy kompilacji wywala mi poniższy błąd:
Błąd kompilacji dla płytki LOLIN(WEMOS) D1 R2 & mini.
Jakieś pomysły co może być powodem?
Spróbuj może na innej płytce wgrać program
Projekt fajny, kiedyś miałem to zrealizować ale zmieniłem plany i zbudowałem swój sterownik światła. Była wersja McLighting v2 , w której była implementacja ArtNet i w łatwy i szybki sposób można było sterować efekty muzyką.
Zastanawiam się czy nie opublikować sterownika jaki popełniłem, sterowanie ws2811/ws2812 czy też zwykłymi ledami rgb czy rgbw
nie ma tu problemów, konfiguracja dla ESP01 czy ESP07 błyskawiczna. I co ważne ilość diod można zmieniać już po zaprogramowaniu ESP. Własny soft po PC i pod androida. Zaimplementowany protokół E1.31 co daje nam możliwość stworzenia matrycy z ws2812 i tworzenia niesamowitych efektów np takich https://www.youtube.com/watch?v=08WVN6Eb5dA. To była tablica na zamówienie.
Masz jakieś źródło do tej wersji McLighting z sterowaniem muzyką?
Witam.
Mam niestety kilka elementarnych pytan/ nie mam doswiadczenia z ESP…:
Nie bardzo rozumiem struktury tego pobranego projektu.
– Czy do ESP trzeba zaladowac plik definitions.h? W Arduino IDE otworzyc mozna plik z rozszerzeniem ino. Czy zmienic rozszerzenie z h na ino?
– Co robimy z plikiem McLighting.ino?
– Dysponuje teraz modulem Nodemcu z ESP12N, co powinienem zrobic, wybrac Nodemcu 0.9 ?
No coz zamalo praktyki, juz widze zakladki “.h” po otwarciu McLighting.ino….
Kuba Klimczak
Mam taki problem: https://majsterkowo.pl/forum/viewtopic.php?f=48&t=7615
Jak go rozwiązać?
A da sie normalnie sterować kolorami przez stronę ?
Problem był taki, że miałem za słabe zasilanie. Kupiłem zasilacz 5V/18A 90W Mean Well LRS-100-5 i wszystko działa, 5m ledów potrzebowało takiego zasilania. :D
Kuba Klimczak fajnie by było gdybyś zrobił jeszcze projekt rozbudowy o moduł mikrofonu, by ledy mogły “migać”, zmieniać jasność w rytm muzyki.
witam mam problem taki że nie moge wgrać bibliotek mclightning ktoś pomoże