- Komponente potrebne za izradu Arduino automatiziranih roleta
- Upravljanje roletama pomoću Arduina
- Dizajnirajte i izradite zaslon za prozore
- 3D ispis na držač motora i slijepi zupčanik
- Kružni dijagram za kontrolu Arduino roleta
- Blynk aplikacija za kontrolu slijepih Arduino
- Programiranje NodeMCU za kontrolu roleta pomoću Blynk-a
- Upravljanje roletama na prozoru pomoću Google asistenta
- Automatska kontrola roleta na prozoru zasnovana na Arduinu - demonstracija
"Dobro jutro. 7 sati ujutro Vrijeme je u Malibuu 72 stupnja… ”, bile su to prve riječi JARVIS-a kada su predstavljene u svemiru Marvel Cinematics. Većina obožavatelja Iron Mana trebala bi se moći sjetiti ove scene i sjetiti se da je JARVIS ujutro uspio otvoriti prozor (vrsta) i obavještavati o vremenu i vremenu. U filmu su naočale za prozor zapravo bile napravljene od prozirnih zaslona na dodir, pa je JARVIS uspio napraviti od njega crnu boju i prozirnu te na njoj prikazati vremenske statistike. No, u stvarnosti smo daleko od prozirnih zaslona osjetljivih na dodir i što se više možemo približiti je automatska kontrola zaslona ili ograničenja.
Dakle, u ovom ćemo projektu izgraditi upravo to, izgradit ćemo automatiziranu motoriziranu zavjesu koja će se automatski otvarati i zatvarati u unaprijed definirano vrijeme. Prije toga izgradili smo mnoge projekte automatizacije kuća u kojima smo automatizirali svjetla, motore itd. Možete ih provjeriti ako ste zainteresirani. Dakle, po povratku, ove rolete pod nadzorom Arduina također mogu primati naredbe od Google pomoćnika tako da možete daljinski otvarati ili zatvarati svoje rolete putem glasovnih naredbi. Intrigantno? Onda, napravimo to.
Komponente potrebne za izradu Arduino automatiziranih roleta
Projekt je relativno jednostavan i nije potrebno mnogo komponenata. Samo skupite dolje navedene stavke.
- NodeMCU
- Koračni motor - 28BYJ-48
- Modul pokretačkog motora koračnog motora
- LM117-3.3V
- Kondenzatori (10uf, 1uf)
- DC adapter 12V
- Perf Board
- Komplet za lemljenje
- 3D pisač
Upravljanje roletama pomoću Arduina
Sada na tržištu postoji mnogo vrsta sjenila, ali najčešće korištena ima uže s perlama (kao što je prikazano dolje) koje se mogu povući za otvaranje ili zatvaranje roleta.

Kad povučemo ovaj kružni konop u smjeru kazaljke na satu, otvorit će se prozorske rolete, a kada povučemo ovo uže u smjeru suprotnom od kazaljke na satu, zaslon će se zatvoriti. Dakle, ako bismo automatizirali ovaj postupak, sve što trebamo učiniti je koristiti motor za povlačenje ovog užeta u smjeru kazaljke na satu ili u smjeru suprotnom od kazaljke na satu i s tim ćemo završiti. Zapravo, to ćemo učiniti u ovom projektu; koristit ćemo koračni motor 28BYJ-48 zajedno s NodeMCU za povlačenje užeta s perlicama.
Dizajnirajte i izradite zaslon za prozore
Elektronički dio ovog projekta bio je prilično jednostavan i izravan naprijed, izazovni dio bio je u izgradnji Blind Gear-a koji je mogao povući zrno užeta. Počnimo ovaj članak s dizajnom slijepe opreme, neću ulaziti u detalje o dizajniranju opreme, ali ova osnovna ideja trebala bi vam pomoći. Slika užeta s kuglicama na njemu prikazana je dolje.

