- Circuit Diagram para sa Google Assistant na kontrolado sa Home Automation
- Pagse-set up ng Blynk Application
- Pagse-set up ng IFTTT kasama ang Google Assistant at Blynk upang Basahin ang String
- Programming Arduino para sa Blynk Home Automation
- Pag-Fabricating ng PCB gamit ang PCBGoGo
- Pag-iipon ng PCB
- Pagkonekta sa Lupon gamit ang Mga AC Power Unit / Extension Board
Sa pagsulong ng mga virtual na katulong tulad ng Google Assistant at Alexa, ang pag-aautomat ng Home at mga application na kinokontrol ng Voice ay nagiging normal. Ngayon, kami mismo ay nagtayo ng maraming mga proyekto sa pag-aautomat ng bahay, mula sa simpleng Mga Awtomatikong Tanglaw ng Hagdan hanggang sa kontrolado ng web ng IoT sa Home Automation gamit ang Raspberry Pi. Ngunit ang proyektong ito dito ay naiiba, ang ideya dito ay upang lumikha ng isang praktikal na board ng automation ng Bahay na maaaring magkasya sa aming mga yunit ng kuryente ng AC sa aming mga dingding at manatiling nakatago sa loob nito. Ang board ay hindi dapat makagambala sa normal na pagtatrabaho ng aming mga switch ng yunit ng kuryente, iyon ay dapat na I-ON o I-OFF din kasama ng mga manu-manong switch. At nang hindi sinabi, dapat din nitong makontrol ang parehong pag-load gamit ang boses gamit ang google assistant at magtakda din ng isang timer upang ang anumang pag-load ay maaaring awtomatikong I-ON o OFF sa isang preset na oras ng araw.
Ang proyektong ito ay halos kapareho sa aming ESP8266 Smart Wi-Fi plug ngunit dito dahil gagamitin namin ang ESP12, magkakaroon kami ng higit pang mga pin ng GPIO na pinapayagan kaming kontrolin ang apat na karga sa AC nang sabay-sabay. Gayundin, dahil isinama namin ang Blynk at Google Assistant, nakakakuha ng interes at praktikal na magamit ang proyekto. Para sa proyektong ito na binuo namin ang mga circuit board gamit ang serbisyo ng pagmamanupaktura ng PCBGOGO PCB. Sa susunod na seksyon ng artikulo ay ibinigay namin ang Gerber file na idinisenyo para sa circuit at ipinaliwanag din ang kumpletong pamamaraan upang mag-order ng mga PCB mula sa PCBGOGO.
Babala: Kasama sa proyektong ito ang pagtatrabaho sa boltahe ng AC mains. Pinayuhan na ang matinding pag-iingat ay dapat gawin kapag nagtatrabaho na may mataas na AC voltages. Tiyaking pinangangasiwaan ka ng isang may karanasan na tao kung bago ka.
Circuit Diagram para sa Google Assistant na kontrolado sa Home Automation
Ang kumpletong diagram ng circuit para sa automation ng bahay ay matatagpuan sa ibaba.
Tulad ng nakikita mo, ang circuit ay napaka-simple, simulan natin ang paliwanag mula sa ESP12E Wi-Fi Module. Maaari mo ring suriin ang video sa ibaba para sa isang detalyadong paliwanag sa proyekto. Maaaring mai-program ang module tulad ng nodeMCU development boards at binabawasan nito ang maraming espasyo. Bilang default, kapag pinapagana, papasok ang ESP12E sa mode ng pagpapatakbo. Upang mai-program ito, kailangan naming gamitin ang pindutang I-reset at Flash. Iyon ay upang ilagay ang ESP12 sa mode ng pagprograma, pindutin nang matagal ang parehong pindutan ng I-reset at Flash, pagkatapos ay bitawan ang pindutan ng pag-reset. I-boot nito ang ESP12E na pinindot ang pindutan ng flash, pakawalan ngayon ang pindutan ng flash at papasok ang ESP12E sa mode ng pagprograma. Pagkatapos ng programa, kailangan mong pindutin muli ang pindutan ng pag-reset upang ma-boot ang ESP12E sa normal na mode ng operasyon upang maipatupad ang na-upload na Program. Ang mga pin ng programa ay Rx, Rx,at Ang ground ay pinalawig upang makakonekta sa isang board ng FTDI o USB sa TTL converter. Siguraduhin na ikonekta ang Tx pin ng ESP12 sa Rx pin ng Programmer at vise versa.
Ang iba pang mga flag pin na I1 hanggang I4 at R1 hanggang R4 ay ginagamit upang ikonekta ang Mga switch at Relay. Ang mga I1 hanggang I4 ay naninindigan para sa mga pin ng Input. Sinusuportahan ng lahat ng mga pin na ito ang panloob na resistor ng pull-up kaya kailangan lang naming ikonekta ang mga switch sa extension box sa aming Input pin sa pamamagitan ng isang pull-down risistor tulad ng ipinakita sa ibaba.
Katulad nito, ang mga relay output pin na R1 hanggang R4 ay ginagamit upang makontrol ang mga Relay. Gumamit kami ng isang karaniwang circuit ng driver ng relay na may BC547 at IN4007 Diode tulad ng ipinakita sa ibaba. Tandaan na ang mga relay ay dapat na ma-trigger ng 5V ngunit ang mga pin ng output ng ESP12E ay 3.3V lamang. Kaya, sapilitan na gumamit ng isang transistor upang himukin ang mga relay. Naglagay din kami ng isang LED sa base path ng transistor upang sa tuwing ang transistor ay na-trigger, ang LED ay magbubukas din.
Sa wakas, upang mapagana ang lahat ng aming mga circuit, ginamit namin ang converter ng Hi-Link AC-DC upang i-convert ang aming 220V AC sa 5V DC. Ang 5V DC na ito ay nai-convert sa 3.3V gamit ang isang AMS117-3.3V boltahe regulator. Ginagamit ang 5V upang ma-trigger ang Relays at ang 3.3V ay ginagamit upang paandarin ang ESP21 Wi-Fi Module.
Pagse-set up ng Blynk Application
Nakagawa na kami dati ng maraming mga proyekto ng Blynk tulad ng Wi-Fi Controlled Arduino Robot, kaya hindi namin masisiyahan ang mga detalye ng pag-set up ng blynk application. Ngunit upang gawin itong simple, i-install lamang ang application, lumikha ng isang bagong proyekto para sa NodeMCU at simulang mailagay ang iyong mga widget tulad ng ipinakita sa ibaba.
Gumamit ako ng mga virtual na pin na V1 hanggang V4 upang makontrol ang relay 1 hanggang 4 sa aming proyekto. Tiyaking baguhin ang uri ng pindutan upang lumipat. Maaari ding magamit ang pagpipilian ng timer upang awtomatikong ma-trigger ang mga virtual na pin para sa itinakdang oras, kahit na naka-off ang telepono. Gumamit ako ng isang timer para sa virtual pin V1 lamang dito, halimbawa, ngunit maaari mo itong gamitin para sa lahat ng apat na mga pin kung kinakailangan.
Tiyaking makukuha ang iyong blynk auth token token mula sa iyong pahina ng proyekto. Mag-click lamang sa nut icon (bilugan sa pula sa larawan sa itaas) at kopyahin ang token ng auth gamit ang kopyahin ang lahat ng pagpipilian at i-paste ito sa isang lugar na ligtas, kakailanganin namin kapag pinaprogram ang Arduino board.
Pagse-set up ng IFTTT kasama ang Google Assistant at Blynk upang Basahin ang String
Ang pinakamadaling paraan upang magamit ang Google Assistant para sa pag-aautomat ng bahay ay sa pamamagitan ng paggamit ng IFTTT. Bumuo din kami ng maraming mga proyekto ng IFTTT dati kasama ang NodeMCU at Raspberry Pi. Sa proyektong ito, gagamitin namin ang Blynk app upang magpalitaw ng isang webhook gamit ang Google assistant. Ito ay halos kapareho sa aming kinokontrol na boses na awtomatiko sa bahay at proyekto na kinokontrol ng boses na FM radio. Maliban, dito gagamitin namin ang blynk kasama ang IFTTT upang magpadala ng string na ginagawang mas madali at kawili-wili.
Talaga, gagamit kami ng virtual pin V5 at V6 sa blynk upang maipadala ang utos ng pag-trigger. Gagamitin ang V5 para sa mga turn-on na utos at gagamitin ang V6 para i-off ang mga utos. Halimbawa, kung sasabihin nating buksan ang TV at Lampara. Ang string command dito na "TV at Lamp" ay ipapadala sa NodeMCU gamit ang isang API. Ang syntax ng API ay nasa ibaba.
http://188.166.206.43//update/V5?value=TV at Lampara
Ngayon ang kailangan lang nating gawin sa IFTTT ay ang paggamit ng katulong sa Google bilang IF at mga webhook bilang NA kaya't pakinggan ang utos na ito at ipadala ang impormasyon sa NodeMCU gamit ang nabanggit na API. Ang turn-on applet form na pareho ay ipinapakita sa ibaba.
Tandaan na kailangan mong piliing sabihin ang isang parirala na may pagpipilian sa sangkap ng teksto kapag lumilikha ng isang recipe para sa Google Assistant. Katulad nito, kailangan mong ulitin ang pareho para sa virtual pin V6 upang i-off ang mga relay. Maaari mong suriin ang video sa ilalim ng pahinang ito para sa detalyadong impormasyon.
Programming Arduino para sa Blynk Home Automation
Ang kumpletong Arduino code para sa proyektong ito ay matatagpuan sa ilalim ng pahinang ito. Ang paliwanag ng pareho ay ang mga sumusunod. Bago ito tiyakin na maaari mong gamitin ang Blynk at Program NodeMCU mula sa Arduino IDE. Kung hindi sundin ang pagsisimula sa artikulo ng ESP12. Gayundin, idagdag ang blynk library sa Arduino IDE gamit ang board manager.
Tulad ng nakasanayan, sinisimulan namin ang aming code sa pamamagitan ng pagtukoy ng mga input at output pin, narito ang input ay mula sa mga switch at ang output ay magmula sa mga relay. Natukoy namin ang mga pangalan ng pin para sa lahat ng apat na switch bilang sw at relay bilang rel tulad ng nakikita mo sa ibaba.
#define sw1 13 #tukoy sw2 12 #tukoy sw3 14 # tukuyin ang sw4 16 #tukoy ang rel1 4 # tukuyin ang rel2 5 # tukuyin ang rel3 9 # tukuyin ang rel4 10
Sa susunod na yugto, kailangan mong maglagay ng ilang mga kredensyal tulad ng blynk auth token at ang pangalan ng gumagamit at password para sa Wi-Fi router kung saan dapat kumonekta ang iyong nodeMCU. Ang blink auth token ay maaaring makuha mula sa blynk application. Malalaman namin ang higit pa tungkol doon sa pagse-set up ng seksyon ng aplikasyon ng blynk.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // get from blynk application char ssid = "home_wifi"; char pass = "fakepass123";
Susunod, binigyan namin ang kahulugan para sa isang pagpapaandar na tinatawag na read_switch_toggle () . Sa pagpapaandar na ito, ihahambing namin ang kasalukuyang estado at nakaraang estado ng aming mga switch. Kung ang switch ay naka-on o naka-off ie Kung ang switch ay na-toggle. Magkakaroon ng pagbabago sa estado ng switch, susubaybayan ng pagpapaandar ang pagbabagong ito at ibalik ang switch number. Kung walang nakita na pagbabago, ibabalik nito ang 0.
int read_switch_toggle () {int resulta = 0; // Tandaan ang lahat ng nakaraang mga halaga para sa (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Basahin ang kasalukuyang katayuan ng mga switch crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // ihambing ang kasalukuyang at pvs estado para sa (int i = 0; i <= 3; i ++) {kung (pvs_state! = crnt_state) {resulta = (i + 1); // kung ang anumang switch ay na-toggle makakakuha kami ng switch number bilang resulta ng pagbabalik na resulta; } ibang resulta = 0; // kung walang resulta ng pagbabago 0} resulta ng pagbabalik; // ibalik ang resul}
Susunod, mayroon kaming code para sa blynk application. Gumagamit kami ng virtual pin V1 hanggang V6 upang makontrol ang aming smart junction box. Ang Pins V1 hanggang V4 ay gagamitin upang makontrol ang mga relay ng 1 hanggang 4 ayon sa pagkakabanggit nang direkta mula sa blynk application. Ipinapakita ng code sa ibaba kung ano ang nangyayari kapag ang V1 ay na-trigger mula sa blynk application. Binabasa lamang namin ang katayuan (MATAAS o Mababa) at kontrolin ang relay nang naaayon.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
Katulad nito, ang mga virtual na pin ay maaari ding magamit upang basahin ang isang string mula sa blynk application. Malalaman namin kung paano magpadala ng isang string mula sa google assistant sa NodeMCU gamit ang IFTTT at Google assistant sa paglaon ngunit sa ngayon, tingnan natin kung paano binabasa ng code ng NodeMCU ang string na ito at naghahanap para sa isang partikular na keyword at pinapalabas ang relay nang naaayon.
Sa code sa ibaba, makikita mo na kapag na-trigger ang virtual pin V5, nakukuha namin ang string sa pamamagitan nito sa isang variable ng string na tinatawag na ON_message . Pagkatapos ay ginagamit ang variable ng string at inderOf na pamamaraan, naghahanap kami kung mayroong mga keyword tulad ng "lampara", "LED", "musika", "TV" na naroroon, kung oo, binubuksan namin ang partikular na pagkarga. Kung ang keyword na "lahat" ay nakita, i-on namin ang lahat. Maaari ding gawin ang pareho para i-off ng V6 ang mga relay. Mas mauunawaan namin ang tungkol dito kapag napunta kami sa seksyon ng IFTTT.
BLYNK_WRITE (V5) {String ON_message = param.asStr (); Serial.println (ON_message); kung (ON_message.indexOf ("lampara")> = 0) digitalWrite (rel1, HIGH); kung (ON_message.indexOf ("LED")> = 0) digitalWrite (rel2, HIGH); kung (ON_message.indexOf ("musika")> = 0) digitalWrite (rel3, HIGH); kung (ON_message.indexOf ("TV")> = 0) digitalWrite (rel4, HIGH); kung (ON_message.indexOf ("lahat")> = 0) {digitalWrite (rel1, HIGH); digitalWrite (rel2, HIGH); digitalWrite (rel3, HIGH); digitalWrite (rel4, HIGH); }}
Sa wakas, sa loob ng pag-andar ng loop, kailangan lamang nating suriin kung ang anumang mga pindutan ay ang posisyon ng switch ay nagbago. Kung oo, pagkatapos ay gumagamit kami ng isang switch case tulad ng ipinakita sa ibaba upang i-toggle ang posisyon ng partikular na relay.
switch (toggle_pin) {case 0: break; kaso 1: Serial.println ("Toggling Relay 1"); digitalWrite (rel1, relay_state); pahinga; kaso 2: Serial.println ("Toggling Relay 2"); digitalWrite (rel2, relay_state); pahinga; kaso 3: Serial.println ("Toggling Relay 3"); digitalWrite (rel3, relay_state); pahinga; kaso 4: Serial.println ("Toggling Relay 4"); digitalWrite (rel4, relay_state); pahinga; }}
Pag-Fabricating ng PCB gamit ang PCBGoGo
Ngayon naiintindihan namin kung paano gumagana ang mga eskematiko, maaari kaming magpatuloy sa pagbuo ng PCB para sa aming proyekto sa automation ng Home. Ang layout ng PCB para sa circuit sa itaas ay magagamit din para sa pag-download bilang Gerber mula sa link.
- Mag-download ng GERBER para sa Voice Controlled Home Automation gamit ang Google Assistant
Handa na ang aming disenyo, oras na upang makagawa sila ng gawa-gawa gamit ang Gerber file. Upang matapos ang PCB mula sa PCBGOGO ay medyo madali, sundin lamang ang mga hakbang sa ibaba-
Hakbang 1: Pumasok sa www.pcbgogo.com, mag-sign up kung ito ang iyong unang pagkakataon. Pagkatapos sa tab na PCB Prototype, ipasok ang mga sukat ng iyong PCB, ang bilang ng mga layer, at ang bilang ng PCB na kailangan mo. Ipagpalagay na ang PCB ay 80cm × 80cm, maaari mong itakda ang mga sukat tulad ng ipinakita sa ibaba.
Hakbang 2: Magpatuloy sa pamamagitan ng pag-click sa pindutan ng Quote Now . Dadalhin ka sa isang pahina kung saan magtatakda ng ilang karagdagang mga parameter kung kinakailangan tulad ng materyal na ginamit na spacing ng track, atbp. Ngunit karamihan, gagana ang mga default na halaga. Ang tanging bagay lamang na dapat nating isaalang-alang dito ay ang presyo at oras. Tulad ng nakikita mo ang Build Time ay 2-3 araw lamang at nagkakahalaga lamang ito ng $ 5 para sa aming PCB. Maaari mo ring piliin ang isang ginustong paraan ng pagpapadala batay sa iyong kinakailangan.
Hakbang 3: Ang pangwakas na hakbang ay i-upload ang Gerber file at magpatuloy sa pagbabayad. Upang matiyak na ang proseso ay maayos, napatunayan ng PCBGOGO kung ang iyong Gerber file ay wasto bago magpatuloy sa pagbabayad. Sa ganitong paraan, makakatiyak ka na ang iyong PCB ay katha sa paggawa at maaabot ka bilang nakatuon.
Pag-iipon ng PCB
Matapos mag-order ng board, naabot ito sa akin makalipas ang ilang araw sa pamamagitan ng courier sa isang maayos na naka-label na kahon na maayos na naka-pack, at tulad ng lagi, ang kalidad ng PCB ay kahanga-hanga. Ang PCB na natanggap ko ay ipinapakita sa ibaba. Tulad ng nakikita mo, ang tuktok at ilalim na layer ay naka-out tulad ng inaasahan.
Ang mga vias at pad ay lahat sa tamang sukat. Inabot ako ng 15 minuto upang magtipon sa PCB board upang makakuha ng isang gumaganang circuit. Ang binuo board ay ipinapakita sa ibaba.
Pagkonekta sa Lupon gamit ang Mga AC Power Unit / Extension Board
Ang board ay idinisenyo upang maiayos sa loob ng mga socket ng kuryente ng AC sa aming mga tahanan. Ngunit alang-alang sa proyektong ito, gagamit kami ng isang kahon ng extension. Kung nais mo ng isang mas permanenteng solusyon, pagkatapos ay i-wire ito sa loob ng iyong mga socket ng kuryente ng AC, tulad ng nakikita mo sa ibaba ng haba ng PCB ay sapat na compact upang mailagay sa loob ng isang socket ng kuryente ng AC.
Tiyaking sinusunod mo ang mga pag-iingat sa kaligtasan habang nakikipagtulungan sa mga AC mains. Sundin ang circuit diagram sa ibaba upang maunawaan kung paano ikonekta ang iyong mga relay at switch sa aming PCB board.
Ang diagram ng koneksyon ay bumaba lamang para sa isang Pag-relay at paglipat ngunit maaari mo ring kopyahin ang pareho para sa natitirang tatlo din. Kapag tapos na ang mga koneksyon, dapat ganito ang hitsura ng iyong board
Kapag nagawa na ang mga koneksyon, tiyaking na-secure mo ang mga ito nang mahigpit sa mga terminal ng tornilyo at gumamit din ng mainit na pandikit para sa karagdagang kaligtasan. I-pack muli ang lahat sa kahon at dapat tayong maging handa para sa pagsubok. Mahahanap mo ang kumpletong pagtatrabaho ng proyektong ito sa video sa ibaba.
Inaasahan kong nasiyahan ka sa artikulo at natutunan ang isang bagay na kapaki-pakinabang. Kung mayroon kang anumang mga katanungan, mangyaring iwanan ang mga ito sa seksyon ng komento sa ibaba o gamitin ang aming mga forum.