Chytrá WiFi zásuvka Sonoff S26
Chytrá domácnost umožňuje ovládat elektrické spotřebiče na dálku. A přesně to umožní zásuvka Sonoff S26.
Arduino RGB LED modul je výstupní modul nejen pro Arduino. Tento modul obsahuje vysoce svítivou SMD LED diodu typu 5050 a pro zjednodušené ovládání se zároveň na modulu nachází čip WS2811. Díky tomuto čipu je možné zapojit do série stovky či tisíce modulů a řídit barvy každého z nich. A to vše pouze pomocí dvou napájecích a jednoho datového vodiče.
Co se týká napájecího napětí, tak pro modul WS2811 je doporučena hodnota +5 V. Proudový odběr se může vyšplhat až na 60 mA při plné svítivosti, kdy každá dioda odebírá přibližně 20 mA. Rozměry modulu jsou 1,8 x 1,3 cm.
Pro úspěšné propojení RGB LED modulu a Arduino desky propojíme celkem 3 vodiče. Připojíme 5V na +5V Arduina, DI na pin D6 a GND na zem Arduina. Pro digitální pin lze použít také jiný volný pin. Změnu je ale nutné provést také na začátku programu. Pokud budeme chtít zapojit více modulů do řetězce, stačí za sebou propojovat DI a DO piny na modulech a do Arduina připojit pouze pin DI na prvním modulu jako v tomto návodu.
Pro úspěšné nahrání uvedeného ukázkového kódu je nutné stáhnout a naimportovat knihovnu Adafruit_NeoPixel, návod, jak na to je uveden zde.
Ukázkový kód obsahuje na svém začátku připojení potřebné knihovny, nastavení čísla propojovacího pinu a nastavení počtu LED modulů. Poté provedeme inicializaci LED modulů z knihovny.
V podprogramu setup je v prvním kroku zahájena komunikace s LED modulem. Jako další je pro ukázku uvedeno postupné nastavení tří základních barev na LED diodě – červené, zelené a modré (RGB). Barvy jsou nastaveny pomocí podprogramu nastavRGB, kdy první tři parametry odpovídají RGB spektru a poslední parametr určuje číslo LED diody, kterou chceme ovládat. Po každé barvě následuje krátká pauza po dobu 500 milisekund.
Nekonečná smyčka loop obsahuje tři vnořené for smyčky, které prochází dohromady 5^3=125 kombinací barev, pokaždé s krátkou pauzou pro rozeznání jednotlivých barev.
Zmíněný podprogram nastavRGB má čtyři vstupní parametry – tři základní barvy RGB a číslo ovládané RGB LED diody. Jako první krok si vytvoříme proměnnou pro uložení barvy a následně do ní načteme barevný kód ze zadaných parametrů. V dalším kroku si nastavíme na danou LED diodu její barvu a posledním příkazem aktualizujeme barvy na všech připojených modulech.
// RGB LED modul WS2811 // připojení potřebné knihovny #include <Adafruit_NeoPixel.h> // nastavení propojovacího pinu #define pinDI 6 // nastavení počtu LED modulů #define pocetLED 1 // inicializace LED modulu z knihovny Adafruit_NeoPixel rgbWS = Adafruit_NeoPixel(pocetLED, pinDI, NEO_GRB + NEO_KHZ800); void setup() { // zahájení komunikace s LED modulem rgbWS.begin(); // nastavení červené barvy na první LED diodu nastavRGB(255, 0 , 0 , 1); delay(500); // nastavení zelené barvy na první LED diodu nastavRGB(0 , 255, 0 , 1); delay(500); // nastavení modré barvy na první LED diodu nastavRGB(0 , 0 , 255, 1); delay(500); // nastavení černé barvy na první LED diodu = vypnutí nastavRGB(0 , 0 , 0 , 1); delay(500); } void loop() { // pomocí tří smyček v sobě dojde k postupnému nastavení různých // kombinací barev z RGB spektra, vždy je maximální svítivost 255 // rozdělena na 5 stupňů - celkem tedy 5^3 = 125 kombinací for (int red = 0 ; red < 255; red += 255/5) { for (int green = 0 ; green < 255; green += 255/5) { for (int blue = 0 ; blue < 255; blue += 255/5) { // nastavení barvy na RGB LED modulu podle // aktuálních proměnnýc ve smyčkách nastavRGB(red, green, blue, 1); // krátká pauza mezi barvami delay(200); } } } } void nastavRGB (byte r, byte g, byte b, int cislo) { // vytvoření proměnné pro ukládání barev uint32_t barva; // načtení barvy do proměnné barva = rgbWS.Color(r, g, b); // nastavení barvy pro danou LED diodu, // číslo má pořadí od nuly rgbWS.setPixelColor(cislo-1, barva); // aktualizace barev na všech modulech rgbWS.show(); }
Po nahrání ukázkového kódu do Arduino desky s připojeným RGB LED modulem dostaneme například tento výsledek:
Arduino RGB LED modul WS2811 je jednoduše použitelný modul, který lze zapojovat do velmi dlouhých řetězců diod. Zde je pak obrovská výhoda v adresování díky použitému čipu WS2811, kdy můžeme pouze pomocí tří pinů ovládat klidně stovky či tisíce LED diod a nastavovat různé barvy každé z diod jednotlivě. U dlouhých řetězců je ale nutné si dávat pozor na přizpůsobení napájení z ohledu proudového odběru a na pokles napětí na delší vzdálenosti propojení.
Seznam použitých komponent:
https://dratek.cz/arduino/974-arduino-uno-r3-atmega328p-1424115860.html
https://dratek.cz/arduino/1192-arduino-rgb-led-modul-ws2811-1456048873.html
Chytrá domácnost umožňuje ovládat elektrické spotřebiče na dálku. A přesně to umožní zásuvka Sonoff S26.
e-Paper displeje už jsou dostupné i pro bastlení za rozumné ceny a pro jejich ovládání se hodí tento Driver.