Bezdrôtovo ovládané svietidlo: Rozdiel medzi revíziami
Zo stránky SensorWiki
Riadok 161: | Riadok 161: | ||
=== Výsledok === | === Výsledok === | ||
Výsledna aplikácia vyzerá tak : | Výsledna aplikácia vyzerá tak : | ||
[[Súbor:apppppppka.jpg | [[Súbor:apppppppka.jpg|300px]] | ||
Verzia z 19:13, 29. máj 2018
Autori: | Stanislav Hájek, Anastasiia Zavadska | |
Študijný odbor: | Robotika a kybernetika | 3. Bc. (2018) |
Opis projektu
Čo a Prečo?
Pre vytvorenie pracovnej atmosféry v kancelarii obyčajne vyberáme stolové lampy s prísnym lakonickým dizajnom, ale pre vlastnú domácnosť chceme vybrať nejaký elegantný, útulný model. Vo väčšine prípadov sú dekoratívne stolové lampy menej praktické ako kancelárske modely, ale napriek tomu spĺňajú svoje funkčné požiadavky a funkcie: osvetľujú pracovný priestor stola, umožňujú učiť sa, čítať, písať s veľkým komfortom. Výrobky ponúkané v obchodoch nie vždy zodpovedajú našim požiadavkám alebo stojia príliš veľa. Preto, našim nápadom je návrh vlastného svietidla s rozšírenou funkčnosťou. Chceme vyrobiť unikátny, samostate funkčný celok, ktorý by vyhovoval nižšie uvedeným požiadavkam:
- ovladanie lampy pomocou mobilného telefónu
- zmena farieb svietidla
z požiadaviek môžeme sformulovať hlavné úlohy:
- návrh vhodného hardvéru pre diaľkové ovládanie lampy
- návrh aplikácie pre diaľkove ovládanie lampy
- vytvorenie modelu vlastnej dekoratívnej lampy
Ako ?
Potrebny material:
- Vývojova doska (ESP8266, Arduino NANO, Raspberry PI atd)
- WS2812B samostatne adresovateľné RGB LED diody
- 3D model lampy
- USB kábel
Použité zdroje:
Analýza
Informácie o farbe a spektre
Všetci vieme, že naše videnie je trojzložkové: máme tri typy "farebných" receptorov - "červená", "modrá" a "zelená". Ale život ako zvyčajne je komplikovanejší - farba je určená vlnovou dĺžkou, a má akékoľvek hodnoty. Preto keď objekt odráža farbu medzi červenou a zelenou, tak reaguju aj červené aj zelené typy receptorov. Preto vidime "divné" miešanie farieb - v prípade, že objekt odráža červenú a zelenú farbu, uvidíme žltú, aj keď v skutočnosti tam "žltá" vlnová dĺžka nie je. Aby bolo jasnejšie: oko nemôže rozlíšiť, či objekt odráža čisto žlté svetlo (580 nm), alebo zelené (520 nm) a červené (680 nm). V oku sa aktivujú obidva receptory a v oboch prípadoch uvidíme rovnakú farbu, žltú. Realita je oveľa zložitejšia ako len RGB,preto aj existujú všetky problémy s "farebnými profilmi", "vyvážením" a "nesprávnym osvetlením".
Hlavné charakteristiky svietidiel
- Účinnosť (koľko viditeľného svetla produkuje lampa pri výkone 1W).
- Životnosť / spoľahlivosť
- Kvalita osvetlenia (spektrum, blikanie)
Základné typy svietidiel
- žiarovky - historicky prvý typ svietidla. Veľmi zlá energetická účinnosť 8-10 lm/W. Hlavný problém so spoľahlivosťou je pri napájaní- čím je nižšia teplota, tym je nižšia odolnosť vlákna .
- halogénové žiarovky - V skutočnosti ide o žiarovky, ale pridá sa do nich bróm alebo jód, čo zvyšuje životnosť a umožňuje zvýšenie teploty vlákna. Energetická účinnosť je o niečo lepšia - 10-15 lm/W, spektrum je tiež kontinuálne a posunuté do červenej oblasti.
- žiarivky - nízkotlaková ortuťová výbojka, ktorá na premenu elektrickej energie na svetelnú využíva žiarenie tlejivého elektrického výboja v parách ortuti. Samotný výboj vyžaruje neviditeľné ultrafialové žiarenie, ktorým je ožarovaná tenká vrstva vhodného luminoforu, nanesená na vnútornej strane banky žiarivky.Energetická účinnosť kompaktných - od 50 do 70 lm/W (to je dokonca to najlepšie, čo má Phillips). Od prvého septembra 2009 bol v krajinách Európskej únie zakázaný predaj klasických žiaroviek s príkonom vyšším ako 80W a od prvého septembra 2012 bol zakázaný predaj klasických žiaroviek s príkonom vyšším ako 70W. Tieto obmedzenia sa výraznou mierou podpíšu na väčšom rozšírení tzv. kompaktných žiariviek (žiariviek do pätíc)[Wikipedia].
- LED žiarovky - najlacnejšie biele LED - modrý + žltý fosfor, ktorý dáva podobu bieleho svetla, ale v skutočnosti je ďaleko od bielej. Oblasť vyžaroveného svetla je 450 a 550 nm, a zasahuje aj do oblasti od asi 500 po 600 nm. V dôsledku toho, sú farby skreslené s LED osvetlením. Najlepšiu energetickú účinnosť poskytujú na začiatku prevádzky 50-60 Lm/W
- Sodíkové výbojky - viditeľné pri pouličných osvetleniach. Majú fenomenálnu účinnosť, zvyčajne 100-150, až 200 lm/W (4 krát účinnejšie než najlepšie LED žiarovky ), a sú lacné. Jediným problémom je, že svietia len žltým svetlom , takže sa môžu používať len pre pouličné lampy, sklady atď. Všetko, čo neodráža žlté svetlo, bude čierne.
Záver
- Pre batériové aplikácie a dekoračné lampy je najlepším kandidátom LED žiarovka (vysoká odolnosť a vysoká efektivita).
- Pre hlavné osvetlenie v miestnosti- žiarivka v "dobrom" rozsahu (skontrolujte webové stránky výrobcu).
- Osvetlenie v miestnostiach, kde nie je potrebné pracovať - energeticky úsporné žiarivky so slabým spektrom.
- Osvetlenie na uliciach a skladoch - sodíkové lampy.
- Normálne žiarovky - len pre daždivý deň.
Princíp činnosti WS2812B
LED diódy (pixely) WS2812B a LED pásy založené na týchto pixeloch sú pomerne populárne a to preto, lebo:
- kompaktný - pixel obsahuje 3 LED diódy a ovládače pre nich ich (veľkosť len 5x5 mm)
- jednoduché ovládanie - pixel je riadený jednoduchým sériovým rozhraním, ktoré sa dá jednoducho implementovať programovo aj pomocou hardvérových rozhraní (ako napríklad SPI a UART)
- ovládanie pomocou jednej linky (bez započítania napájacích vodičov)
- neobmedzený počet po sebe idúcich pixelov
- pomerne nízke náklady (ak vypočítate náklady na 3 samostatné LED diódy a ovládače k nim ,budú oveľa drahšie)
Fyzicky, WS2812B má 3 LED diódy (červenú, modrú a zelenú) a ovládače PWM, ktoré ovládajú ich jas. Ovládače PWM sú 8-bitové, to znamená, že pre každú z farieb je možné použiť 256 stupňov jasu, takže pre nastavenie jasu pre každú z troch LED diód je potrebné prenášať pixel 8x3 = 24 bitov (3 bajty) informácií. Protokol na prenos informácií na jednoriadkovú LED s pevnou rýchlosťou. Jednotky a nuly informácií o jasnosti sú kódované dĺžkou vysokej a nízkej úrovne signálu v riadku.
Každý z pixelov WS2812B má 2 výstupné výkony (VDD, VSS), vstup (DIN) a výstup (DOUT).
DIN vstup sluzi na nastavenie novej farby. Informácie o farbe sa prenášajú postupne (začiatok najvyšším bitom) postupne pre každú z farieb komponentov G, R, B. Pixely sú pripojené v reťazci nasledovne:
Zápis hodnôt farby do reťazca pixelov sa uskutočňuje nasledujúcim spôsobom: Prvých 24 bitov napojených na DIN sa zapisuje do dočasnej pamäte (farba zostáva nezmenená od predchádzajúceho času) prvého pixelu. Nasledujúce bity prechádzajú prvým pixelom cez seba a vyvedú ho do výstupu DOUT. Druhý pixel zopakuje kroky prvého (ponechanie prvých 24 bitov, ktoré dosiahli) a tak dalej. Aby sa hodnoty farieb z dočasnej pamäte pixelov sa aktivovali, mal by sa zachovať pauza v priebehu 50 μS. Po tejto pauze sa cyklus môže znova zopakovať.
3D model
Pre výrobu a tlač nášho výrobku sme zvolili 3D tlačiareň a PLA plast. PLA plast je ideálnym materiálom pre 3D tlač prototypov a produktov. Napríklad ozdobné predmety, predmety, ktoré vyžadujú podrobné spracovanie, produkty na prezentáciu.
Keď že niesme skúsení v 3D modelovaní, inšpirovali sme sa výrobkami z internetu. Počas modelovania, sme sa snažili nájsť najvhodnejšiu hrúbku lampy, aby ju LED diody dokázali presvetliť. Pre dobrú viditeľnosť zmeny farieb sme zvolili bielu farbu plastu.
Model sa da stiahnuť tu: [Hribik]
Popis riešenia
Pri hľadaní riešenia nášho problému, sme preskúmali množstvo riešení. Ale keďže sme v dobe internetovej, chceli sme využiť internet aj my, čiže môžeme tento projekt radiť medzi IOT riešenie. Pre toto riešenie bol najvhodnejší a najdostupnejší procesor ESP8266 ktorý obsahuje aj WiFi. Vybrané diody sú pre nás vhodné z viacerých dôvodov, či už spomenutej komunikácii alebo že obsahujú integrované regulátory napätia, čím nám odpadá ďalšia starosť. Diody (9ks) sme postupne prepojili vodičmi podľa schémy a pripojili na D2 pin procesoru (viď. obrázok)
Schéma zapojenia diod
Algoritmus a program
Ako základný programovací jazyk sme si vybrali Arduino. Pre programovanie procesora ESP8266 bolo potrebné doinštalovať jeho podporu z oficiálneho repozitára Arduino. Na ovládanie sme použili síce pomerne zložitú knižnicu FastLED, ale za to veľmi dobre vybavenú a rýchlu. Keďže sme nechceli vymyslieť už vymyslené, na komunikáciu sme využili projekt Blynk. Bohužiaľ, je z časti komerčný a po presiahnutí istej úrovne použitých súčastí, je potreba platiť za ďalšie. Túto nevýhodu sme vyriešili spojazdnením si vlastného servera tejto služby, kde si tento kredit môžeme doplniť sami a bezplatne. Server je umiestený na komerčnom hostingu. Beží na ňom operačný systém CentOS. Celý ekosystém projektu Blynk je založený na rôznych widgetoch ako je Button, Slider, Dropdown. Keď si v mobilnej aplikácí vyskladáme vizuál aky chceme, priradíme každému prvku jeho označenie, ktorým ho identifikujeme v programe.
Program v procesore ma viacero častí, jedna z najdôležitejších sú príkazy na priojenie na WiFi a náš server
WiFi.mode(WIFI_STA);
Serial.begin(115200);
Blynk.begin(AUTH, WIFI_SSID, WIFI_PASS, SERVER, 8080);
Jednotlivé funkcie prvkou Button a Slider vyzerajú nasledovne:
BLYNK_WRITE(vPIN_BRIGHTNESS) {
if (varZone == ZONE || varZone == 1) {
updateColours(arrayCurrent[0], arrayCurrent[1], arrayCurrent[2], param.asInt());
}
}
BLYNK_WRITE(vPIN_COLOUR_RED) {
if (varZone == ZONE || varZone == 1 && param.asInt()) {
updateColours(1, 0, 255, 255);
updateWidgets();
}
}
Samotná funkcia loop potom len pozostáva z pár jednoduchých príkazov ktoré nám zaručujú udržanie pripojenia a akutalízaciu údajov
Blynk.run();
FastLED.show();
Zdrojový kód: Program.ino a Settings.h
Výsledok
Výsledna aplikácia vyzerá tak :
Kvalitu vytlačeného modelu považujeme za veľmi dobrú a sme s ňou spokojný. Čo nám ale urobilo neskutočnú radosť, je celkový výsledný dojem produktu, ktorý sa páči každému kto ho uvidí a chce jeden taký :)