- Komponenty potrebné na výrobu automatických žalúzií Arduino
- Ovládanie roliet pomocou Arduina
- Navrhnite a vyrobte si žalúziu
- 3D tlač držiaka motora a slepého prevodového stupňa
- Schéma zapojenia pre ovládanie žalúzií Arduino
- Aplikácia Blynk pre Arduino Blind Control
- Programovanie NodeMCU na ovládanie žalúzií pomocou Blynku
- Ovládanie roliet pomocou Asistenta Google
- Arduino založené na automatickom ovládaní žalúzií - demonštrácia
"Dobré ráno. Je 7:00 Počasie v Malibu je 72 stupňov… “to boli prvé slová JARVISU, keď sa predstavili vo vesmíre Marvel Cinematics Universe. Väčšina fanúšikov hry Iron Man by mala byť schopná vybaviť si túto scénu a pamätať na to, že JARVIS dokázal ráno otvoriť okno (akési) ráno a poskytovať informácie o čase a počasí. Vo filme boli okenné okuliare vyrobené z priehľadných dotykových displejov, a preto ho spoločnosť JARVIS dokázala zmeniť z čiernej na priehľadnú a tiež na nej zobraziť štatistiku počasia. Ale v skutočnosti sme ďaleko od priehľadných dotykových obrazoviek a čím bližšie sa dostaneme, je automatické ovládanie žalúzií alebo zábran.
Takže v tomto projekte postavíme presne to, že postavíme automatizovanú motorizovanú roletu, ktorá by sa automaticky otvárala a zatvárala v preddefinovaných časoch. Predtým sme vytvorili veľa projektov domácej automatizácie, v ktorých sme automatizovali svetlá, motory atď. Môžete si ich pozrieť, ak máte záujem. Po návrate teda tieto rolety ovládané Arduino môžu prijímať príkazy aj od asistenta Google, aby ste mohli žalúzie na diaľku otvárať alebo zatvárať pomocou hlasových príkazov. Pútavý? Potom to poďme postaviť.
Komponenty potrebné na výrobu automatických žalúzií Arduino
Projekt je pomerne jednoduchý a nie je potrebných veľa komponentov. Stačí zhromaždiť položky uvedené nižšie.
- NodeMCU
- Krokový motor - 28BYJ-48
- Modul ovládača krokového motora
- LM117-3,3V
- Kondenzátory (10uf, 1uf)
- 12V DC adaptér
- Perf Board
- Spájkovacia súprava
- 3D tlačiareň
Ovládanie roliet pomocou Arduina
Teraz je na trhu veľa druhov žalúzií, ale najčastejšie sa používa lano s lemmi (ako je znázornené nižšie), ktoré sa dajú zatiahnuť za účelom otvorenia alebo zatvorenia žalúzií.
Keď potiahneme toto kruhové lano v smere hodinových ručičiek, rolety sa otvoria a keď potiahneme toto lano v protismere hodinových ručičiek, rolety sa zatvoria. Ak by sme teda mali automatizovať tento proces, stačí, aby sme pomocou motora vytiahli toto lano v smere alebo proti smeru hodinových ručičiek a skončíme s tým. V skutočnosti to urobíme v tomto projekte; použijeme krokový motor 28BYJ-48 spolu s NodeMCU na ťahanie korálkového lana.
Navrhnite a vyrobte si žalúziu
Elektronická časť tohto projektu bola pomerne jednoduchá a jednoduchá, náročná bola výroba Blind Gear, ktorá dokázala ťahať korálkové lano. Začnime teda tento článok dizajnom slepej prevodovky, nebudem sa podrobne zaoberať návrhom prevodovky, ale táto základná myšlienka by vám mala pomôcť. Obrázok lana, na ktorom sú umiestnené korálky, je uvedený nižšie.
Opäť existuje veľa druhov lán, ale najbežnejšie používané laná sú vzdialenosť medzi stredmi každej obruby 6 mm a priemer každej obruby 4 mm. Pomocou týchto informácií môžeme zahájiť návrh nášho výstroja. Ak má lano na vašich roletách rovnaké rozmery, ako bolo uvedené, môžete tento krok jednoducho preskočiť, stiahnuť súbor STL uvedený v tomto článku a vytlačiť výstroj. Ak má vaše lano iné usporiadanie obruby, potom by ste mali navrhnúť slepú výbavu znova.
Rozhodol som sa mať na svojom prevodovom stupni 24 guľôčok, aby som získal optimálnu veľkosť ozubeného kolesa. Pre svoje ozubené koleso môžete zvoliť ľubovoľné číslo, ktoré bude k dispozícii. Takže teraz vieme, že vzdialenosť medzi každou obrubou je 6 mm a na našom výstroji potrebujeme 24 guľôčok. Násobením oboch sa získa obvod ozubeného kolesa. S týmito údajmi môžete vypočítať polomer ozubeného kolesa. Ako vidíte na obrázku vyššie, priemer môjho ozubeného kolesa bol vypočítaný na zhruba 46 mm. Pamätajte však, že to nie je skutočný priemer ozubeného kolesa, pretože sme nezohľadnili priemer obruby, ktorý je 4 mm. Skutočný priemer ozubeného kolesa bude teda 42 mm, vytlačil a otestoval som veľa ozubených kolies, kým som našiel ten, ktorý funguje najlepšie. Ak nie ste v dizajne,stačí stiahnuť a vytlačiť súbory STL z nasledujúceho odseku a pokračovať v projekte.
3D tlač držiaka motora a slepého prevodového stupňa
Spolu s ozubeným kolesom budeme tiež potrebovať malý kryt, ktorý je možné vyvŕtať na stenu a držať krokový motor v danej polohe, a to ako kryt, tak aj ozubené koleso použité v tomto projekte.
Kompletné súbory dizajnu a súbory STL nájdete na stránke Arduino Blind Control Thingiverse uvedenej nižšie. Stačí si stiahnuť a vytlačiť svoje slepé radenie a motorové puzdro.
Stiahnite si súbory STL pre Blind Gear a Motor Case
Schéma zapojenia pre ovládanie žalúzií Arduino
Keď ste pripravení na vybavenie a montáž, je ľahké pokračovať v elektronickej a softvérovej časti. Kompletná schéma zapojenia pre projekt ovládania IoT Blind je uvedená nižšie.
Na napájanie celého nastavenia sme použili 12V adaptér; regulátor LM1117-3.3V prevádza 12V na 3,3V, ktoré môžu byť použité na napájanie dosky NodeMCU. Modul ovládača krokového motora je napájaný priamo z 12V adaptéra. Skúšal som bežať krokový motor na 5 V, ale potom neposkytol dostatočný krútiaci moment na zatiahnutie žalúzií, takže sa uistite, že používate aj 12V.
Okrem toho je obvod veľmi jednoduchý, ak ste v oblasti krokových motorov nováčikom, pozrite si základné informácie o krokových motoroch, aby ste pochopili, ako funguje a ako sa dá použiť s mikrokontrolérom.
Aplikácia Blynk pre Arduino Blind Control
Predtým, ako vstúpime do programu Arduino pre ovládanie žalúzií, otvorme aplikáciu blynk a vytvorme niekoľko tlačidiel, pomocou ktorých môžeme zatvárať alebo zatvárať žalúzie. Toto tiež budeme neskôr potrebovať na ovládanie z domovskej stránky Google.
Práve som pridal dve tlačidlá na otváranie a zatváranie žalúzií a časovač na otváranie žalúzií každý deň o 10:00. Môžete pridať viac časovačov na otváranie alebo zatváranie žalúzií v rôznych intervaloch dňa. V zásade, keď musíme zatiahnuť žalúzie, musíme spustiť virtuálny pin V1 a keď musíme otvoriť žalúzie, musíme spustiť virtuálny pin V2. Program na riadenie krokového motora na základe tu stlačeného tlačidla bude napísaný na Arduino IDE, to isté je uvedené nižšie.
Programovanie NodeMCU na ovládanie žalúzií pomocou Blynku
Celý kód ESP8266 pre tento projekt Blind Control Project nájdete v spodnej časti tejto stránky. Náš program musí čakať na príkaz z aplikácie blynk a na základe tohto príkazu musíme otáčať krokový motor buď v smere hodinových ručičiek alebo proti smeru hodinových ručičiek. Dôležité segmenty kódu sú uvedené nižšie.
Podľa našej schémy zapojenia sme na riadenie nášho krokového motora použili digitálne piny 1, 2, 3 a 4 na nodemcu. Takže musíme vytvoriť inštanciu nazvanú stepper pomocou týchto pinov, ako je uvedené nižšie. Všimnite si, že sme zadefinovali kolíky v poradí 1, 3, 2 a 4. Bolo to urobené zámerne a nejde o chybu; musíme vymeniť kolíky 2 a 3, aby motor fungoval správne.
// vytvorime instanciu triedy stepperov pomocou krokov a pinov Stepper stepper (STEPS, D1, D3, D2, D4);
V ďalšom kroku musíme zdieľať náš overovací token aplikácie blynk a poverenia Wi-Fi, ku ktorým musí byť pripojený náš radič IoT Blind. Ak si nie ste istí, ako získať tento overovací token Blynk, pozrite si projekt Blynk LED Control, aby ste pochopili základné informácie o aplikácii blynk a ako ju používať.
// Mali by ste dostať Auth Token v aplikácii Blynk. // Prejdite na Nastavenia projektu (ikona matice). char auth = "l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx"; // Vaše poverenia WiFi. // Nastaviť heslo na „“ pre otvorené siete. char ssid = "CircuitDigest"; char pass = "dummy123";
Keď budeme pokračovať v našom kóde, po funkcii nastavenia sme pre blynk definovali dve metódy. Ako už bolo spomenuté, musíme definovať, čo majú virtuálne piny V1 a V2 robiť. Jeho kód je uvedený nižšie.
BLYNK_WRITE (V1) // ZATVORTE ŽALÚZIE {Serial.println ("Zatváracie rolety"); if (opened == true) {for (int c_val = 0; c_val <= 130; c_val ++) // otáčanie proti smeru hodinových ručičiek na zatvorenie {stepper.step (c_val); výnos (); } zatvorené = pravda; otvorené = nepravda; disable_motor (); // vždy po použití vypnite krokové motory, aby ste znížili spotrebu energie a kúrenie}} BLYNK_WRITE (V2) // OTVORTE ŽALÚZIE {Serial.println ("Otváracie žalúzie"); if (closed == true) {for (int cc_val = 0; cc_val> = -130; cc_val--) // otáčanie v smere hodinových ručičiek na otvorenie {stepper.step (cc_val); výnos (); } otvorené = pravda; zatvorené = nepravdivé; } disable_motor (); // vždy po použití vypnite krokové motory, aby ste znížili spotrebu energie a kúrenie}
Ako vidíte, V1 sa používa na zatiahnutie žalúzií a V2 na otvorenie žalúzií. Pre slučku je slúži k otáčaniu motorov v smere hodinových ručičiek alebo proti smeru hodinových ručičiek na 130 stupňov. Experimentoval som so svojimi žalúziami a zistil som, že so 130 krokmi dokážem svoje žalúzie úplne otvoriť a zatvoriť. Vaše číslo sa môže líšiť. Ďalej je uvedená slučka for na otáčanie krokového motora v smere a proti smeru hodinových ručičiek.
for (int c_val = 0; c_val <= 130; c_val ++) // otočenie proti smeru hodinových ručičiek na zatvorenie {stepper.step (c_val); výnos (); } for (int cc_val = 0; cc_val> = -130; cc_val--) // otáčanie v smere hodinových ručičiek na otvorenie {stepper.step (cc_val); výnos (); }
V našom programe si môžete tiež všimnúť dve booleovské premenné „otvorené“ a „zatvorené“. Tieto dve premenné slúžia na zabránenie tomu, aby motor dvakrát otvoril alebo zatvoril žalúzie. To znamená, že žalúzie sa otvoria, iba ak sú predtým zatvorené, a zatiahnu sa, až keď sú predtým otvorené.
Ako zvýšiť rýchlosť krokového motora 28BJY-48?
Jednou z nevýhod použitia krokového motora 28BJY-48 je to, že je veľmi pomalý. Tieto motory boli pôvodne vyrobené na použitie vo vysoko presných nízkootáčkových aplikáciách, takže neočakávajte, že sa tieto motory budú otáčať vysokou rýchlosťou. Ak chcete pomocou Arduina zvýšiť rýchlosť krokového motora, existujú dva parametre, ktoré môžete zmeniť. Jedným z nich je #define STEPS 64, zistil som, že keď sú kroky definované ako 64, motor bol porovnateľne rýchlejší. Ďalším parametrom je stepper.setSpeed (500); opäť som zistil, že 500 je optimálna hodnota, niečo viac než to, čo skutočne robí krokový motor pomalším.
Poznáte nejaký iný spôsob, ako zvýšiť rýchlosť týchto motorov? Ak áno, nechajte ich v sekcii komentárov nižšie.
Ako zabrániť prehriatiu krokového motora?
Krokové motory by mali byť vždy vypnuté, ak sa nepoužívajú, aby sa zabránilo prehriatiu. Vypnutie krokového motora je veľmi jednoduché; stačí zmeniť stav pinov všetkých štyroch pinov GPIO, ktoré ovládajú krokový motor, na nízky. To je veľmi dôležité, inak by sa váš motor mohol pri + 12V veľmi zahriať a trvale poškodiť. Program deaktivácie krokového motora je uvedený nižšie.
void disable_motor () // po dokončení vypnite motor, aby ste zabránili zahrievaniu {digitalWrite (D1, LOW); digitalWrite (D2, LOW); digitalWrite (D3, LOW); digitalWrite (D4, LOW); }
Ovládanie roliet pomocou Asistenta Google
Na ovládanie žalúzií pomocou asistenta Google použijeme API blynk, bude to podobné ako v našom automatizačnom projekte Voice Controlled Home, takže v prípade záujmu to skontrolujte. V podstate musíme spustiť odkaz uvedený nižšie, keď povieme preddefinovanú frázu Asistentovi Google.
//http://188.166.206.43/l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx/update/V1?value=1 /
Nezabudnite zmeniť autentifikačný token na token poskytnutý vašou aplikáciou blynk. Tento odkaz môžete dokonca vyskúšať v prehliadači Chrome, aby ste zistili, či funguje podľa očakávaní. Teraz, keď je odkaz pripravený, musíme jednoducho prejsť na IFTTT a vytvoriť dva applety, ktoré môžu spustiť virtuálny pin V1 a V2, keď požiadame o zatvorenie a otvorenie žalúzií. Opäť nejdem do podrobností, pretože sme to robili mnohokrát. Ak potrebujete ďalšiu pomoc, pozrite si tento projekt FM rádia ovládaného hlasom, stačí nahradiť služby adafruit webhookmi. Zdieľam tiež snímku obrazovky svojho úryvku pre referenciu.
Arduino založené na automatickom ovládaní žalúzií - demonštrácia
Keď budú obvod a 3D tlačené škatule pripravené, stačí zostaviť zariadenie na stenu vyvŕtaním dvoch otvorov na stene. Moje montážne nastavenie je zobrazené na obrázkoch nižšie.
Potom sa uistite, že sú vaše žalúzie otvorené a potom zapnite obvod. Teraz sa môžete pokúsiť zatiahnuť žalúzie z aplikácie blynk alebo cez Google Assistant a malo by to fungovať. V aplikácii blynk môžete tiež nastaviť časovače tak, aby automaticky otvárali a zatvárali žalúzie v konkrétnu dennú dobu.
Kompletné fungovanie projektu nájdete vo videu uvedenom nižšie; ak máte nejaké otázky, pokojne ich napíšte do sekcie komentárov nižšie. Naše fóra môžete tiež použiť na ďalšie technické diskusie.