DIY: Ovládání světel přes telefon

Nedostal jsem se k ESP32, povedlo se mi ale dokončit již dříve rozdělaný projekt na ovládání světel v pokoji / domácnosti. Ať už je to tak správně, nebo ne, pojďme se podívat, co jsem spáchal. 😉

Pár slov úvodem, proč vlastně tohle všechno…

Jedním slovem: Lenost. Jsou jedinci, kteří by ani za boha nepřiznali, že jsou líní, tvrdili by dokola, že jsou pohodlní. Další prostě otevřeně přiznají, že jsou shnilí a že se jim prostě nic dělat nechce. Ať už patříte k jakémukoli táboru, můžete se zkusit pozastavit nad tímto projektem velice vhodným pro oba tábory. 😀

Jak jsem již zmínil, skutečně za tímto projektem stojí lenost. Znáte to, když si čtete něco v posteli před spaním a pak se vám ani za boha nechce vstát z postele a jít zhasnout světla? Dá se to samozřejmě vyřešit i zakoupením lampičky na čtení, ale je to další lapač prachu a další věc, bez které se člověk může docela dobře obejít. Ať žije minimalismus.

Toto je tedy hlavní důvod. Vedlejším důvodem je, že teď můžu návštěvám ukazovat, jak krásně vypnu světlo v pokoji jen přiložením telefonu k nálepce. Magie. Vždycky jsem chtěl být kouzelníkem.

Ještě než se podíváme pod kapotu, možná by nebylo úplně od věci ukázat, jak vypadá výsledek v akci:

Součástky

Srdcem tohoto zapojení je deska s ESP8266. Konkrétně zde je to tato NodeMCU 1.0, co se prodává asi za 50,-. V předchozích článcích jsem jej nezmiňoval, ale poslouží také. Má 12 digitálních I/O portů, je tedy možno připojit na něj až 6 spínačů a 6 světel (nebo 11 světel a jeden spínač? Samozřejmě lze použít i pin A0).

PINOUT NodeMCU 1.0

Už nevím, jak jsem se k němu dostal (asi jsem brouzdal aliexpressem a hledal nějaké lacné desky), nicméně se mi dostal pod ruku, je mnohem menší a tím to vlastně vyhrál. Ať už při stavbě využijete tuto desku, či nějakou jinou, … je to vlastně prašť jako uhoď, protože stačí jen pozměnit dvě proměnné v kódu (piny s připojenými světly a spínači), případně se podívat na pinout jiné desky a podle toho to dopasovat.

Nu… zkrátka a jasně: pokusné zapojení není nic moc složitého. Zvládnete to během pěti minut. Celkově zapojení tak jak je (zatím) vychází na asi 80,-.

Suma sumárum budete potřebovat:

  • Desku s ESP8266 (jak vybrat?)
  • 2x* odpory 220Ω (220R)
  • x* spínače
  • x* LED diody pro 3V (vhodné je před ně umístit také odpory)
    pozn: Počet součástek označených “x” závisí čistě na poštu pinů, které jsou k dispozici a na vašich potřebách. V mém případě 4.
  • Je nutné mít stejný počet LED diod a spínačů (při zachování stejného kódu a zapojení bez větších změn)

V praxi u finálního zařízení bude potřeba také:

  • Výkonové tranzistory (na PWM spínání LED světel – pakliže budete spínat přímo 230V, bude lepší použít relé. Pozor, kope!)
  • NFC nálepky (bude fungovat jedině v případě, že máte telefon s podporou NFC)
  • Router (stačí užít domácí router – pouze v kódu pozměníte přístupové údaje k síti). Edit: pracuji také na verzi SW, díky které může zařízení fungovat se severem běžícím na Acess Pointu.
  • 5V napájení pro Desku s ESP8266 (postarší nabíječka na telefon)

Zapojení

Další věc, kterou jsem si chtěl zkusit… Udělat si vlastní schémátko. Od té doby, co existují takovéto nástroje jde bastlení s arduinem do úplně nových rozněrů! Nutno dodat, že nepracujeme s arduinem uno, ale s nějakou vámi vybranou deskou s ESP8266 (hold není tak úplně běžná, tak ji v tom programu neměli).

 

Mé zapojení

Od toho na schémátku se liší tím, že jsem nedal odpor LED diodám (což by se asi mělo). Nicméně zatím to ještě neshořelo.

Pokusné zapojení na nepájivém poli

 

Software

Program jsem se snažil co nejvíce komentovat a udělat co nejjednodušeji. Nejnovější verze kódu budu umisťovat na Gitgub. Zatím jsem vytvořil tyto stránky/dokumentaci [EN].

 

EDIT:

Úprava pro spínání většího proudu

Zařízení samozřejmě můžete upravit tak, aby mohlo spínat větší proudy. Můžete toho docílit pomocí

  • Relé
    • Kdy použít?
      • Pokud nepotřebujete PWM (prostě pokud nepotřebujete, aby to to světlo stmívalo, nebo aby se dal regulovat výkon, prostě jenom vypnout a zapnout; pozor: potřebujete 5v, nebo 3V relé)
      • Budete spínat střídavých 230V (případně jiné střídavé napětí)
  • Tranzistor
    • Kdy použít?
      • Spínáte stejnosměrné napětí
      • Potřebujete PWM

Jelikož je postupné stmívání světla s možnost nastavení intenzity jedním z důvodů vytvoření tohoto projektu, nezbývá mi, než zvolit cestu tranzistoru. Spínám LED světla (U=60V, P=18W). Je potřeba vybrat tranzistor, který něco takového s rezervou utáhne. Já jsem zvolil BD911 (NPN 100V,15A,90W,3MHz TO220).

Na následujícím zapojení simuluje modrý spínač piny Arduina.

Je potřeba udělat následující úpravy:

  • Zelený vodič (na obrázku) vedoucí od spínače k tranzistoru připojte na pin u vývojářské desky (D5, D6, D7, D8, případně vámi zvolený)
    • -> Čili modrý spínač a připojený 3,4V zdroj pryč.
  • Spojte GND (-) vývojářské desky s GND (-) zdroje napájení světla (třeba diody)

Jak takové zapojení funguje? Z Arduina se pošle signál (true/false = 3-5v/0V). Je-li signál na těch 3-5V, tranzistor se otevře a nechá “protéct” do světla oněch 12V (na příkladu), případně podle toho, jaký budete mít zdroj napájení.

EDIT: Používáte-li stejně jako já NodeMCU 1.0, je potřeba v zapojení udělat jisté úpravy, aby docházelo ke správnému čtení programu z paměti. U ESP8266 jsou totiž některé piny zapojeny na externí flash paměť, ze které se při spuštění program načítá. Když úpravy neuděláte, zapojení nebude schopno program načíst do chvíle, než jej odpojíte od zdroje. Jedná se o piny GPIO0 (D3), GPIO2 (D4) a GPIO15 (D8). Stránku se zapojením můžete nalézt ZDE. (řešení zkontroluji, jakmile to bude možné)

Pakliže vás projekt zaujal, nebo máte jakékoli dotazy, neváhejte napsat komentář, případně posdílet tento článeček 🙂

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *