Dneska bych vám chtěl ukázat, že zbastlená chytrá domácnost nemusí být vždy hromada kablíků v krabičce z kutilských potřeb, ale že může být i důstojně zpracovaná a vypadat jako hotový produkt.
A toto video mě napadlo jen tak náhodou, ale vychází z žádosti mého pracovního kolegy, který chtěl doma ovládat LED pásek přes Home Assistanta a následně Google Asistanta, ale sám se nechtěl pouštět do vytváření potřebné elektroniky. Tudíž jsem to vzal jako výzvu a jelikož mám LED pásky rád, chtěl jsem vytvořit řešení, které bude:
- Levné
- Spolehlivé
- Jednoduše znovuvyrobitelné
- No a jako bonus tak i relativně profi zpracované
V tomto archivu naleznete potřebné souboru, pokud si chcete vytvořit identický produkt jako dnes já:
A ještě přikládám odkazy na potřebné komponenty:
WS2815 LED pásek: https://s.click.aliexpress.com/e/_dTdWJet
Step-down convertor DC-DC 12-5V: https://s.click.aliexpress.com/e/_dYaCwv3
10ks 12V konektor (samice do panelu): https://s.click.aliexpress.com/e/_dUeuJ5r
Wemos d1 mini ( varianta D1 mini): https://s.click.aliexpress.com/e/_dXtPd9J
Svorkovnice 2-4 piny 10ks: https://s.click.aliexpress.com/e/_d7W1PZB
Piny samice/samci do PCB a nepájivého pole: https://s.click.aliexpress.com/e/_d7h6zZX
Chcete-li tišťák ode mě, napište mi na radek@hello-future.cz
Jdeme na to!
LED pásek
Začneme tedy obecněji – LED pásků je mnoho druhů. Některé jsou hloupé a stačí jim jen spínat napájení. Nicméně – to není cesta kterou se ubírám já. Já bych od pásků chtěl, aby uměly určitě RGB, tedy variace barev červené, zelené a modré, kterou dokáží vytvořit obrovskou paletu barev vč. bílé. Dále určitě chci, aby uměly nějaké zajímavé efekty a na to nejlépe poslouží individuálně ovládané LEDky, tedy že na pásku před LED diodou je titěrný driver (případně je zabudovaný přímo čipu LED diody), který zpracuje informaci jakou barvu má mít následující LEDka a zbytek informací pošle dalšímu driveru v sérii.
Pak mám na výběr z několika druhů napětí – nejjednodušší bych měl ubrat se cestou 5V, avšak tady bych si to následně mohl vyčítat, jelikož 5V je nízké napětí, které na pár metrech má velkou ztrátovost a tudíž v barvě a intenzitě mezi 1. diodou na pásku a třeba diodou po dvou metrech by byl viditelný rozdíl. Volím tedy 12V – samozřejmě stejnosměrného proudu. No a těchto několik mých požadavků pěkně zúžilo výběr na jen pár typů LED pásků – a já volím pásek osazený čipem WS2815.
Tento pásek má 4 kontakty – GND, 12V, D (jako „Data“) a pro mnohé nečekaně další kontakt – B. Ten je opravdu neobvyklý a možná si říkáte .. co je zač? Je to další důvod, proč jsem si vybral tento LED pásek. Kontakt B značí Backup, česky zálohu. Při zapojení jej tedy spojíme s kontaktem „Data“ a pokud nám na LED pásku odejde nějaká dioda, další drivery v sérii si převezmou data z trasy Backup. Takže ve chvíli, kdy by vám u běžného pásku nefungovaly všechny diody za tou umřelou, u tohoto nebude svítit jen ona, ale další v sérii budou fungovat. Za mě velké plus.
Na výběr máte ještě mezi různými úrovněmi voděodolnosti. Já volím plně vodě neodolný, protože se jedná o pásky, které budou doma za skříní.
Wi-Fi mozeček – Mikro kontroler
LED pásek máme! Co dál. Něco, co to bude řídit a komunikovat s Home Assistantem. Nejjednodušší cesta je Wi-Fi, takže v tomto případě volím Wemos D1 mini. Je malý, jak už název napovídá a nebudeme potřebovat mnoho pinů.
Wemos D1 mini jede na 5 voltech a LED pásek na 12 voltech. Abychom tedy Wi-Fi mozek neusmažili, musíme použít něco na snížení 12V na 5V. Ze zkušenosti volím levný step-down DC na DC convertor, který je velký ani ne jako pětikoruna. Ve výchozím stavu je potřeba nastavit výstupní napětí pomocí potenciometru, ale pokud chcete, můžete na zadní straně přeříznout trasu k potenciometru a napevno propájet trasu na 5V.
12V napájení a počty
Abychom to celé mohli napájet, potřebujeme 12V zdroj. Já jich mám doma naštěstí pár volně se válejících, takže nemusím žádný kupovat. Nicméně si dobře spočítejte odběr kontroleru, aby jste měli dostatečně dimenzovaný zdroj. Zdroje do cca 3A seženete i ve formě klasických „zastrkávacích“ do zásuvky. Pokud budete mít hodně metrů LED pásku, je dobré volit nějaký průmyslový zdroj, na který přiděláte konektor nebo jej napájíte přímo na tišťák. Přikládám tabulku mých měření a jednoduchý vzorec, kterým spočítáte minimální proud, který musí zdroj zvládnout. Je to včetně 10% rezervy abychom měli jistotu. Na obrázku vidíte příklad o 23 diodách.
Po sem je to bastlení
Teoreticky by vám už toto vše mohlo stačit. Popropojovat to kablíky, flashnout (v mém případě opět) ESPHome a zaintegrovat. Nicméně – já do projektu doplním ještě pár věcí.
PCB – tišťák
Aby veškerá elektronika byla spolehlivě zapojena a vypadala vzhledně, navrhnul jsem si tišťák. Naštěstí žijeme v 21. století, a tedy i takovou věc si může za levno objednat i běžný člověk.
Mám dobrou zkušenost s čínským výrobcem JLCPCB, kteří mají pro první objednávku výhodnou akci – 5 tišťáků za 2$ + poštovné, které v mém případě činilo 25$. Pokud se vám to tam nechce objednávat, zkuste mi napsat na mail nebo mě vyhledejte na facebooku ve skupině Smart Home Bastlíři cz/sk a já se mohu o nějaké podělit, protože jsem si jich vzal dost do zásoby.
Asi si říkáte, jak takový tišťák vyrobit. Existuje na to dost programů, já mám ještě z doby volně stažitelné beta verze program Fritzing, nicméně existuje dále i Autodesk Eagle, který dokáže promítnout tišťák rovnou do Fusion 360 a tedy jednoduše kolem něj vytvořit krabičku. No a nebo dále existují ještě EasyEDA nebo DesignSpark.
Ve fritzingu jsem si tedy na simulovaném nepájivém poli připravil všechny komponenty, které bych chtěl použít a propojil kontakty tak jak je potřeba. Jelikož Wemos má více pinů než je potřeba, řekl jsem si, že si to připravím ne jen pro jeden LED pásek, ale rovnou pro 4. Radši ať to mám připravené, než abych pak musel někam dávat více těchto kontrolerů.
Dále si ve fritzingu přepnu na stránku s PCB, kde už si mohu libovolně rozmístit prvky a klidně nechat automaticky vypočítat a nakreslit trasy. Ale já preferuji si je nakreslit ručně, což je sice více práce, nicméně vypadá to mnohonásobně lépe.
Doporučuji několikrát zkontrolovat trasy, že vedou tak jak mají, protože už se mi jednou stalo, že jsem si tišťáky posílal na třikrát, než jsem to měl správně. Holt, dvakrát měř, jednou rež.
Už nyní vím, co bych udělal jinak. Vždy tvrdím, že chytrá domácnost má být nádstavba nad manuálním ovládáním, nicméně jsem při navrhování konceptu tohoto kontroleru na toto pravidlo zapomněl a nedal jsem tam alespoň tlačítka, která by jednotlivé LED pásky zapínala a vypínala. Nevadí, třeba se jednou dočkáme verze dvě.
Tišťák mám tedy připravený, je potřeba jej vyexportovat jako gerber file a nahrát na JLCPCB. Po schválení jejich inženýry jsou do 48 hodin vyrobeny a do deseti dnů doma.
Vytváření krabičky pro 3D tisk
Následně jsem přešel do programu Fusion 360, ve kterém jsem si vytvořil krabičku na celý kontroler. Ta se skládá z hlavní části a víčka, které do sebe zapadnou pomocí netradičních zarážek.V krabičce je pomocí záseku umožněno tišťáku zapadnout na dno a netančit uvnitř, dále mnoho větracích otvorů okolo Wi-Fi čipu Wemosu, slotů na zapojení LED pásků, aretovaný otvor na 12 voltový konektor, no a popisky, aby při zapojování bylo jasné o který pásek a kontakt se jedná.
Tady je asi dobré zmínit, že kontakt D a B jsem nechal na jednu svorku na svorkovnici, protože to teoreticky (po úpravách konfigurace a ověření, že pásky opravdu jsou kompatibilní) umožňuje připojit i alternativní 12V pásky, které mají jen Datový vodič bez zálohy.
Tuto krabičku jsem si vytisknul na 3D tiskárně a pokud vy náhodou tu možnost nemáte, přihodím to na svůj eshop Zhmotnito.cz .
Kompletace a pájení
V tuto chvíli máme vše připraveno, takže stačí komponenty připájet na tišťák. Při pájení nožiček na Wemos D1 si dejte pozor, aby jste je nepřipájeli a nezapojili naopak. K tomu vám poradí i šablona na tišťáku, která ukazuje jak má být Wemos posazen v kontroleru.
Nebudu tady detailně rozepisovat jak vše připájet. Na tišťáku jsou popisky a z obrázku to určitě pochopíte, navíc uvidíte i orientaci komponent. Wemos není připájen přímo, ale je posazen do „samic“ pinů, aby byl odjimatelný. Pokud je to matoucí, mrkněte na video, kde to snad bude viditelné.
Po připájení musím ještě nakalibrovat step-down, protože mi to příjde jednodušší pomocí potenciometru. Ujistím se, že nemám zapojený Wemos, GND měřáku připojím na GND 12 voltů a „+“ kontakt napojím na výstup step-down convertoru. Připojím 12V a šroubovákem pomalu pootáčím, dokud na měřáku nechytnu něco mezi 4,8 a 5,1V. Následně už mohu zvesela připojit Wemos a měla by probliknout jeho modrá dioda.
Po této kontrole tedy vytáhnu 12V napájení a Wemos pomocí USB kabelu propojím s Home Assistantem. Pokud nevíte jak se nahrává ESPhome firmware, koukněte na jedno z mých starších videí nebo článek, kde proces ukazuji.
Firmware naleznete níže a má ve výchozím stavu aktivní jen LED pásek na portu 1. Další si můžete podle potřeby odkomentovat. Nastavte si počet LEDek na pásku .. a to počítání si užijete, upravte jméno LED pásku, změňte Wi-Fi údaje a název modulu.. a máte hotovo.
esphome: name: hf_12v_led_controller platform: ESP8266 board: d1_mini wifi: ssid: !secret ssid # vetsina z vas bude mit misto "!secret ssid" rovnou nazev wifi v uvozovkach, napriklad "MojeWifi" password: !secret wifi_password # vetsina z vas bude mit misto "!secret wifi_password" rovnou heslo k vasi wifi # Zalozni wifi, ktera se vytvori v pripade, ze se modul nemuze pripojit na vyse nastavenou wifi ap: ssid: "LED driver fallback hotspot" password: "TohleRozhodneNeniMojeHeslo" captive_portal: # Enable logging logger: # Enable Home Assistant API api: password: !secret ota_password # vetsina z vas bude mit misto "!secret ota_password" rovnou nejake vymyslene heslo, ktere se pak musi zadat pri integraci do Home Assistanta ota: password: !secret ota_password # vetsina z vas bude mit misto "!secret wifi_password" rovnou nejake vymyslene heslo, klidne shodne s api password #ve vychozim stavu je aktivni jen LED pasek oznaceny jako STRIP1, pro aktivovani i dalsich je potreba je odkomentovat (to znamena odstranit krizky na zacatku radku vsech parametru tykajich se daneho pasku) # zde zacina konfigurace LED pasku oznaceneho jako STRIP1 light: - platform: fastled_clockless chipset: WS2812 # zde je uveden chipset WS2812, protoze WS2815 je shodne co se tyce ovladani pin: D1 num_leds: 23 # zde je potreba uvest presny pocet LED diod na pásku pripojenem do svorkovnic oznacenych STRIP1 rgb_order: GRB name: "Strip1" # tento nazev se pak sam zobrazi v Home Assistantovi. Samozrejme tam jde nasledne i prejmenovat, ale toto se zobrazi automaticky po pridani integrace effects: - random: - strobe: - flicker: - addressable_rainbow: - addressable_color_wipe: - addressable_scan: - addressable_twinkle: - addressable_random_twinkle: - addressable_fireworks: - addressable_flicker: # zde konci konfigurace LED pasku STRIP1 # zde zacina konfigurace LED pasku oznaceneho jako STRIP2 -> pro aktivovani i tohoto pasku odmazte "#" na zacatku radku 53-70 #light: # - platform: fastled_clockless # chipset: WS2812 # zde je uveden chipset WS2812, protoze WS2815 je shodne co se tyce ovladani # pin: D2 # num_leds: 10 # zde je potreba uvest presny pocet LED diod na pásku pripojenem do svorkovnic oznacenych STRIP2 # rgb_order: GRB # name: "Strip2" # tento nazev se pak sam zobrazi v Home Assistantovi. Samozrejme tam jde nasledne i prejmenovat, ale toto se zobrazi automaticky po pridani integrace # effects: # - random: # - strobe: # - flicker: # - addressable_rainbow: # - addressable_color_wipe: # - addressable_scan: # - addressable_twinkle: # - addressable_random_twinkle: # - addressable_fireworks: # - addressable_flicker: # zde konci konfigurace LED pasku STRIP2 # zde zacina konfigurace LED pasku oznaceneho jako STRIP3 -> pro aktivovani i tohoto pasku odmazte "#" na zacatku radku 74-91 #light: # - platform: fastled_clockless # chipset: WS2812 # zde je uveden chipset WS2812, protoze WS2815 je shodne co se tyce ovladani # pin: D5 # num_leds: 10 # zde je potreba uvest presny pocet LED diod na pásku pripojenem do svorkovnic oznacenych STRIP3 # rgb_order: GRB # name: "Strip3" # tento nazev se pak sam zobrazi v Home Assistantovi. Samozrejme tam jde nasledne i prejmenovat, ale toto se zobrazi automaticky po pridani integrace # effects: # - random: # - strobe: # - flicker: # - addressable_rainbow: # - addressable_color_wipe: # - addressable_scan: # - addressable_twinkle: # - addressable_random_twinkle: # - addressable_fireworks: # - addressable_flicker: # zde konci konfigurace LED pasku STRIP3 # zde zacina konfigurace LED pasku oznaceneho jako STRIP4 -> pro aktivovani i tohoto pasku odmazte "#" na zacatku radku 95-112 #light: # - platform: fastled_clockless # chipset: WS2812 # zde je uveden chipset WS2812, protoze WS2815 je shodne co se tyce ovladani # pin: D6 # num_leds: 10 # zde je potreba uvest presny pocet LED diod na pásku pripojenem do svorkovnic oznacenych STRIP4 # rgb_order: GRB # name: "Strip4" # tento nazev se pak sam zobrazi v Home Assistantovi. Samozrejme tam jde nasledne i prejmenovat, ale toto se zobrazi automaticky po pridani integrace # effects: # - random: # - strobe: # - flicker: # - addressable_rainbow: # - addressable_color_wipe: # - addressable_scan: # - addressable_twinkle: # - addressable_random_twinkle: # - addressable_fireworks: # - addressable_flicker: # zde konci konfigurace LED pasku STRIP4
Po nahrání firmwaru už zbývá jen integrace do Home Assistanta, kterou jsme taktéž už viděli v minulých ESPHome videích, takže se tady s ní nebudu zdržovat.
Shrnutí
Gratuluji, máme vytvořený vlastní LED kontroler, který je plně lokální a vyšel nás docela levně. 86 korun za kontroler (bez LED pásků). No není to nádhera?
Napište mi co vás dále zajímá a jak vám byl tento článek užitečný. Pokud máte nějaký dotaz, napište ho sem do komentářů, případně se přidejte do naší FB skupiny Smart Home Bastlíři CZ/SK, kde vám ostatní rádi poradí.
Zároveň můžete najít Hello-Future na těchto sítích:
Instagram: https://www.instagram.com/hellofuturecz
Youtube: https://www.youtube.com/channel/UCaq4XkexFgCCLTFNQKXcwyw
Ahoj, díky za skvělej návod 🙂 velmi mě inspiroval. Doporučuji místo ESPHome použít WLED
Bezva. Škoda, ze tyto stránky už umřely a není nový obsah.