hamik190

29. díl – OctopusLAB
EDU_KIT1 – barevná RGB Led

Jako jeden ze základních zobrazovacích prvků využíváme plnobarevný modul typu WS2812. V knihovnách pro Arduino ho možná znáte jako Neopixel. Skládá se z trojice svítivých diod (RGB = RED, GREEN, BLUE) a z řídícího integrovaného obvodu.

Modul WS2812 (o rozměrech 5×5 mm) bývá předosazen v celé řadě variant. Namátkou vyberme Led pásek o různé hustotě diod i různých počtech (délkách). Dále krátký rovný modul s osmicí WS (ve spodní části obrázku), matici 4×4, kruh 12, 24 a další. My tento modul využíváme i samostatně, ale jeho největší výhodou je právě možnost řazení a vytváření větších celků za pomoci pouhých tří vodičů (napájení a datová linka). Zřetězené řídící obvody umožňují individuální adresování jednotlivých modulů, takže programově můžeme měnit barvu libovolné WS ledky pomocí indexu (čísla 0 až 7 na ukázce).

Prvních pár pokusů s RGB

Podrobněji se o knihovně pro Micropython rozepisujeme v naší dokumentaci:
https://docs.octopuslab.cz/basicdoc/#rgb.
Požadovaná barva jednoho modulu vzniká složením ze tří složek – RGB.
Když svítí všechny naplno, vidíme téměř bílou barvu, „černá barva“ je definována stavem nesvítí.

# inicializace RGB
from components.rgb import Rgb 
ws = Rgb(15)             # EDU_KIT1: BUILT_IN_RGB 
ws.color((255,0,0))      # (255,0,0) => RED 

import colors_rgb as rgb # definice barev
ws.color(rgb.BLUE)       # barvy dle názvu

WiFi lampička ovládaná mobilem

V tomto projektu využíváme modul se šestnácti WS ledkami (v matici 4×4). Pokud se připojíte mobilem ke stejné lokální síti, kde je ESP, uvidíte interaktivní webové stránky, které ESP generuje.

Na IP adrese (v našem případě 192.168.0.248) běží webový server.

Odkaz na aktuální zdrojový kód celého projektu:
https://github.com/octopuslab-cz/esp32-micropython-webserver-control.
Pokud vás projekt zajímá více, napište nám na info@octopuslab.cz.


Barvu světla určí příspěvek na Twitteru

Postupně se propracováváme ke komplexnějším ukázkám a toto je další příklad – využití API třetí strany (Application Programming Interface). Na odkaze http://api.thingspeak.com/channels/1417/field/2/last.txt uvidíte vždy poslední barvu (definována řetězcem #RGB), která byla publikována na Twitteru s hashtagem #cheerlights.

Nalezený řetězec „orange“ vrátí hexadecimální tvar barvy #FFA500.

Můžete využít i jinou aplikaci nebo si napsat vlastní, toto je pouze ukázka možnosti, kterou jsme zjednodušili na maximální možnou míru. K inicializaci RGB totiž stačí přidat připojení k wifi a pouhých pár řádek programu a WS ledka na Vašem ESP bude svítit barvou, která je aktuální (poslední uveřejněná).

...
from time import sleep
from utils.octopus_api import twitter_rgb

while True:
    # kouzlo Pythonu, vše podstatné na jednom řádku: 
    ws.color(twitter_rgb())
    # dotazujeme se každých 30 vteřin, rychleji to nedoporučujeme ->
    sleep(30)