- Komponenty potřebné k výrobě automatických rolet Arduino
- Ovládání rolet pomocí Arduina
- Navrhněte a postavte okenní roletu
- 3D tisk držáku motoru a slepého převodu
- Schéma zapojení pro ovládání rolet Arduino
- Blynk aplikace pro Arduino Blind Control
- Programování NodeMCU na ovládání Blindů pomocí Blynku
- Ovládání okenních rolet pomocí Google Assistant
- Arduino založené na automatickém ovládání rolet - ukázka
"Dobré ráno. Je 7:00 Počasí v Malibu je 72 stupňů… “to byla první slova JARVISu, když byla uvedena do vesmíru Marvel Cinematics Universe. Většina fanoušků Iron Mana by si měla tuto scénu vybavit a pamatovat na to, že JARVIS dokázal ráno otevřít (něco) ráno a poskytovat informace o čase a počasí. Ve filmu byly okenní brýle ve skutečnosti vyrobeny z průhledných dotykových displejů, a proto jej společnost JARVIS dokázala proměnit z černé na průhlednou a také na ní zobrazit statistiky počasí. Ve skutečnosti jsme ale daleko od průhledných dotykových obrazovek a čím blíže se můžeme dostat, je automatické ovládání rolet nebo omezení automaticky.
Takže v tomto projektu budeme stavět přesně to, že postavíme automatizovanou motorovou roletu, která by se automaticky otevírala a zavírala v předem definovaných časech. Dříve jsme vytvořili mnoho projektů domácí automatizace, ve kterých jsme automatizovali světla, motory atd. Můžete je zkontrolovat, pokud máte zájem. Když se tedy vrátíte zpět, tyto rolety ovládané Arduinem mohou také přijímat příkazy od asistenta Google, takže můžete rolety na dálku otevřít nebo zavřít pomocí hlasových příkazů. Fascinující? Pojďme to tedy postavit.
Komponenty potřebné k výrobě automatických rolet Arduino
Projekt je relativně jednoduchý a není potřeba mnoho komponent. Stačí shromáždit níže uvedené položky.
- NodeMCU
- Krokový motor - 28BYJ-48
- Modul ovladače krokového motoru
- LM117-3,3V
- Kondenzátory (10uf, 1uf)
- 12V DC adaptér
- Perf Board
- Pájecí souprava
- 3D tiskárna
Ovládání rolet pomocí Arduina
Nyní je na trhu mnoho typů žaluzií, ale nejběžněji používaná má lano s lemováním (jak je znázorněno níže), které lze zatáhnout za účelem otevření nebo zavření žaluzií.
Když zatáhneme za toto kruhové lano ve směru hodinových ručiček, rolety se otevřou a když zatáhneme za lano proti směru hodinových ručiček, rolety se zavřou. Pokud bychom tedy měli tento proces zautomatizovat, musíme jen pomocí motoru vytáhnout toto lano ve směru nebo proti směru hodinových ručiček a my s tím skončíme. Ve skutečnosti to v tomto projektu uděláme; budeme používat krokový motor 28BYJ-48 spolu s NodeMCU k tažení korálkového lana.
Navrhněte a postavte okenní roletu
Elektronická část tohoto projektu byla poměrně jednoduchá a přímočará, náročná byla konstrukce Blind Gear, která dokázala táhnout korálkové lano. Začněme tedy tento článek s designem slepých převodovek, nebudu se podrobně zabývat návrhem převodovky, ale tato základní myšlenka by vám měla pomoci. Obrázek lana s korálky na něm je uveden níže.
Opět existuje mnoho typů lan, ale nejběžněji používaná lana jsou vzdálenost mezi středy každé obruby 6 mm a průměr každé obruby 4 mm. Pomocí těchto informací můžeme zahájit konstrukci našeho zařízení. Pokud má lano na vašich roletách stejné rozměry, jaké byly popsány, můžete tento krok jednoduše přeskočit a stáhnout soubor STL uvedený v tomto článku a vytisknout vybavení. Pokud má vaše lano jiné uspořádání korálků, pak byste měli přepracovat slepý převod.
Rozhodl jsem se mít na svém zařízení 24 korálků, abych získal optimální velikost ozubeného kola, můžete si vybrat libovolné číslo blízké tomuto, aby vaše ozubené kolo bylo velké nebo malé. Takže teď víme, že vzdálenost mezi každou lištou je 6 mm a na naší výbavě potřebujeme 24 korálků. Násobením obou se získá obvod ozubeného kola. S těmito údaji můžete vypočítat poloměr ozubeného kola. Jak vidíte na obrázku výše, průměr mého ozubeného kola byl vypočítán na přibližně 46 mm. Ale pamatujte, toto není skutečný průměr ozubeného kola, protože jsme nezohlednili průměr obruby, který je 4 mm. Skutečný průměr ozubeného kola tedy bude 42 mm, vytiskl jsem a vyzkoušel mnoho ozubených kol, než jsem našel to, které funguje nejlépe. Pokud nejste v designu,stačí stáhnout a vytisknout soubory STL z následujícího odstavce a pokračovat ve svém projektu.
3D tisk držáku motoru a slepého převodu
Spolu s ozubeným kolem budeme také potřebovat malé pouzdro, které lze vyvrtat na zeď a držet krokový motor v poloze, jak pouzdro, tak ozubené kolo použité v tomto projektu jsou uvedeny níže.
Kompletní návrhové soubory a soubory STL najdete na níže uvedené stránce Arduino Blind Control Thingiverse. Stačí si stáhnout a vytisknout slepou převodovku a skříň motoru.
Stáhněte si soubory STL pro Blind Gear a Motor Case
Schéma zapojení pro ovládání rolet Arduino
Jakmile jste připraveni s převodovkou a sestavením, je snadné pokračovat v elektronické a softwarové části. Níže je uvedeno kompletní schéma zapojení pro projekt ovládání IoT Blind.
K napájení celého nastavení jsme použili 12V adaptér; regulátor LM1117-3.3V převádí napětí 12 V na 3,3 V, které lze použít k napájení desky NodeMCU. Modul ovladače krokového motoru je napájen přímo z 12V adaptéru. Zkusil jsem spustit krokový motor na 5V, ale pak to neposkytlo dostatečný točivý moment pro zatažení rolet, takže se ujistěte, že používáte také 12V.
Kromě toho je obvod velmi jednoduchý, pokud jste v oblasti krokových motorů noví, podívejte se do základů článku o krokových motorech, abyste pochopili, jak to funguje a jak jej lze použít s mikrokontrolérem.
Blynk aplikace pro Arduino Blind Control
Než se dostaneme do programu Arduino pro ovládání rolet, necháme otevřít aplikaci blynk a vytvoříme některá tlačítka, pomocí kterých můžeme otevřít nebo zavřít naše žaluzie. Toto budeme potřebovat také později, abychom mohli ovládat z domova Google.
Právě jsem přidal dvě tlačítka pro otevírání a zavírání žaluzií a časovač pro otevírání žaluzií každý den v 10:00. Můžete přidat více časovačů pro otevření nebo zavření rolet v různých denních intervalech. V podstatě, když musíme zavřít rolety, musíme spustit virtuální pin V1 a když musíme otevřít rolety, musíme spustit virtuální pin V2. Program pro ovládání krokového motoru na základě zde stisknutého tlačítka bude napsán na Arduino IDE, to samé je popsáno níže.
Programování NodeMCU na ovládání Blindů pomocí Blynku
Kompletní kód ESP8266 pro tento Blind Control Project najdete ve spodní části této stránky. Náš program musí čekat na příkaz z aplikace blynk a na základě tohoto příkazu musíme otočit krokový motor buď ve směru hodinových ručiček, nebo proti směru hodinových ručiček. Níže jsou popsány důležité segmenty kódu.
Podle našeho schématu zapojení jsme použili digitální piny 1, 2, 3 a 4 na nodemcu k ovládání našeho krokového motoru. Takže musíme vytvořit instanci nazvanou stepper pomocí těchto pinů, jak je znázorněno níže. Všimněte si, že jsme definovali piny v pořadí 1, 3, 2 a 4. Bylo to provedeno záměrně a není to chyba; musíme vyměnit piny 2 a 3, aby motor fungoval správně.
// vytvoříme instanci stepper třídy pomocí stepů a pinů Stepper stepper (STEPS, D1, D3, D2, D4);
V dalším kroku musíme sdílet náš ověřovací token aplikace blynk a přihlašovací údaje Wi-Fi, ke kterým musí být připojen náš řadič IoT Blind. Pokud si nejste jisti, jak získat tento ověřovací token Blynk, podívejte se na projekt Blynk LED Control, abyste pochopili základy aplikace blynk a jak ji používat.
// Měli byste získat Auth Token v aplikaci Blynk. // Přejděte na Nastavení projektu (ikona matice). char auth = "l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx"; // Vaše pověření WiFi. // Nastavit heslo na „“ pro otevřené sítě. char ssid = "CircuitDigest"; char pass = "dummy123";
Pokračujeme s naším kódem, po funkci nastavení jsme definovali dvě metody pro blynk. Jak již bylo zmíněno dříve, musíme definovat, co mají virtuální piny V1 a V2 dělat. Kód pro stejný je uveden níže.
BLYNK_WRITE (V1) // ZAVŘÍT ŽALUZIE {Serial.println ("Closing Blinds"); if (opened == true) {for (int c_val = 0; c_val <= 130; c_val ++) // rotate in Counter-Clockwise for closing {stepper.step (c_val); výtěžek(); } closed = true; otevřeno = false; disable_motor (); // vždy po použití vypněte krokové motory, abyste snížili spotřebu energie a topení}} BLYNK_WRITE (V2) // OTEVŘETE ŽALUZIE {Serial.println ("Otevírání žaluzií"); if (closed == true) {for (int cc_val = 0; cc_val> = -130; cc_val--) // rotace ve směru hodinových ručiček pro otevření {stepper.step (cc_val); výtěžek(); } otevřeno = true; closed = false; } deaktivovat_motor (); // vždy po použití vypněte krokové motory, abyste snížili spotřebu energie a topení}
Jak vidíte, V1 se používá k zavírání žaluzií a V2 se používá k otevírání žaluzií. Pro smyčku je slouží k otáčení motorů ve směru hodinových ručiček nebo proti směru hodinových ručiček na 130 stupňů. Experimentoval jsem se svými roletami a zjistil jsem, že se 130 kroky jsem schopen plně otevřít a zavřít žaluzie. Vaše číslo se může lišit. Pro smyčku k otáčení krokového motoru ve směru hodinových ručiček a proti směru hodinových ručiček, je uveden níže.
for (int c_val = 0; c_val <= 130; c_val ++) // otočit proti směru hodinových ručiček pro zavření {stepper.step (c_val); výtěžek(); } for (int cc_val = 0; cc_val> = -130; cc_val--) // otočit ve směru hodinových ručiček pro otevření {stepper.step (cc_val); výtěžek(); }
V našem programu si také můžete všimnout dvou booleovských proměnných „otevřeno“ a „zavřeno“. Tyto dvě proměnné slouží k tomu, aby se zabránilo dvojímu otevření nebo zavření žaluzie motoru. To znamená, že žaluzie se otevřou pouze tehdy, když jsou dříve zavřené, a budou se zavírat, pouze pokud jsou dříve otevřeny.
Jak zvýšit rychlost krokového motoru 28BJY-48?
Jednou z nevýhod použití krokového motoru 28BJY-48 je, že je velmi pomalý. Tyto motory byly původně vyrobeny pro použití ve vysoce přesných aplikacích s nízkou rychlostí, takže neočekávejte, že se tyto motory budou otáčet vysokou rychlostí. Pokud chcete zvýšit rychlost krokového motoru pomocí Arduina, můžete změnit dva parametry. Jedním z nich je #define STEPS 64, zjistil jsem, že když jsou kroky definovány jako 64, motor byl poměrně rychlejší. Dalším parametrem je stepper.setSpeed (500); opět jsem zjistil, že 500 je optimální hodnota, něco víc než to ve skutečnosti dělá krokový motor pomalejší.
Znáte jiný způsob, jak zvýšit rychlost těchto motorů? Pokud ano, ponechte je v sekci komentářů níže.
Jak zabránit přehřátí krokového motoru?
Krokové motory by měly být vždy deaktivovány, pokud se nepoužívají, aby se zabránilo přehřátí. Deaktivace krokového motoru je velmi jednoduchá; stačí změnit stav kolíků všech čtyř pinů GPIO, které ovládají krokový motor, na nízkou hodnotu. To je velmi důležité, jinak by se váš motor mohl při + 12V velmi zahřát a trvale by se poškodil. Níže je uveden program deaktivace krokového motoru.
void disable_motor () // po dokončení vypněte motor, abyste zabránili zahřívání {digitalWrite (D1, LOW); digitalWrite (D2, LOW); digitalWrite (D3, LOW); digitalWrite (D4, LOW); }
Ovládání okenních rolet pomocí Google Assistant
Budeme používat blynk API k ovládání žaluzií pomocí asistenta Google, bude to podobné jako v našem automatizovaném projektu Voice Controlled Home, takže si to v případě zájmu zkontrolujte. V zásadě musíme spustit níže uvedený odkaz, když řekneme předdefinovanou frázi Asistentovi Google.
//http://188.166.206.43/l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx/update/V1?value=1 /
Ujistěte se, že jste změnili ověřovací token na token poskytnutý vaší aplikací blynk. Tento odkaz můžete dokonce otestovat v prohlížeči Chrome, abyste zjistili, zda funguje podle očekávání. Nyní, když je odkaz připraven, musíme jednoduše přejít na IFTTT a vytvořit dva applety, které mohou spustit virtuální pin V1 a V2, když žádáme o zavření a otevření rolet. Opět se nebudu zabývat podrobnostmi toho, protože jsme to udělali mnohokrát. Pokud potřebujete další pomoc, přečtěte si tento projekt FM rádia ovládaného hlasem, stačí nahradit služby adafruit webhooky. Sdílím také snímek obrazovky mého úryvku pro referenci.
Arduino založené na automatickém ovládání rolet - ukázka
Poté, co budou obvod a 3D tištěná pouzdra připravena, stačí sestavit zařízení na zeď vyvrtáním dvou otvorů na stěnu. Moje montážní nastavení je zobrazeno na obrázcích níže.
Poté se ujistěte, že jsou vaše žaluzie v otevřeném stavu a poté zapněte obvod. Nyní můžete zkusit zavřít žaluzie z aplikace blynk nebo pomocí Google Assistant a mělo by to fungovat. Můžete také nastavit časovače v aplikaci blynk, aby automaticky otevíraly a zavíraly žaluzie v konkrétní denní době.
Kompletní fungování projektu najdete ve videu níže; pokud máte nějaké dotazy, neváhejte je napsat do sekce komentářů níže. Naše fóra můžete také použít pro další technické diskuse.