Opet, postoji mnogo vrsta užadi, ali najčešće korišteni užad je udaljenost od središta do središta svake perle 6 mm, a promjer svake perle 4 mm. Koristeći ove podatke, možemo započeti dizajn svoje opreme. Ako uže na vašim roletama ima iste dimenzije kao što je raspravljeno, možete jednostavno preskočiti ovaj korak i preuzeti STL datoteku navedenu u ovom članku i ispisati zupčanik. Ako vaše uže ima drugačiji raspored perliranja, tada biste trebali preoblikovati slijepi zupčanik.

Odlučio sam imati 24 kuglice na zupčaniku kako bih dobio optimalnu veličinu zupčanika. Možete odabrati bilo koji broj blizu ovog da vaš zupčanik bude velik ili mali. Dakle, sada znamo da je udaljenost između svake perle 6 mm i trebamo 24 kuglice na našoj opremi. Množenjem oba dobit ćete opseg zupčanika. Pomoću ovih podataka možete izračunati polumjer zupčanika. Kao što možete vidjeti na gornjoj slici, izračunat je promjer mog zupčanika oko 46 mm. Ali upamtite, ovo nije stvarni promjer zupčanika, jer nismo uzeli u obzir promjer zupčanika koji je 4 mm. Dakle, stvarni promjer zupčanika bit će 42 mm, ispisao sam i testirao mnoge zupčanike prije nego što sam pronašao onaj koji najbolje radi. Ako se ne bavite dizajnom,samo preuzmite i ispišite STL datoteke iz sljedećeg odlomka i nastavite sa svojim projektom.

3D ispis na držač motora i slijepi zupčanik
Uz zupčanik trebat će nam i malo kućište koje se može izbušiti na zid i držati koračni motor u položaju, kako su kućište i zupčanik korišteni u ovom projektu prikazani u nastavku.

Kompletne datoteke dizajna i STL datoteke možete pronaći na stranici Arduino Blind Control Thingiverse koja je navedena u nastavku. Jednostavno možete preuzeti i ispisati svoju slijepu zupčanicu i kućište motora.
Preuzmite STL datoteke za slijepi zupčanik i kućište motora
Kružni dijagram za kontrolu Arduino roleta
Kad ste spremni s prijenosnikom i sklopom, lako je nastaviti s dijelom elektronike i softvera. Kompletni dijagram sklopa za IoT projekt upravljanja slijepim prikazan je u nastavku.

Za napajanje cijele postavke koristili smo adapter od 12 V; regulator LM1117-3.3V pretvara 12V u 3.3V koji se mogu koristiti za napajanje NodeMCU ploče. Modul pogonskog koračnog motora napaja se izravno od 12V adaptera. Pokušao sam pokretati koračni motor na 5 V, ali tada nije pružao dovoljan obrtni moment za izvlačenje roleta, pa provjerite koristite li i 12 V.
Osim toga, sklop je prilično jednostavan, ako ste novi u koračnim motorima, proučite osnove članka o koračnim motorima kako biste razumjeli kako to radi i kako se može koristiti s mikrokontrolerom.
Blynk aplikacija za kontrolu slijepih Arduino
Prije nego što uđemo u program Arduino za upravljanje roletama, otvorimo aplikaciju blynk i stvorimo neke gumbe pomoću kojih možemo otvoriti ili zatvoriti naše rolete. To će nam trebati i kasnije za kontrolu s Googleove kuće.

