- Componente necesare pentru a construi jaluzele automate Arduino
- Controlul rulourilor cu ajutorul Arduino
- Proiectați și construiți dispozitivul de închidere a ferestrelor
- Imprimarea 3D a suportului motorului și a dispozitivului blind
- Diagrama circuitului pentru controlul jaluzelelor Arduino
- Aplicație Blynk pentru Arduino Blind Control
- Programarea NodeMCU pentru controlul jaluzelelor folosind Blynk
- Controlul jaluzelelor folosind Asistentul Google
- Control automat al orbilor de ferestre bazat pe Arduino - Demonstrație
"Buna dimineata. Este ora 7 AM Vremea în Malibu este de 72 de grade… ”acestea au fost primele cuvinte ale lui JARVIS atunci când au fost introduse în Universul Cinematografiei Marvel. Majoritatea fanilor Iron Man ar trebui să poată să-și amintească această scenă și să-și amintească faptul că JARVIS a reușit să deschidă o fereastră (un fel) dimineața și să ofere actualizări privind timpul și vremea. În film, geamurile de la fereastră erau de fapt realizate din afișaje tactile transparente și, prin urmare, JARVIS a reușit să-l transforme din negru în transparent și, de asemenea, să afișeze statistici meteo pe el. Dar, în realitate, suntem departe de ecranele tactile transparente și cu cât ne putem apropia este de a controla automat jaluzelele sau constrângerile.
Deci, în acest proiect, vom construi exact asta, vom construi o jaluză automată motorizată care s-ar deschide și închide automat la momente predefinite. Anterior, am construit multe proiecte de automatizare a locuințelor în care am automatizat luminile, motoarele etc. Puteți verifica dacă sunteți interesat. Deci, revenind, aceste jaluzele controlate Arduino pot prelua și comenzi de la asistentul Google, astfel încât să puteți deschide sau închide jaluzelele de la distanță prin comenzi vocale. Intrigant? Apoi, să o construim.
Componente necesare pentru a construi jaluzele automate Arduino
Proiectul este relativ simplu și nu sunt necesare multe componente. Adunați elementele enumerate mai jos.
- NodeMCU
- Motor pas cu pas - 28BYJ-48
- Modulul driverului motorului pas cu pas
- LM117-3.3V
- Condensatoare (10uf, 1uf)
- Adaptor 12V DC
- Perf Board
- Set de lipit
- imprimantă 3d
Controlul rulourilor cu ajutorul Arduino
Acum există multe tipuri de jaluzele pe piață, dar cel mai frecvent utilizat are o frânghie cu margele (așa cum se arată mai jos) care poate fi trasă pentru a deschide sau închide jaluzelele.
Când tragem această frânghie circulară în sensul acelor de ceasornic, jaluzelele se deschid și atunci când tragem această frânghie în sens antiorar, jaluzelele se vor închide. Deci, dacă ar fi să automatizăm acest proces, tot ce trebuie să facem este să folosim un motor pentru a trage această frânghie în sensul acelor de ceasornic sau antiorar și vom termina cu el. De fapt, asta vom face în acest proiect; vom folosi motorul pas cu pas 28BYJ-48 împreună cu un NodeMCU pentru a trage coarda cu margele.
Proiectați și construiți dispozitivul de închidere a ferestrelor
Partea electronică a acestui proiect a fost destul de simplă și directă, partea provocatoare a fost construirea Blind Gear care ar putea trage coarda cu margele. Deci, să începem acest articol cu designul uneltei blind, nu voi intra în detalii despre cum să proiectați uneltele, dar această idee de bază ar trebui să vă ajute. O imagine a frânghiei cu mărgele pe ea este prezentată mai jos.
Din nou, există multe tipuri de frânghii, dar cele mai frecvent utilizate frânghii sunt distanța de la centru la centru a fiecărei margele este de 6 mm și diametrul fiecărei margele este de 4 mm. Folosind aceste informații, putem începe proiectarea echipamentului nostru. Dacă frânghia de pe jaluzele dvs. are aceleași dimensiuni ca cele discutate, puteți săriți peste acest pas și să descărcați fișierul STL furnizat în acest articol și să imprimați echipamentul. Dacă frânghia dvs. are un alt aranjament de margele, atunci acesta este modul în care ar trebui să reproiectați angrenajul orb.
Am decis să am 24 de margele pe uneltele mele pentru a obține o dimensiune optimă a roții dințate, puteți selecta orice număr apropiat de acesta pentru ca roata dințată să fie mare sau mică. Deci, acum știm că distanța dintre fiecare margele este de 6 mm și avem nevoie de 24 de margele pe uneltele noastre. Înmulțirea ambelor va da circumferința roții dințate. Cu aceste date, puteți calcula raza roții dințate. După cum puteți vedea în imaginea de mai sus, diametrul roții dințate a fost calculat la aproximativ 46 mm. Dar amintiți-vă, acesta nu este diametrul real al angrenajului, deoarece nu am luat în considerare diametrul margelelor care este de 4 mm. Deci, diametrul real al roții dințate va fi de 42 mm, am tipărit și testat multe roți dințate înainte să-l găsesc pe cel care funcționează cel mai bine. Dacă nu sunteți în design,descărcați și tipăriți fișierele STL din paragraful următor și continuați cu proiectul dumneavoastră.
Imprimarea 3D a suportului motorului și a dispozitivului blind
Împreună cu angrenajul, vom avea nevoie și de o carcasă mică care să poată fi găurită pe perete și să țină motorul pas cu pas în poziție, atât carcasa, cât și angrenajul utilizat în acest proiect sunt prezentate mai jos.
Puteți găsi fișiere complete de proiectare și fișiere STL pe pagina Arduino Blind Control Thingiverse prezentată mai jos. Puteți doar să descărcați și să imprimați carcasa uneltelor și a motorului.
Descărcați fișiere STL pentru Blind Gear și Motor Case
Diagrama circuitului pentru controlul jaluzelelor Arduino
Odată ce sunteți gata cu angrenajul și ansamblul, este ușor să continuați cu partea electronică și software. Schema completă a circuitului pentru proiectul de control IoT Blind este prezentată mai jos.
Am folosit un adaptor de 12V pentru a alimenta întreaga configurare; regulatorul LM1117-3.3V convertește 12V în 3.3V care poate fi utilizat pentru alimentarea plăcii NodeMCU. Modulul driverului motorului pas cu pas este alimentat direct de la adaptorul de 12V. Am încercat să rulez motorul pas cu pas pe 5V, dar apoi nu a oferit un cuplu suficient pentru a trage jaluzelele, deci asigurați-vă că utilizați și 12V.
În afară de asta, circuitul este destul de simplu, dacă sunteți nou la motoarele pas cu pas, analizați elementele de bază ale articolului motorului pas cu pas pentru a înțelege cum funcționează și cum poate fi utilizat cu un microcontroler.
Aplicație Blynk pentru Arduino Blind Control
Înainte de a intra în programul Arduino pentru controlul jaluzelelor, permiteți deschiderea aplicației blynk și crearea unor butoane cu ajutorul cărora putem deschide sau închide jaluzelele. De asemenea, vom avea nevoie de acest lucru mai târziu pentru a controla de la Google acasă.
Tocmai am adăugat două butoane pentru a deschide și închide jaluzelele și o singură dată pentru a deschide jaluzelele la 10:00 dimineața în fiecare zi. Puteți adăuga mai multe temporizatoare pentru a deschide sau închide jaluzelele la diferite intervale ale zilei. Practic, atunci când trebuie să închidem jaluzelele, trebuie să declanșăm pinul virtual V1 și când trebuie să deschidem jaluzelele, trebuie să declanșăm pinul virtual V2. Programul pentru controlul motorului pas cu pas pe baza butonului apăsat aici va fi scris pe Arduino IDE, același lucru este discutat mai jos.
Programarea NodeMCU pentru controlul jaluzelelor folosind Blynk
Codul ESP8266 complet pentru acest proiect Blind Control poate fi găsit în partea de jos a acestei pagini. Programul nostru trebuie să aștepte o comandă din aplicația blynk și, pe baza acelei comenzi, trebuie să rotim motorul pas cu pas în sensul acelor de ceasornic sau în sens antiorar. Segmentele importante ale codului sunt discutate mai jos.
Conform schemei noastre de circuite, am folosit pinii digitali 1, 2, 3 și 4 pe nodemcu pentru a controla motorul nostru pas cu pas. Deci, trebuie să creăm o instanță numită stepper folosind acești pini așa cum se arată mai jos. Observați că am definit pinii în ordinea 1, 3, 2 și 4. S-a făcut deliberat și nu este o greșeală; trebuie să schimbăm pinii 2 și 3 pentru ca motorul să funcționeze corect.
// creați o instanță a clasei stepper folosind pașii și pinii Stepper stepper (STEPS, D1, D3, D2, D4);
În pasul următor, trebuie să împărtășim simbolul nostru de autentificare a aplicației blynk și acreditările Wi-Fi la care trebuie să fie conectat controlerul nostru IoT Blind. Dacă nu sunteți sigur cum să obțineți acest token de autentificare Blynk, consultați proiectul Blynk LED Control pentru a înțelege elementele de bază ale aplicației blynk și cum să îl utilizați.
// Ar trebui să obțineți Auth Token în aplicația Blynk. // Accesați Setările proiectului (pictograma piuliță). char auth = "l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx"; // Acreditările dvs. WiFi. // Setați parola la „” pentru rețelele deschise. char ssid = "CircuitDigest"; char pass = "dummy123";
Continuând cu codul nostru, după funcția de configurare, am definit două metode pentru blynk. După cum sa menționat anterior, trebuie să definim ce ar trebui să facă pinii virtuali V1 și V2. Codul pentru același lucru este dat mai jos.
BLYNK_WRITE (V1) // CLOSE the BLINDS {Serial.println ("Închiderea blindurilor"); if (deschis == adevărat) {for (int c_val = 0; c_val <= 130; c_val ++) // rotiți în sens invers acelor de ceasornic pentru închiderea {stepper.step (c_val); Randament(); } închis = adevărat; deschis = fals; disable_motor (); // se pot folosi întotdeauna motoare pas cu pas după utilizare pentru a reduce consumul de energie și încălzirea}} BLYNK_WRITE (V2) // DESCHIDE JALZILE {Serial.println („Deschiderea Jaluzelelor”); if (închis == adevărat) {for (int cc_val = 0; cc_val> = -130; cc_val--) // rotiți în sensul acelor de ceasornic pentru deschiderea {stepper.step (cc_val); Randament(); } deschis = adevărat; închis = fals; } disable_motor (); // motoare pas cu pas întotdeauna dezactivabile după utilizare pentru a reduce consumul de energie și încălzirea}
După cum puteți vedea, V1 este folosit pentru a închide jaluzelele, iar V2 este folosit pentru a deschide jaluzelele. O buclă for este utilizată pentru a roti motoarele în direcția acelor de ceasornic sau antiorar pentru 130 de trepte. Am experimentat cu jaluzelele mele pentru a descoperi că, cu 130 de pași, sunt capabil să deschid și să închid complet jaluzelele. Numărul dvs. poate varia. Pentru bucla la motor pas cu pas de rotire în sensul acelor de ceasornic și invers acelor de ceasornic este prezentată mai jos.
for (int c_val = 0; c_val <= 130; c_val ++) // rotiți în sens invers acelor de ceasornic pentru închiderea {stepper.step (c_val); Randament(); } pentru (int cc_val = 0; cc_val> = -130; cc_val--) // rotiți în sensul acelor de ceasornic pentru deschiderea {stepper.step (cc_val); Randament(); }
De asemenea, puteți observa două variabile booleene „deschise” și „închise” în programul nostru. Aceste două variabile sunt utilizate pentru a împiedica motorul să deschidă sau să închidă jaluzelele de două ori. Adică, jaluzelele se vor deschide numai atunci când sunt închise anterior și se vor închide numai atunci când sunt deschise anterior.
Cum se mărește viteza motorului pas cu pas 28BJY-48?
Un dezavantaj al utilizării motorului pas cu pas 28BJY-48 este că este foarte lent. Aceste motoare au fost fabricate inițial pentru a fi utilizate în aplicații de înaltă precizie cu viteză redusă, deci nu vă așteptați ca aceste motoare să se rotească la viteză mare. Dacă doriți să măriți viteza motorului pas cu pas folosind Arduino, există doi parametri pe care îi puteți modifica. Unul este #define STEPS 64, am constatat că atunci când pașii sunt definiți ca 64, motorul a fost relativ mai rapid. Un alt parametru este un stepper.setSpeed (500); din nou, am descoperit că 500 este o valoare optimă, orice altceva decât asta face motorul pas cu pas mai lent.
Știți vreo altă modalitate de a crește viteza acestor motoare? Dacă da, lăsați-le în secțiunea de comentarii de mai jos.
Cum se previne supraîncălzirea motorului pas cu pas?
Motoarele pas cu pas trebuie să fie întotdeauna dezactivate atunci când nu sunt utilizate pentru a preveni supraîncălzirea. Dezactivarea unui motor pas cu pas este foarte simplă; schimbați doar starea pinului tuturor celor patru pini GPIO care controlează motorul pas cu pas la scăzut. Acest lucru este foarte important, altfel motorul dvs. ar putea fi foarte fierbinte la + 12V și se va deteriora permanent. Programul de dezactivare a motorului pas cu pas este dat mai jos.
void disable_motor () // opriți motorul când ați terminat pentru a evita încălzirea {digitalWrite (D1, LOW); digitalWrite (D2, LOW); digitalWrite (D3, LOW); digitalWrite (D4, LOW); }
Controlul jaluzelelor folosind Asistentul Google
Vom folosi API-ul blynk pentru a controla jaluzelele prin intermediul asistentului Google, acesta va fi similar cu proiectul nostru de automatizare casnică cu control vocal, așa că verificați dacă sunteți interesat. Practic, trebuie să declanșăm linkul de mai jos atunci când spunem o frază predefinită Asistentului Google.
//http://188.166.206.43/l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx/update/V1?value=1 /
Asigurați-vă că schimbați jetonul de autentificare cu cel furnizat de aplicația dvs. blynk. Puteți chiar testa acest link pe browserul dvs. Chrome pentru a vedea dacă funcționează așa cum era de așteptat. Acum că legătura este gata, trebuie pur și simplu să trecem la IFTTT și să creăm două applet-uri care pot declanșa pinul virtual V1 și V2 atunci când cerem să închidem și să deschidem jaluzelele. Din nou, nu intru în detaliile acestui lucru, deoarece am făcut asta de multe ori. Dacă aveți nevoie de mai mult ajutor, consultați acest proiect de radio FM controlat prin voce, înlocuiți doar serviciile adafruit cu webhooks. De asemenea, împărtășesc o captură de ecran a fragmentului meu pentru referință.
Control automat al orbilor de ferestre bazat pe Arduino - Demonstrație
După ce circuitul și carcasele tipărite 3D sunt gata, asamblați dispozitivul pe perete găurind două găuri pe perete. Setarea mea de montare este prezentată în imaginile de mai jos.
După aceea, asigurați-vă că jaluzelele sunt într-o stare deschisă și apoi porniți circuitul. Acum, puteți încerca să închideți jaluzelele din aplicația blynk sau prin Google Assistant și ar trebui să funcționeze. De asemenea, puteți seta cronometre în aplicația blynk pentru a deschide și închide automat jaluzela la o anumită oră a zilei.
Funcționarea completă a proiectului poate fi găsită în videoclipul prezentat mai jos; dacă aveți întrebări, nu ezitați să le scrieți în secțiunea de comentarii de mai jos. De asemenea, puteți utiliza forumurile noastre pentru alte discuții tehnice.