- Google Assistant kontrolētās mājas automatizācijas shēma
- Blynk lietojumprogrammas iestatīšana
- IFTTT iestatīšana ar Google asistentu un Blynku, lai lasītu virknes
- Arduino programmēšana Blynk mājas automatizācijai
- PCB izgatavošana, izmantojot PCBGoGo
- PCB montāža
- Dēļa pievienošana maiņstrāvas blokiem / pagarinātājiem
Ar virtuālo asistentu, piemēram, Google palīga un Alexa, attīstību ir uzlabojusies mājas automatizācija un balss vadāmas lietojumprogrammas. Tagad mēs paši esam izveidojuši daudzus mājas automatizācijas projektus, sākot no vienkāršām automātiskām kāpņu gaismām līdz IoT balstītai tīmekļa kontrolētai mājas automatizācijai, izmantojot Raspberry Pi. Bet šis projekts šeit ir atšķirīgs, ideja ir izveidot praktisku Mājas automatizācijas paneli, kas var iekļauties mūsu maiņstrāvas blokos pie mūsu sienām un palikt slēpts tajā. Dēlim nevajadzētu pārtraukt normālu mūsu barošanas bloku slēdžu darbību, tas ir, tiem vajadzētu ieslēgt vai izslēgt arī ar manuālajiem slēdžiem. Un bez tā tam arī jāspēj kontrolēt to pašu slodzi ar balsi, izmantojot google palīgu, kā arī jāiestata taimeris, lai jebkura slodze automātiski ieslēgtos vai izslēgtos noteiktā dienas laikā.
Šis projekts ir ļoti līdzīgs mūsu ESP8266 viedā Wi-Fi spraudnim, taču, tā kā mēs izmantosim ESP12, mums būs vairāk GPIO tapu, kas ļaus mums vienlaicīgi kontrolēt četras maiņstrāvas slodzes. Tā kā mēs esam integrējuši Blynk un Google Assistant, projekts kļūst interesants un praktiski lietojams. Šim projektam esam izveidojuši shēmas plates, izmantojot PCBGOGO PCB ražošanas pakalpojumu. Raksta vēlākajā sadaļā mēs esam piegādājuši Gerber failu, kas paredzēts ķēdei, un izskaidroja arī visu procesu, kā pasūtīt PCB no PCBGOGO.
Brīdinājums: Šis projekts ietver darbu ar maiņstrāvas tīkla spriegumu. Ieteicams būt ļoti piesardzīgiem, strādājot ar augstu maiņstrāvas spriegumu. Pārliecinieties, ka jūs esat jauns pieredzējis cilvēks, ja esat jauns.
Google Assistant kontrolētās mājas automatizācijas shēma
Pilna mājas automatizācijas shēma ir atrodama zemāk.
Kā redzat, ķēde ir ļoti vienkārša, sāksim paskaidrojumu no ESP12E Wi-Fi moduļa. Lai iegūtu detalizētu projekta skaidrojumu, varat arī apskatīt zemāk esošo videoklipu. Moduli var ieprogrammēt tāpat kā nodeMCU izstrādes plates, un tas samazina daudz vietas. Pēc noklusējuma, ieslēdzot ierīci, ESP12E pāriet darbības režīmā. Lai to ieprogrammētu, mums jāizmanto poga Reset and Flash. Tas nozīmē, ka ESP12 jāievieto programmēšanas režīmā, nospiediet un turiet pogu Atiestatīt un Zibspuldze, pēc tam atlaidiet atiestatīšanas pogu. Tas palaidīs ESP12E ar nospiestu zibspuldzes pogu, tagad atlaidiet zibspuldzes pogu un ESP12E ieies programmēšanas režīmā. Pēc programmēšanas jums vēlreiz jānospiež atiestatīšanas poga, lai palaistu ESP12E normālā darbības režīmā, lai izpildītu augšupielādēto programmu. Programmēšanas tapas Rx, Rx,un Ground ir paplašināti, lai varētu izveidot savienojumu ar FTDI paneli vai USB uz TTL pārveidotāju. Pārliecinieties, ka ESP12 Tx tapa ir savienota ar programmētāja Rx tapu un otrādi.
Pārējie karoga tapas no I1 līdz I4 un no R1 līdz R4 tiek izmantoti slēdžu un releju savienošanai. Piespraudes I1 līdz I4 apzīmē ievades tapas. Visi šie tapas atbalsta iekšējo pievilkšanas rezistoru, tāpēc mums vienkārši jāpieslēdz pagarinātāja slēdži ar mūsu ievades tapu caur nolaižamo rezistoru, kā parādīts zemāk.
Līdzīgi releju vadīšanai tiek izmantoti releja izejas tapas no R1 līdz R4. Mēs izmantojām standarta releja draivera shēmu ar BC547 un IN4007 diodi, kā parādīts zemāk. Ņemiet vērā, ka relejus vajadzētu iedarbināt ar 5 V, bet ESP12E izejas tapas ir tikai 3,3 V. Tātad, lai vadītu relejus, obligāti jāizmanto tranzistors. Mēs esam arī ievietojuši gaismas diodi tranzistora bāzes ceļā, lai ikreiz, kad tiek iedarbināts tranzistors, LED arī iedegtos.
Visbeidzot, lai darbinātu visas mūsu shēmas, mēs esam izmantojuši Hi-Link maiņstrāvas pārveidotāju, lai pārveidotu mūsu 220 V maiņstrāvu par 5 V līdzstrāvu. Pēc tam šī 5 V līdzstrāva tiek pārveidota par 3,3 V, izmantojot AMS117-3,3 V sprieguma regulatoru. 5V tiek izmantots, lai iedarbinātu relejus, un 3.3V tiek izmantots, lai darbinātu ESP21 Wi-Fi moduli.
Blynk lietojumprogrammas iestatīšana
Iepriekš mēs esam izveidojuši daudzus Blynk projektus, piemēram, ar Wi-Fi kontrolētu Arduino robotu, tāpēc mēs neiedziļināsimies blynk lietojumprogrammas iestatīšanā. Bet vienkāršāk sakot, vienkārši instalējiet lietojumprogrammu, izveidojiet jaunu NodeMCU projektu un sāciet izvietot logrīkus, kā parādīts zemāk.
Esmu izmantojis virtuālos tapas no V1 līdz V4, lai kontrolētu mūsu projekta releju no 1 līdz 4. Pārslēdzieties, noteikti mainiet pogas veidu. Taimera opciju var izmantot arī, lai automātiski aktivizētu virtuālās tapas noteiktā laikā, pat ja tālrunis ir izslēgts. Es šeit, piemēram, esmu izmantojis taimeri tikai virtuālajai tapai V1, bet, ja nepieciešams, jūs to varat izmantot visām četrām tapām.
Pārliecinieties, vai esat ieguvis blynk auth marķiera vērtību no projekta lapas. Vienkārši noklikšķiniet uz uzgriežņa ikonas (iepriekš attēlā apvilkts sarkanā krāsā) un kopējiet autentifikācijas marķieri, izmantojot opciju Kopēt visu un ielīmējiet to kaut kur drošā vietā, kas mums būs nepieciešama, programmējot Arduino dēli.
IFTTT iestatīšana ar Google asistentu un Blynku, lai lasītu virknes
Vieglākais veids, kā mājas automatizācijai izmantot Google asistentu, ir IFTTT. Mēs arī iepriekš esam izveidojuši daudzus IFTTT projektus ar NodeMCU un Raspberry Pi. Šajā projektā mēs izmantosim lietotni Blynk, lai aktivizētu tīmekļa āķi, izmantojot Google palīgu. Tas ir ļoti līdzīgs mūsu balss kontrolētai mājas automatizācijai un ar balsi vadāmam FM radio projektam. Izņemot, šeit mēs izmantosim blynk ar IFTTT, lai nosūtītu virkni, kas padara to daudz vieglāku un interesantāku.
Būtībā mēs izmantosim virtuālo tapu V5 un V6 uz blynk, lai nosūtītu sprūda komandu. V5 tiks izmantots ieslēgšanas komandām, bet V6 - izslēgšanas komandām. Piemēram, ja mēs sakām ieslēgt televizoru un lampu. Virknes komanda “TV un lampa” tiks nosūtīta NodeMCU, izmantojot API. API sintakse ir šāda.
http://188.166.206.43//update/V5?value=TV un Lampa
Tagad IFTTT mums viss, kas mums jādara, ir izmantot google palīgu kā IF un tīmekļa āķus kā THAT, tāpēc klausieties šo komandu un nosūtiet informāciju NodeMCU, izmantojot iepriekš minēto API. Ieslēgšanas sīklietotnes forma ir parādīta zemāk.
Ņemiet vērā, ka, veidojot Google asistenta recepti, jums jāizvēlas teikt frāze ar teksta sastāvdaļu. Līdzīgi jums tas pats jāatkārto virtuālajai tapai V6, lai izslēgtu relejus. Lai iegūtu detalizētu informāciju, varat pārbaudīt videoklipu šīs lapas apakšdaļā.
Arduino programmēšana Blynk mājas automatizācijai
Pilns šī projekta Arduino kods ir atrodams šīs lapas apakšdaļā. To pašu izskaidro šādi. Pirms tam pārliecinieties, vai varat izmantot Blynk un Program NodeMCU no Arduino IDE. Ja nē, sekojiet darba sākšanai ar ESP12 rakstu. Pievienojiet arī blynk bibliotēku Arduino IDE, izmantojot dēļu pārvaldnieku.
Kā vienmēr, mēs sākam savu kodu, definējot ieejas un izejas tapas, šeit ieeja būs no slēdžiem un izeja no relejiem. Mēs esam definējuši visu četru slēdžu tapu nosaukumus kā sw un relejus kā rel, kā redzat zemāk.
#define sw1 13 #define sw2 12 #define sw3 14 #define sw4 16 #define rel1 4 #define rel2 5 #define rel3 9 #define rel4 10
Nākamajā posmā jums jāievada daži akreditācijas dati, piemēram, blynk auth marķieris, kā arī Wi-Fi maršrutētāja lietotāja vārds un parole, ar kuru jūsu nodeMCU ir jāpieslēdzas. Mirgojošo autentifikācijas marķieri var iegūt no lietojumprogrammas blynk. Mēs uzzināsim vairāk par to sadaļā blynk lietojumprogrammas iestatīšana.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // saņemt no blynk aplikācijas char ssid = "home_wifi"; char pass = "fakepass123";
Tālāk mēs esam snieguši definīciju funkcijai, ko sauc read_switch_toggle () . Šajā funkcijā mēs salīdzināsim mūsu slēdžu pašreizējo un iepriekšējo stāvokli. Ja slēdzis ir ieslēgts vai izslēgts, ti, ja slēdzis ir pārslēgts. Būs izmaiņas slēdža stāvoklī, funkcija uzraudzīs šīs izmaiņas un atgriezīs slēdža numuru. Ja izmaiņas nav atklātas, tās atgriezīs 0.
int read_switch_toggle () {int rezultāts = 0; // Ievērojiet visas iepriekšējās vērtības (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Izlasiet slēdžu pašreizējo statusu crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // salīdzināt pašreizējo un pvs stāvokli (int i = 0; i <= 3; i ++) {if (pvs_state! = crnt_state) {rezultāts = (i + 1); // ja kāds slēdzis ir pārslēgts, mēs iegūstam slēdža numuru kā atgriešanās rezultātu; } cits rezultāts = 0; // ja nav izmaiņu rezultāta 0} atgriešanās rezultāts; // atgriezt rezultātu}
Tālāk mums ir kods blynk lietojumprogrammai. Mēs izmantosim virtuālo tapu no V1 līdz V6, lai kontrolētu mūsu viedo sadales kārbu. Piespraudes V1 līdz V4 tiks izmantotas, lai kontrolētu attiecīgi 1. līdz 4. releju tieši no lietojumprogrammas blynk. Zemāk redzamais kods parāda, kas notiek, kad V1 tiek aktivizēts no blynk lietojumprogrammas. Mēs vienkārši nolasām statusu (HIGH vai LOW) un attiecīgi kontrolējam releju.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
Līdzīgi virtuālos tapas var izmantot arī, lai lasītu virkni no lietojumprogrammas blynk. Mēs vēlāk uzzināsim, kā nosūtīt virkni no Google palīga uz NodeMCU, izmantojot IFTTT un Google palīgu, bet tagad redzēsim, kā NodeMCU kods nolasa šo virkni un meklē noteiktu atslēgvārdu un attiecīgi iedarbina releju.
Zemāk esošajā kodā jūs varat redzēt, ka, aktivizējot virtuālo tapu V5, mēs saņemam virkni, kuru tā nodod virknes mainīgajā, ko sauc par ON_message . Pēc tam, izmantojot šo virknes mainīgā un inderOf metodi, mēs meklējam, vai ir tādi atslēgvārdi kā “lampa”, “LED”, “mūzika”, “TV”, ja jā, mēs ieslēdzam konkrēto slodzi. Ja tiek atklāts atslēgvārds “viss”, mēs visu ieslēdzam. To pašu var darīt arī V6, lai izslēgtu relejus. Mēs par to vairāk sapratīsim, iekļūstot IFTTT sadaļā.
BLYNK_WRITE (V5) {String ON_message = param.asStr (); Serial.println (ON_ziņojums); if (ON_message.indexOf ("lamp")> = 0) digitalWrite (rel1, HIGH); if (ON_message.indexOf ("LED")> = 0) digitalWrite (rel2, HIGH); if (ON_message.indexOf ("mūzika")> = 0) digitalWrite (rel3, HIGH); if (ON_message.indexOf ("TV")> = 0) digitalWrite (rel4, HIGH); if (ON_message.indexOf ("viss")> = 0) {digitalWrite (rel1, HIGH); digitalWrite (rel2, HIGH); digitalWrite (rel3, HIGH); digitalWrite (rel4, HIGH); }}
Visbeidzot, cilpas funkcijas ietvaros mums jāpārbauda tikai tas, vai ir mainījusies kāda poga, ja ir mainījusies slēdža pozīcija. Ja jā, tad mēs izmantojam slēdža lietu, kā parādīts zemāk, lai pārslēgtu konkrētā releja pozīciju.
slēdzis (toggle_pin) {gadījums 0: pārtraukums; 1. gadījums: Serial.println ("1. pārslēgšanas relejs"); digitalWrite (rel1, relay_state); pārtraukums; 2. gadījums: Serial.println ("Toggling Relay 2"); digitalWrite (rel2, relay_state); pārtraukums; 3. gadījums: Serial.println ("Toggling 3. relejs"); digitalWrite (rel3, relay_state); pārtraukums; 4. gadījums: Serial.println ("Toggling Relay 4"); digitalWrite (rel4, relay_state); pārtraukums; }}
PCB izgatavošana, izmantojot PCBGoGo
Tagad mēs saprotam, kā darbojas shēmas, un mēs varam turpināt veidot PCB mūsu mājas automatizācijas projektam. Iepriekš minētās shēmas PCB izkārtojums ir pieejams arī lejupielādei kā saite Gerber.
- Lejupielādējiet GERBER balss kontrolētai mājas automatizācijai, izmantojot Google asistentu
Tagad mūsu dizains ir gatavs, ir pienācis laiks tos izgatavot, izmantojot Gerber failu. Lai PCB veiktu no PCBGOGO, ir diezgan viegli, vienkārši veiciet tālāk norādītās darbības.
1. darbība: iekļūstiet vietnē www.pcbgogo.com, reģistrējieties, ja tā ir jūsu pirmā reize. Pēc tam cilnē PCB Prototype ievadiet sava PCB izmērus, slāņu skaitu un nepieciešamo PCB skaitu. Pieņemot, ka PCB ir 80 cm × 80 cm, jūs varat iestatīt izmērus, kā parādīts zemāk.
2. solis: turpiniet, noklikšķinot uz pogas Citēt tūlīt . Jūs tiksiet novirzīts uz lapu, kur, ja nepieciešams, iestatīsit dažus papildu parametrus, piemēram, izmantoto materiālu sliežu atstarpi utt. Bet galvenokārt noklusējuma vērtības darbosies labi. Vienīgais, kas mums šeit jāņem vērā, ir cena un laiks. Kā redzat, būvēšanas laiks ir tikai 2-3 dienas, un tas mūsu PCB maksā tikai 5 USD. Pēc tam jūs varat izvēlēties vēlamo nosūtīšanas metodi, pamatojoties uz jūsu prasībām.
3. solis: pēdējais solis ir Gerber faila augšupielāde un maksājuma veikšana. Lai pārliecinātos, ka process ir raits, PCBGOGO pirms maksājuma turpināšanas pārbauda, vai jūsu Gerber fails ir derīgs. Tādā veidā jūs varat būt pārliecināts, ka jūsu PCB ir izgatavošanai draudzīgs un ar jums sazināsies kā apņēmies.
PCB montāža
Pēc tam, kad dēlis tika pasūtīts, tas mani pēc dažām dienām sasniedza caur kurjeru glīti marķētā, labi iesaiņotā kastē, un, kā vienmēr, PCB kvalitāte bija lieliska. PCB, kuru saņēmu es, ir parādīts zemāk. Kā redzat, gan augšējais, gan apakšējais slānis ir izrādījies kā paredzēts.
Vias un spilventiņi visi bija pareizajā izmērā. Man vajadzēja apmēram 15 minūtes, lai samontētu pie PCB plates, lai iegūtu darba ķēdi. Saliktais dēlis ir parādīts zemāk.
Dēļa pievienošana maiņstrāvas blokiem / pagarinātājiem
Dēlis ir paredzēts nostiprināšanai maiņstrāvas kontaktligzdās mūsu mājās. Bet šī projekta labad mēs izmantosim pagarinājuma lodziņu. Ja vēlaties pastāvīgāku risinājumu, pievienojiet to savās maiņstrāvas kontaktligzdās, kā redzams zemāk, PCB garums ir pietiekami kompakts, lai to varētu ievietot maiņstrāvas kontaktligzdā.
Strādājot ar maiņstrāvas tīklu, noteikti ievērojiet drošības pasākumus. Izpildiet zemāk esošo shēmu, lai saprastu, kā savienot savus relejus un slēdžus ar mūsu PCB plati.
Savienojuma diagramma nedarbojas tikai vienam relejam un slēdzim, bet to var atkārtot arī pārējiem trim. Kad savienojumi ir izdarīti, jūsu dēlim vajadzētu izskatīties šādi
Kad savienojumi ir izveidoti, pārliecinieties, vai esat tos cieši nostiprinājis ar skrūvju spailēm, un papildu drošībai izmantojiet arī karstu līmi. Iepakojiet visu atpakaļ kastē, un mums vajadzētu būt gataviem testēšanai. Pilnīgu šī projekta darbību varat atrast zemāk esošajā video.
Es ceru, ka jums patika raksts un uzzinājāt kaut ko noderīgu. Ja jums ir kādi jautājumi, lūdzu, atstājiet tos komentāru sadaļā zemāk vai izmantojiet mūsu forumus.