- Komponente, potrebne za izdelavo Arduino avtomatiziranih senčil
- Nadzor rolojev z uporabo Arduina
- Načrtujte in izdelajte okensko rolo
- 3D tiskanje držala motorja in slepega zobnika
- Shema vezja za nadzor senčil Arduino
- Blynk aplikacija za nadzor slepih Arduino
- Programiranje NodeMCU za nadzor senčil s pomočjo Blynka
- Nadzor okenskih senčil s pomočjo Google Assistant
- Samodejni nadzor žaluzije oken na osnovi Arduina - demonstracija
"Dobro jutro. Ura je sedem zjutraj. Vreme v Malibuju je 72 stopinj… «so bile prve besede JARVIS-a ob predstavitvi v vesolju Marvel Cinematics. Večina oboževalcev Iron Mana bi se morala spomniti te scene in se spomniti, da je JARVIS zjutraj lahko odprl okno (nekakšno) in dal informacije o času in vremenu. V filmu so bila steklena očala dejansko narejena iz prozornih zaslonov na dotik, zato je JARVIS lahko naredil, da se iz črne spremeni v prosojno in na njej prikaže tudi vremensko statistiko. V resnici pa smo daleč stran od zaslonov na dotik, ki se vidijo skozi oči, in bližje lahko samodejnemu nadzoru senčil ali omejitev.
Torej, v tem projektu bomo zgradili točno to, zgradili bomo avtomatizirano motorizirano senčilo, ki se bo samodejno odpiralo in zapiralo v vnaprej določenih urah. Pred tem smo zgradili veliko projektov avtomatizacije stanovanj, v katerih smo avtomatizirali luči, motorje itd. Če jih želite, si jih lahko ogledate. Torej, te Arduino nadzorovane žaluzije lahko sprejmejo ukaze tudi od Googlovega pomočnika, tako da lahko z glasovnimi ukazi na daljavo odprete ali zaprete okenska senčila. Zanimivo? Potem pa naj bo zgrajena.
Komponente, potrebne za izdelavo Arduino avtomatiziranih senčil
Projekt je razmeroma preprost in ni potrebnih veliko komponent. Samo zberite spodaj navedene elemente.
- NodeMCU
- Koračni motor - 28BYJ-48
- Modul gonilnika koračnega motorja
- LM117-3.3V
- Kondenzatorji (10uf, 1uf)
- 12V enosmerni adapter
- Perf Board
- Komplet za spajkanje
- 3D tiskalnik
Nadzor rolojev z uporabo Arduina
Zdaj je na trgu veliko vrst žaluzije, najpogosteje uporabljena pa ima vrv z nosilci (kot je prikazano spodaj), ki jo je mogoče potegniti za odpiranje ali zapiranje senčil.
Ko to krožno vrv potegnemo v smeri urinega kazalca, se bodo okenska senčila odprla in ko to vrv potegnemo v nasprotni smeri urnega kazalca, se bodo okenske rolete zaprle. Torej, če bi morali ta postopek avtomatizirati, moramo samo z motorjem povleči to vrv v smeri urnega kazalca ali v nasprotni smeri urnega kazalca in z njo bomo končali. Pravzaprav bomo to storili v tem projektu; koračni motor 28BYJ-48 bomo uporabili skupaj z NodeMCU za vlečenje krogličaste vrvi.
Načrtujte in izdelajte okensko rolo
Elektronski del tega projekta je bil dokaj preprost in neposreden, zahteven del je bil pri izdelavi Blind Gear, ki bi lahko vlekel kroglično vrv. Začnimo ta članek torej z zasnovo slepega orodja, ne bom se spuščal v podrobnosti o oblikovanju orodja, vendar bi vam morala pomagati ta osnovna ideja. Slika vrvi s kroglicami na njej je prikazana spodaj.
Spet obstaja veliko vrst vrvi, vendar so najpogosteje uporabljene vrvi medsebojna razdalja vsakega kroglice 6 mm in premer vsake kroglice 4 mm. S pomočjo teh informacij lahko začnemo oblikovati svojo opremo. Če ima vrv na vaših žaluzijah enake mere, kot smo že razpravljali, lahko ta korak preprosto preskočite in prenesete datoteko STL iz tega članka in natisnete orodje. Če ima vaša vrv drugačno razporeditev kroglic, potem morate tako preoblikovati slepo orodje.
Odločil sem se, da imam na svojem orodju 24 kroglic, da dobim optimalno velikost zobnika. Izberete lahko katero koli številko, ki je blizu te, da bo vaše gonilo večje ali majhno. Zdaj vemo, da je razdalja med posameznimi kroglicami 6 mm in na orodju potrebujemo 24 kroglic. Če pomnožite oba, dobite obseg zobnika. S temi podatki lahko izračunate polmer zobnika. Kot lahko vidite na zgornji sliki, je bil premer zobnika izračunan približno 46 mm. Ampak ne pozabite, da to ni dejanski premer zobnika, ker nismo upoštevali premera obroča, ki je 4 mm. Tako bo dejanski premer zobnika 42 mm, natisnil sem in preizkusil veliko zobnikov, preden sem našel tisto, ki deluje najbolje. Če se ne ukvarjate z modeli,preprosto prenesite in natisnite datoteke STL iz naslednjega odstavka in nadaljujte s svojim projektom.
3D tiskanje držala motorja in slepega zobnika
Skupaj z zobnikom bomo potrebovali tudi majhno ohišje, ki ga lahko izvrtamo na steno in držimo koračni motor v položaju, tako da sta ohišje in orodje, uporabljeno v tem projektu, prikazani spodaj.
Na spodnji strani Arduino Blind Control Thingiverse najdete celotne datoteke oblikovanja in datoteke STL. Preprosto lahko naložite in natisnete slepo ohišje in etui motorja.
Prenesite datoteke STL za ovitek za slepo gonilo in motor
Shema vezja za nadzor senčil Arduino
Ko ste pripravljeni na orodje in sklop, je enostavno nadaljevati z delom z elektroniko in programsko opremo. Popoln diagram vezja za projekt nadzora IoT Blind je prikazan spodaj.
Za napajanje celotne namestitve smo uporabili 12V adapter; regulator LM1117-3.3V pretvori 12V v 3.3V, ki se lahko uporabljajo za napajanje plošče NodeMCU. Modul gonilnika koračnega motorja se napaja neposredno iz 12V adapterja. Poskusil sem zagnati koračni motor na 5V, vendar potem ni zagotovil dovolj navora, da bi potegnil žaluzije, zato se prepričajte, da uporabljate tudi 12V.
Poleg tega je vezje precej preprosto, če ste korak za koračnimi motorji, si oglejte osnove članka o koračnih motorjih, da boste razumeli, kako deluje in kako ga lahko uporabljate z mikrokrmilnikom.
Blynk aplikacija za nadzor slepih Arduino
Preden vstopimo v program Arduino za nadzor žaluzij, odprite aplikacijo blynk in ustvarite nekaj gumbov, s katerimi lahko odpremo ali zapremo žaluzije. To bomo potrebovali tudi kasneje za nadzor od Googlovega doma.
Pravkar sem dodal dva gumba za odpiranje in zapiranje žaluzij in enomeren odpiranje žaluzij vsak dan ob 10:00. Dodate lahko več časovnikov za odpiranje ali zapiranje žaluzij v različnih intervalih dneva. V bistvu, ko moramo zapreti rolete, moramo sprožiti virtualni zatič V1, ko pa moramo odpreti rolete, moramo sprožiti navidezni zatič V2. Program za nadzor koračnega motorja, ki temelji na tukaj pritisnjenem gumbu, bo zapisan na Arduino IDE, enako je opisano spodaj.
Programiranje NodeMCU za nadzor senčil s pomočjo Blynka
Popolno kodo ESP8266 za ta projekt nadzora nad slepimi ploščami najdete na dnu te strani. Naš program mora počakati na ukaz iz aplikacije blynk in na podlagi tega ukaza moramo koračni motor zavrteti v smeri urnega kazalca ali v nasprotni smeri urnega kazalca. Pomembni segmenti kode so obravnavani v nadaljevanju.
V skladu z našim vezjem smo za nadzor našega koračnega motorja uporabili digitalne nožice 1, 2, 3 in 4 na nodemcu. Torej moramo z uporabo teh zatičev ustvariti primerek, imenovan stepper, kot je prikazano spodaj. Upoštevajte, da smo žebljičke določili po vrstnem redu 1, 3, 2 in 4. To je bilo storjeno namerno in ni napaka; za pravilno delovanje motorja moramo zamenjati zatiča 2 in 3.
// ustvarimo primerek razreda korakov z uporabo korakov in zatičev Stepper stepper (STEPS, D1, D3, D2, D4);
V naslednjem koraku moramo deliti svoj žeton za preverjanje pristnosti blynk in poverilnice Wi-Fi, na katere mora biti povezan naš krmilnik IoT Blind. Če niste prepričani, kako pridobiti ta žeton Blynk auth, si oglejte projekt Blynk LED Control, da boste razumeli osnove aplikacije blynk in kako jo uporabljati.
// V aplikaciji Blynk bi morali dobiti žeton za avtorizacijo. // Pojdite na Nastavitve projekta (ikona matice). char auth = "l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx"; // Vaše poverilnice za WiFi. // Za odprta omrežja nastavite geslo na "". char ssid = "CircuitDigest"; char pass = "dummy123";
Če nadaljujemo z našo kodo, smo po nastavitveni funkciji opredelili dve metodi za blynk. Kot smo že omenili, moramo opredeliti, kaj naj naredijo navidezni nožici V1 in V2. Koda za isto je navedena spodaj.
BLYNK_WRITE (V1) // ZAPRITE KRILE {Serial.println ("Zapiranje senčil"); if (odprto == resnično) {for (int c_val = 0; c_val <= 130; c_val ++) // za zapiranje zavrtite v nasprotni smeri urnega kazalca {stepper.step (c_val); donos (); } zaprto = res; odprto = napačno; disable_motor (); // po uporabi vedno potrebni koračni motorji za zmanjšanje porabe energije in ogrevanja}} BLYNK_WRITE (V2) // ODPRTE ŽALUZE {Serial.println ("Odpiranje žaluzij"); if (closed == true) {for (int cc_val = 0; cc_val> = -130; cc_val--) // vrti se v smeri urnega kazalca za odpiranje {stepper.step (cc_val); donos (); } odprto = res; zaprto = napačno; } onemogoči_motor (); // vedno zaželeni koračni motorji po uporabi za zmanjšanje porabe energije in ogrevanja}
Kot vidite, se V1 uporablja za zapiranje žaluzij, V2 pa za odpiranje žaluzij. Za zanke se uporablja za vrtenje motorjev v smeri urinega kazalca ali nasprotni smeri urinega kazalca za 130 korakov. Eksperimentiral sem s svojimi žaluzijami, da sem ugotovil, da lahko s 130 koraki popolnoma odprem in zaprem svoje rolete. Vaša številka se lahko razlikuje. Za zanke , da se vrti koračni motor v smeri urinega kazalca in v nasprotni smeri urinega kazalca je prikazano spodaj.
for (int c_val = 0; c_val <= 130; c_val ++) // vrti se v nasprotni smeri urnega kazalca za zapiranje {stepper.step (c_val); donos (); } for (int cc_val = 0; cc_val> = -130; cc_val--) // vrti se v smeri urnega kazalca za odpiranje {stepper.step (cc_val); donos (); }
V našem programu lahko opazite tudi dve logični spremenljivki "odprto" in "zaprto". Ti dve spremenljivki se uporabljata za preprečevanje, da bi motor dvakrat odprl ali zaprl žaluzije. To pomeni, da se bodo rolete odprle šele, ko so bile predhodno zaprte, zaprte pa bodo šele, ko so bile prej odprte.
Kako povečati hitrost koračnega motorja 28BJY-48?
Ena pomanjkljivost uporabe koračnega motorja 28BJY-48 je ta, da je zelo počasen. Ti motorji so bili prvotno izdelani za uporabo v zelo natančnih aplikacijah z nizko hitrostjo, zato ne pričakujte, da se bodo ti motorji vrteli z visoko hitrostjo. Če želite povečati hitrost koračnega motorja z uporabo Arduina, lahko dva parametra spremenite. Eden je #define STEPS 64, ugotovil sem, da je bil motor, ko so koraki opredeljeni kot 64, sorazmerno hitrejši. Drugi parameter je stepper.setSpeed (500); spet sem ugotovil, da je 500 optimalna vrednost, kar je več od tega, kar dejansko naredi koračni motor počasnejši.
Ali poznate še kakšen način za povečanje hitrosti teh motorjev? Če je odgovor pritrdilen, jih pustite v spodnjem oddelku za komentarje.
Kako preprečiti pregrevanje koračnega motorja?
Koračnih motorjev je treba vedno onemogočiti, kadar jih ne uporabljate, da preprečite pregrevanje. Onemogočiti koračni motor je zelo enostavno; samo spremenite status zatiča vseh štirih zatičev GPIO, ki krmilijo koračni motor, na nizko. To je zelo pomembno, sicer se lahko vaš motor zelo segreje pri + 12V in se trajno poškoduje. Program za onemogočanje koračnega motorja je podan spodaj.
void disable_motor () // po zaključku ugasnemo motor, da se izognemo ogrevanju {digitalWrite (D1, LOW); digitalWrite (D2, LOW); digitalWrite (D3, LOW); digitalWrite (D4, LOW); }
Nadzor okenskih senčil s pomočjo Google Assistant
API blynk bomo uporabljali za nadzor senčil prek Googlovega asistenta, podoben bo našemu projektu avtomatizacije z glasovnim nadzorom doma, zato preverite, če ga zanima. V bistvu moramo spodnjo povezavo sprožiti, ko Googlovemu asistentu izgovorimo vnaprej določeno besedno zvezo.
//http://188.166.206.43/l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx/update/V1?value=1 /
Prepričajte se, da ste spremenili žeton za preverjanje pristnosti na tistega, ki ga nudi vaša aplikacija blynk. To povezavo lahko celo preizkusite v brskalniku Chrome, da preverite, ali deluje po pričakovanjih. Zdaj, ko je povezava pripravljena, moramo preprosto preiti na IFTTT in ustvariti dva programčka, ki lahko sprožita navidezni pin V1 in V2, ko prosimo, da zapremo in odpremo žaluzije. Še enkrat se ne spuščam v podrobnosti tega, ker smo to storili že večkrat. Če potrebujete več pomoči, si oglejte ta glasovno nadzorovan FM radio projekt, samo prilagodite storitve adafruit s spletnimi kljukami. Delim tudi posnetek zaslona svojega delčka za referenco.
Samodejni nadzor žaluzije oken na osnovi Arduina - demonstracija
Ko so ohišja vezja in 3D tiska pripravljena, samo sestavite napravo na steno tako, da na steno izvrtate dve luknji. Moja namestitev je prikazana na spodnjih slikah.
Po tem se prepričajte, da so vaše rolete v odprtem stanju in nato vklopite vezje. Zdaj lahko poskusite zapreti žaluzije iz aplikacije blynk ali prek Googlovega pomočnika, in to bi moralo delovati. V aplikaciji blynk lahko nastavite tudi časovnike, da samodejno odpirajo in zapirajo rolete ob določenem času dneva.
Celotno delovanje projekta najdete v spodnjem videoposnetku; če imate kakršna koli vprašanja, jih lahko napišete v spodnjem oddelku za komentarje. Naše forume lahko uporabite tudi za druge tehnične razprave.