Upravo sam dodao dva gumba za otvaranje i zatvaranje roleta i jednosmjerno otvaranje roleta svaki dan u 10:00 sati. Možete dodati više tajmera za otvaranje ili zatvaranje roleta u različitim intervalima dana. U osnovi, kada moramo zatvoriti rolete, moramo aktivirati virtualni pin V1, a kada moramo otvoriti rolete, moramo aktivirati virtualni pin V2. Program za upravljanje koračnim motorom zasnovan na ovdje pritisnutom gumbu bit će napisan na Arduino IDE-u, isto se raspravlja u nastavku.
Programiranje NodeMCU za kontrolu roleta pomoću Blynk-a
Kompletni ESP8266 kôd za ovaj projekt upravljanja slijepima nalazi se na dnu ove stranice. Naš program mora pričekati naredbu iz aplikacije blynk i na temelju te naredbe moramo okretati koračni motor u smjeru kazaljke na satu ili u smjeru suprotnom od kazaljke na satu. U nastavku se razmatraju važni segmenti koda.
Prema našem dijagram krugu, koristili smo digitalne pinove 1, 2, 3 i 4 na nodemcu za upravljanje koračnim motorom. Dakle, moramo stvoriti instancu zvanu stepper pomoću ovih pinova kako je prikazano u nastavku. Primijetite da smo igle definirali redom 1, 3, 2 i 4. To je učinjeno namjerno i nije pogreška; moramo zamijeniti iglice 2 i 3 kako bi motor ispravno radio.
// stvorimo instancu stepene klase pomoću koraka i pribadača Stepper stepper (STEPS, D1, D3, D2, D4);
U sljedećem koraku moramo podijeliti svoj token za provjeru autentičnosti blynk i Wi-Fi vjerodajnice na koje mora biti povezan naš IoT Blind kontroler. Ako niste sigurni kako dobiti ovaj Blynk autoken, pogledajte projekt Blynk LED Control kako biste razumjeli osnove blynk aplikacije i kako ga koristiti.
// Trebali biste dobiti Auth Token u aplikaciji Blynk. // Idite na Postavke projekta (ikona matice). char auth = "l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx"; // Vaše vjerodajnice za WiFi. // Postavite lozinku na "" za otvorene mreže. char ssid = "CircuitDigest"; char pass = "lutka123";
Nastavljajući s našim kodom, nakon funkcije postavljanja, definirali smo dvije metode za blynk. Kao što je prethodno spomenuto, moramo definirati što virtualni pinovi V1 i V2 trebaju raditi. Kôd za isti naveden je u nastavku.
BLYNK_WRITE (V1) // ZATVORITE SOLIJE {Serial.println ("Zatvaranje roleta"); if (otvoren == true) {for (int c_val = 0; c_val <= 130; c_val ++) // rotiraj u smjeru suprotnom od kazaljke na satu za zatvaranje {stepper.step (c_val); prinos(); } zatvoreno = istinito; otvoreno = lažno; disable_motor (); // koračni motori uvijek poželjni nakon upotrebe radi smanjenja potrošnje energije i grijanja}} BLYNK_WRITE (V2) // OTVORITE ŽOLIJEZE {Serial.println ("Otvaranje roleta"); if (closed == true) {for (int cc_val = 0; cc_val> = -130; cc_val--) // rotiraj u smjeru kazaljke na satu za otvaranje {stepper.step (cc_val); prinos(); } otvoreno = istinito; zatvoreno = lažno; } onesposobiti_motor (); // koračni motori uvijek poželjni nakon upotrebe za smanjenje potrošnje energije i grijanja}
Kao što vidite V1 služi za zatvaranje roleta, a V2 za otvaranje roleta. Za petlju koristi se rotirati u smjeru kazaljke na satu motore ili anti-smjeru kazaljke na satu za 130 stupnjeva. Eksperimentirao sam sa svojim roletama kako bih ustanovio da sa 130 koraka mogu u potpunosti otvoriti i zatvoriti svoje rolete. Vaš se broj može razlikovati. Za petlju za rotiranje koračnog motora u smjeru kazaljke na satu i suprotno smjeru kazaljke na satu-prikazan je u nastavku.
for (int c_val = 0; c_val <= 130; c_val ++) // rotiraj u smjeru suprotnom od kazaljke na satu za zatvaranje {stepper.step (c_val); prinos(); } for (int cc_val = 0; cc_val> = -130; cc_val--) // rotiraj u smjeru kazaljke na satu za otvaranje {stepper.step (cc_val); prinos(); }
Također možete primijetiti dvije logičke varijable "otvoreno" i "zatvoreno" u našem programu. Ove dvije varijable koriste se kako bi spriječile da motor dva puta otvori ili zatvori rolete. Znači, rolete će se otvoriti samo kad je prethodno zatvoreno, a zatvoriti se samo kad je prethodno otvoreno.
Kako povećati brzinu koračnog motora 28BJY-48?
Jedan nedostatak korištenja koračnog motora 28BJY-48 je taj što je vrlo spor. Ovi su motori izvorno proizvedeni za upotrebu u preciznim niskobrzinskim aplikacijama, pa nemojte očekivati da će se ovi motori okretati velikom brzinom. Ako želite povećati brzinu koračnog motora pomoću Arduina, dva su parametra koja možete promijeniti. Jedan je #define STEPS 64, otkrio sam da kada su koraci definirani kao 64, motor je bio relativno brži. Drugi je parametar stepper.setSpeed (500); opet sam otkrio da je 500 optimalna vrijednost, nešto više od toga, zapravo koračni motor usporava.
Znate li još neki način za povećanje brzine ovih motora? Ako je odgovor da, ostavite ih u odjeljku za komentare u nastavku.
Kako spriječiti pregrijavanje koračnog motora?
Koračne motore uvijek treba onemogućiti kad se ne koriste kako bi se spriječilo pregrijavanje. Onemogućivanje koračnog motora vrlo je jednostavno; samo promijenite status pina svih četiri GPIO pina koji upravljaju koračnim motorom na nizak. To je vrlo važno, inače se vaš motor može jako zagrijati na + 12V i trajno se oštetiti. Program za onemogućavanje koračnog motora dat je u nastavku.
void disable_motor () // ugasimo motor kad je gotovo kako bismo izbjegli zagrijavanje {digitalWrite (D1, LOW); digitalWrite (D2, LOW); digitalWrite (D3, LOW); digitalWrite (D4, LOW); }
Upravljanje roletama na prozoru pomoću Google asistenta
Upotrijebit ćemo blynk API za kontrolu roleta putem Googleovog asistenta, bit će sličan našem projektu Automatizacije kuće s glasovnim nadzorom, pa provjerite ako je zainteresiran. U osnovi, moramo pokrenuti donju vezu kada izgovorimo unaprijed definiranu frazu Google asistentu.
//http://188.166.206.43/l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx/update/V1?value=1 /
Obavezno promijenite token za provjeru autentičnosti na onaj koji pruža vaša aplikacija blynk. Možete čak testirati ovu vezu na svom Chrome pregledniku da biste vidjeli radi li onako kako se očekuje. Sad kad je veza spremna, jednostavno moramo prijeći na IFTTT i stvoriti dva apleta koji mogu pokrenuti virtualni pin V1 i V2 kada zatražimo zatvaranje i otvaranje roleta. Opet, ne ulazim u detalje ovoga, jer smo to činili mnogo puta. Ako vam je potrebna dodatna pomoć, pogledajte ovaj projekt FM radija kojim upravlja glas, samo zamijenite usluge adafruit web kukama. Također dijelim snimku zaslona svog isječka za referencu.

Automatska kontrola roleta na prozoru zasnovana na Arduinu - demonstracija
Nakon što su sklop i kućišta s 3D ispisom spremni, samo sastavite uređaj na zid bušenjem dvije rupe na zidu. Moje postavke za montiranje prikazane su na donjim slikama.

Nakon toga provjerite jesu li vaše rolete u otvorenom stanju i zatim uključite krug. Sada možete pokušati zatvoriti rolete iz aplikacije blynk ili putem Google Asistenta i to bi trebalo raditi. Također možete postaviti odbrojavanja u aplikaciji blynk da automatski otvaraju i zatvaraju rolete u određeno doba dana.

Kompletni rad projekta možete pronaći u video prilogu dolje; ako imate bilo kakvih pitanja, slobodno ih napišite u odjeljku za komentare u nastavku. Također, naše forume možete koristiti za ostale tehničke rasprave.
