- Mga Kinakailangan ng Mga Bahagi upang Bumuo ng Arduino Automated Blinds
- Pagkontrol sa Mga Roller Blind gamit ang Arduino
- Idisenyo at Buuin ang Window Blind Gear
- Pagpi-print ng 3D ng Motor Holder at Blind Gear
- Circuit Diagram para sa Arduino Blinds Control
- Blynk Application para sa Arduino Blind Control
- Programming NodeMCU upang Makontrol ang mga Blind gamit ang Blynk
- Pagkontrol sa Mga Window Blind gamit ang Google Assistant
- Batay sa Arduino na Awtomatikong Window Blind Control - Pagpapakita
"Magandang umaga. 7 AM Ang panahon sa Malibu ay 72 degree… ”ito ang unang mga salita ng JARVIS nang ipakilala sa Marvel Cinematics Universe. Karamihan sa mga tagahanga ng Iron Man ay dapat na maalaala ang tanawin na ito at tandaan na ang JARVIS ay nakapagbukas ng isang window (kind-of) sa umaga at nagbibigay ng mga pag-update sa oras at panahon. Sa pelikula, ang bintana Salamin ay talagang gawa sa See-Through Touch Ipinapakita at samakatuwid ay nagawang gawin ito ng JARVIS mula sa itim hanggang sa transparent at ipakita din dito ang mga istatistika ng panahon. Ngunit, sa totoo lang, malayo tayo sa mga touch-touch screen ng See-through, at mas malapit kaming makukuha ay ang kontrolin ang mga blind window o hadlang nang awtomatiko.
Kaya, sa proyektong ito, bubuo kami ng eksaktong iyon, magtatayo kami ng isang awtomatikong naka-motor na bulag na bubukas at awtomatikong isasara sa mga paunang natukoy na oras. Dati, nakabuo kami ng maraming mga proyekto sa pag-automate ng bahay kung saan na-automate namin ang mga ilaw, motor, atbp. Maaari mong suriin ang mga ito kung interesado ka. Kaya, pagbalik, ang mga kontroladong blinds ng Arduino na ito ay maaari ring kumuha ng mga utos mula sa katulong ng Google upang maaari mong buksan o isara ang iyong mga window blinds sa pamamagitan ng mga utos ng boses. Nakakaintriga? Pagkatapos, itayo natin ito.
Mga Kinakailangan ng Mga Bahagi upang Bumuo ng Arduino Automated Blinds
Ang proyekto ay medyo simple at walang maraming mga sangkap na kinakailangan. Ipunin lamang ang mga item na nakalista sa ibaba.
- NodeMCU
- Stepper Motor - 28BYJ-48
- Stepper Motor Driver Module
- LM117-3.3V
- Mga Capacitor (10uf, 1uf)
- 12V DC Adapter
- Perf Board
- Kit ng panghinang
- 3d printer
Pagkontrol sa Mga Roller Blind gamit ang Arduino
Ngayon maraming mga uri ng mga Bulag sa merkado, ngunit ang pinakakaraniwang ginagamit ay may isang lubid na may mga kuwintas (tulad ng ipinakita sa ibaba) na maaaring hilahin upang buksan o isara ang mga blinds.
Kapag hinila namin ang pabilog na lubid na ito sa isang direksyon sa relo, magbubukas ang mga window blinds at kapag hinila namin ang lubid na ito sa isang direksyon laban sa orasan, magsasara ang mga window blinds. Kaya, kung nais nating i-automate ang prosesong ito, ang kailangan lang nating gawin ay ang paggamit ng isang motor upang hilahin ang lubid na ito sa isang pakanan o anti-clockwise na direksyon at magagawa natin ito. Sa katunayan, ito ang gagawin natin sa proyektong ito; gagamitin namin ang 28BYJ-48 stepper motor kasama ang isang NodeMCU upang hilahin ang lubid na beaded.
Idisenyo at Buuin ang Window Blind Gear
Ang bahagi ng Elektronika ng proyektong ito ay medyo simple at tuwid na pasulong, ang hamon na bahagi ay ang pagbuo ng Blind Gear na maaaring hilahin ang beaded na lubid. Kaya't simulan natin ang artikulong ito sa disenyo ng bulag na gear, hindi ako makakakuha ng mga detalye sa kung paano idisenyo ang gear, ngunit ang pangunahing ideya na ito ay dapat makatulong sa iyo. Ang isang imahe ng lubid na may mga kuwintas dito ay ipinapakita sa ibaba.
Muli, maraming uri ng mga lubid ngunit ang pinakakaraniwang ginagamit na mga lubid ay ang distansya ng center-to-center ng bawat beading ay 6mm at ang diameter ng bawat beading ay 4mm. Gamit ang impormasyong ito, maaari naming simulan ang disenyo ng aming gear. Kung ang lubid sa iyong mga blinds ay may parehong mga sukat tulad ng tinalakay, maaari mo lamang laktawan ang hakbang na ito at i-download ang file na STL na ibinigay sa artikulong ito at i-print ang gear. Kung ang iyong lubid ay may iba't ibang pag-aayos ng beading, kung gayon ito ay kung paano mo dapat muling idisenyo ang blind gear.
Napagpasyahan kong magkaroon ng 24 na kuwintas sa aking gear upang makakuha ng isang pinakamabuting kalagayan na sukat ng gulong ng gear, maaari kang pumili ng anumang bilang na malapit dito para sa iyong gear wheel na malaki o maliit. Kaya ngayon, alam namin na ang distansya sa pagitan ng bawat beading ay 6mm at kailangan namin ng 24 kuwintas sa aming gear. Ang pagpaparami ng pareho ay magbibigay sa paligid ng gulong ng gear. Sa data na ito, maaari mong kalkulahin ang radius ng gear wheel. Tulad ng nakikita mo sa imahe sa itaas, ang diameter ng aking gear wheel ay nakalkula na nasa paligid ng 46 mm. Ngunit tandaan, hindi ito ang aktwal na diameter ng gear dahil hindi namin naisip ang diameter ng beading na 4mm. Kaya, ang aktwal na lapad ng gearwheel ay magiging 42 mm, nag-print at nasubukan ko ang maraming mga gulong ng gear bago ko makita ang pinakamahusay na gumagana. Kung hindi ka nasa mga disenyo,i-download lamang at i-print ang mga STL file mula sa susunod na talata at magpatuloy sa iyong proyekto.
Pagpi-print ng 3D ng Motor Holder at Blind Gear
Kasama ng gear, kakailanganin din namin ang isang maliit na pambalot na maaaring drill papunta sa pader at hawakan ang stepper motor sa posisyon, parehong ang pambalot at ang gamit na ginamit sa proyektong ito ay ipinapakita sa ibaba.
Mahahanap mo ang kumpletong mga file ng disenyo at mga file ng STL sa pahina ng Arduino Blind Control Thingiverse na ibinigay sa ibaba. Maaari mo lamang i-download at mai-print ang iyong blind gear at kaso ng motor.
Mag-download ng mga STL file para sa Blind Gear at Motor Case
Circuit Diagram para sa Arduino Blinds Control
Kapag handa ka na sa gear at pagpupulong, madali itong magpatuloy sa bahagi ng electronics at software. Ang kumpletong diagram ng circuit para sa IoT Blind control project ay ipinapakita sa ibaba.
Gumamit kami ng isang 12V adapter upang mapagana ang buong pag-setup; ang LM1117-3.3V regulator ay nagko-convert ng 12V hanggang 3.3V na maaaring magamit upang mapagana ang board ng NodeMCU. Ang module ng driver ng stepper motor ay direktang pinalakas mula sa 12V adapter. Sinubukan kong patakbuhin ang stepper motor sa 5V, ngunit pagkatapos ay hindi ito nagbigay ng sapat na metalikang kuwintas upang hilahin ang mga blinds, kaya tiyaking gumagamit ka rin ng 12V.
Bukod sa na, ang circuit ay medyo simple, kung bago ka sa mga stepper motor, tingnan ang mga pangunahing kaalaman sa artikulo ng stepper motor upang maunawaan kung paano ito gumagana at kung paano ito magagamit sa isang microcontroller.
Blynk Application para sa Arduino Blind Control
Bago kami makapunta sa programa ng Arduino para sa Pagkontrol ng mga Blinds, hinayaan nating buksan ang blynk application at lumikha ng ilang mga pindutan gamit ang kung saan maaari naming buksan o isara ang aming mga blinds. Kakailanganin din namin ito sa paglaon upang makontrol mula sa Google home.
Nagdagdag lamang ako ng dalawang mga pindutan upang buksan at isara ang mga blinds at isang-timer upang buksan ang mga blinds sa 10:00 am araw-araw. Maaari kang magdagdag ng maraming mga timer upang buksan o isara ang mga blinds sa iba't ibang mga agwat ng araw. Talaga, kapag kailangan nating isara ang mga blinds, kailangan naming mag-trigger ng virtual pin V1 at kapag kailangan nating buksan ang mga blinds, kailangan nating mag-trigger ng virtual pin V2. Ang programa upang makontrol ang stepper motor batay sa pindutan na pinindot dito ay isusulat sa Arduino IDE, pareho ang tinalakay sa ibaba.
Programming NodeMCU upang Makontrol ang mga Blind gamit ang Blynk
Ang kumpletong code ng ESP8266 para sa Blind Control Project na ito ay matatagpuan sa ilalim ng pahinang ito. Ang aming programa ay kailangang maghintay para sa isang utos mula sa blynk application at batay sa utos na iyon, kailangan naming paikutin ang stepper motor alinman sa isang direksyon sa direksyon ng orasan o sa isang anti-clockwise na direksyon. Ang mga mahahalagang segment ng code ay tinalakay sa ibaba.
Ayon sa aming circuit diagram, gumamit kami ng mga digital na pin na 1, 2, 3, at 4 sa nodemcu upang makontrol ang aming stepper motor. Kaya, kailangan naming lumikha ng isang halimbawa na tinatawag na stepper gamit ang mga pin na ito tulad ng ipinakita sa ibaba. Pansinin na tinukoy namin ang mga pin sa pagkakasunud-sunod ng 1, 3, 2, at 4. Ito ay sadyang ginawa at hindi isang pagkakamali; kailangan nating palitan ang mga pin 2 at 3 para gumana nang maayos ang motor.
// lumikha ng isang halimbawa ng klase ng stepper gamit ang mga hakbang at pin na Stepper stepper (STEPS, D1, D3, D2, D4);
Sa susunod na hakbang, kailangan naming ibahagi ang aming token ng pagpapatotoo ng application ng blynk at mga kredensyal ng Wi-Fi kung saan dapat na konektado ang aming IoT Blind controller. Kung hindi ka sigurado kung paano makukuha ang token ng Blynk auth na ito, sumangguni sa proyekto ng Blynk LED Control upang maunawaan ang mga pangunahing kaalaman sa blynk application at kung paano ito gamitin.
// Dapat kang makakuha ng Auth Token sa Blynk App. // Pumunta sa Mga Setting ng Proyekto (icon ng nut). char auth = "l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx"; // Ang iyong mga kredensyal sa WiFi. // Itakda ang password sa "" para sa mga bukas na network. char ssid = "CircuitDigest"; char pass = "dummy123";
Ang paglipat sa aming code, pagkatapos ng pag-andar ng pag-setup, tinukoy namin ang dalawang pamamaraan para sa blynk. Tulad ng nabanggit dati, kailangan nating tukuyin kung ano ang dapat gawin ng mga virtual na pin na V1 at V2. Ang code para sa pareho ay ibinibigay sa ibaba.
BLYNK_WRITE (V1) // CLOSE the BLINDS {Serial.println ("Closing Blinds"); kung (binuksan == totoo) {para sa (int c_val = 0; c_val <= 130; c_val ++) // paikutin sa Counter-Clockwise para sa pagsasara sa {stepper.step (c_val); ani (); } sarado = totoo; binuksan = mali; huwag paganahin ang_motor (); // laging desable stepper motors pagkatapos gamitin upang mabawasan ang pagkonsumo ng kuryente at pag-init}} BLYNK_WRITE (V2) // BUKSAN ang BLINDS {Serial.println ("Opening Blinds"); kung (sarado == totoo) {para sa (int cc_val = 0; cc_val> = -130; cc_val--) // paikutin sa Clockwise para sa pagbubukas ng {stepper.step (cc_val); ani (); } binuksan = totoo; sarado = maling; } huwag paganahin ang_motor (); // laging desable stepper motors pagkatapos gamitin upang mabawasan ang pagkonsumo ng kuryente at pag-init}
Tulad ng nakikita mong V1 ay ginagamit upang isara ang mga blinds at ang V2 ay ginagamit upang buksan ang mga blinds. Ang isang para sa loop ay ginagamit upang paikutin ang mga motor sa isang pakanan o anti-clockwise na direksyon para sa 130 mga hakbang. Nag-eksperimento ako sa aking mga blinds upang malaman na sa 130 mga hakbang, nagagawa kong ganap na buksan at isara ang aking mga blinds. Maaaring mag-iba ang iyong numero. Ang para sa loop upang paikutin ang stepper motor sa isang pakanan at counter-clockwise na direksyon ay ipinapakita sa ibaba.
para sa (int c_val = 0; c_val <= 130; c_val ++) // paikutin sa Counter-Clockwise para sa pagsasara sa {stepper.step (c_val); ani (); } para sa (int cc_val = 0; cc_val> = -130; cc_val--) // paikutin sa Clockwise para sa pagbubukas ng {stepper.step (cc_val); ani (); }
Maaari mo ring mapansin ang dalawang variable ng Boolean na "binuksan" at "sarado" sa aming programa. Ang dalawang variable na ito ay ginagamit upang maiwasan ang motor na buksan o isara ang mga blinds nang dalawang beses. Ibig sabihin, bubuksan lamang ang mga blinds kapag dati itong sarado at magsasara lamang ito kapag dati itong binuksan.
Paano madagdagan ang bilis ng motor na 28BJY-48 Stepper?
Ang isang sagabal ng paggamit ng 28BJY-48 stepper motor ay na ito ay napakabagal. Ang mga motor na ito ay orihinal na gawa upang magamit sa mga application na may mababang katumpakan na may mababang katumpakan, kaya huwag asahan ang mga motor na ito na paikutin sa mataas na bilis. Kung nais mong dagdagan ang bilis ng stepper motor gamit ang Arduino, mayroong dalawang mga parameter na maaari mong baguhin. Ang isa ay ang #define STEPS 64, nalaman ko na kapag ang mga hakbang ay tinukoy bilang 64, ang motor ay medyo mas mabilis. Ang isa pang parameter ay isang stepper.setSpeed (500); muli natagpuan ko ang 500 na maging isang pinakamainam na halaga, anumang higit sa na talagang ginagawang mas mabagal ang stepper motor.
May alam ka bang ibang paraan upang madagdagan ang bilis ng mga motor na ito? Kung oo, iwanan ang mga ito sa seksyon ng komento sa ibaba.
Paano maiiwasan ang stepper motor mula sa sobrang pag-init?
Ang mga stepper motor ay dapat palaging hindi paganahin kapag hindi ginagamit upang maiwasan ang sobrang pag-init. Ang hindi pagpapagana ng isang stepper motor ay napaka-simple; baguhin lamang ang katayuan ng pin ng lahat ng apat na mga pin ng GPIO na kinokontrol ang stepper motor sa mababa. Napakahalaga nito, kung hindi man ang iyong motor ay maaaring maging napakainit sa + 12V at permanenteng makapinsala sa sarili nito. Ang programa upang hindi paganahin ang stepper motor ay ibinibigay sa ibaba.
void disable_motor () // patayin ang motor kapag tapos na upang maiwasan ang pagpainit {digitalWrite (D1, LOW); digitalWrite (D2, LOW); digitalWrite (D3, LOW); digitalWrite (D4, LOW); }
Pagkontrol sa Mga Window Blind gamit ang Google Assistant
Gagamitin namin ang blynk API upang makontrol ang mga blinds sa pamamagitan ng katulong ng Google, magiging katulad ito sa aming proyekto sa awtomatikong Voice Controlled Home, kaya suriin na kung interesado. Karaniwan, kailangan naming mag-trigger ng link sa ibaba kapag sinabi namin ang isang paunang natukoy na parirala sa Google Assistant.
//http://188.166.206.43/l_b47mF1hioCc_7FzdKMJJeFnJjTxxxx/update/V1?value=1 /
Tiyaking binago mo ang token ng pagpapatotoo sa ibinigay ng iyong blynk application. Maaari mo ring subukan ang link na ito sa iyong chrome browser upang makita kung gumagana ito tulad ng inaasahan. Ngayon na handa na ang link, kailangan lang naming lumipat sa IFTTT at lumikha ng dalawang applet na maaaring mag-trigger ng virtual pin V1 at V2 kapag hiniling namin na isara at buksan ang mga blinds. Muli, hindi ko napapansin ang mga detalye ng ito sapagkat nagawa natin ito ng maraming beses. Kung kailangan mo ng karagdagang tulong, mag-refer sa proyekto ng radio na kontrolado ng Voice na Voice, palitan lamang ang mga serbisyo ng adafruit ng mga webhook. Nagbabahagi din ako ng isang screenshot ng aking snippet para sa sanggunian.
Batay sa Arduino na Awtomatikong Window Blind Control - Pagpapakita
Matapos ang circuit at naka-print na enclosure na 3D ay handa na, tipunin lamang ang aparato sa dingding sa pamamagitan ng pagbabarena ng dalawang butas sa dingding. Ang aking pag-mounting setup ay ipinapakita sa mga larawan sa ibaba.
Pagkatapos nito, tiyakin na ang iyong mga blinds ay nasa isang bukas na kondisyon at pagkatapos ay kuryente sa circuit. Ngayon, maaari mong subukang isara ang mga blinds mula sa blynk application o sa pamamagitan ng Google Assistant at dapat itong gumana. Maaari mo ring itakda ang mga timer sa blynk application upang awtomatikong buksan at isara ang bulag sa isang partikular na oras ng araw.
Ang kumpletong pagtatrabaho ng proyekto ay matatagpuan sa video na ibinigay sa ibaba; kung mayroon kang anumang mga katanungan, huwag mag-atubiling isulat ang mga ito sa seksyon ng komento sa ibaba. Gayundin, maaari mong gamitin ang aming mga forum para sa iba pang mga teknikal na talakayan.