- Kredsløbsdiagram til Google Assistant-styret hjemmeautomatisering
- Opsætning af Blynk-applikationen
- Opsætning af IFTTT med Google Assistent og Blynk til at læse streng
- Programmering af Arduino til Blynk Home Automation
- Fabrikation af PCB ved hjælp af PCBGoGo
- Montering af printkortet
- Tilslutning af kortet med vekselstrømsenheder / udvidelseskort
Med fremskridt inden for virtuelle assistenter som Google Assistant og Alexa bliver hjemmeautomatisering og stemmestyrede applikationer normale. Nu har vi selv bygget mange hjemmeautomationsprojekter, fra enkle automatiske trappelys til IoT-baseret webstyret hjemmeautomatisering ved hjælp af Raspberry Pi. Men dette projekt her er anderledes, ideen her er at skabe et praktisk hjemmeautomatiseringskort, der kan passe ind i vores vekselstrømsenheder på vores vægge og forblive skjult inde i det. Kortet bør ikke afbryde den normale funktion af vores strømafbrydere, det vil sige, at de også skal tænde eller slukke med manuelle afbrydere. Og uden at blive sagt, skal det også være i stand til at kontrollere den samme belastning med stemme ved hjælp af google assistent og også indstille en timer, så enhver belastning automatisk kan tænde eller slukke i løbet af et forudindstillet tidspunkt på dagen.
Dette projekt minder meget om vores ESP8266 Smart Wi-Fi-stik, men her, da vi bruger ESP12, vil vi have flere GPIO-ben, der giver os mulighed for at kontrollere fire vekselstrømsbelastninger samtidigt. Da vi har integreret Blynk og Google Assistant, bliver projektet også interessant og praktisk at bruge. Til dette projekt har vi bygget printkortene ved hjælp af PCBGOGO PCB-produktionsservice. I den senere sektion af artiklen har vi leveret Gerber-filen designet til kredsløbet og også forklaret den komplette procedure for at bestille printkort fra PCBGOGO.
Advarsel: Dette projekt involverer arbejde med vekselstrømsspændingen. Vær opmærksom på, at der skal udvises ekstrem forsigtighed, når du arbejder med høje vekselstrømsspændinger. Sørg for, at du er under opsyn af en erfaren person, hvis du er ny.
Kredsløbsdiagram til Google Assistant-styret hjemmeautomatisering
Det komplette kredsløbsdiagram til hjemmeautomatisering kan findes nedenfor.
Som du kan se, er kredsløbet meget simpelt, lad os starte forklaringen fra ESP12E Wi-Fi-modulet. Du kan også tjekke videoen nedenfor for en detaljeret projektforklaring. Modulet kan programmeres ligesom nodeMCU-udviklingskort, og det reducerer meget plads. Når ESP12E er tændt, går den som standard i driftstilstand. For at programmere det skal vi bruge knappen Nulstil og Flash. Det vil sige for at sætte ESP12 i programmeringstilstand, trykke og holde både Reset og Flash-knappen nede, og slip derefter reset-knappen. Dette starter ESP12E med flash-knappen nede, slip nu flash-knappen, og ESP12E går i programmeringstilstand. Efter programmering skal du trykke på reset-knappen igen for at starte ESP12E i normal driftstilstand for at udføre det uploadede program. Programmeringsstifterne Rx, Rx,og Ground udvides for at kunne forbinde med et FTDI-kort eller USB til TTL-konverter. Sørg for at slutte Tx-stiften på ESP12 til Rx-stiften på programmøren og omvendt.
De andre flagstift I1 til I4 og R1 til R4 bruges til at forbinde afbrydere og relæer. Pins I1 til I4 står for Input pins. Alle disse ben understøtter intern pull-up-modstand, så vi skal bare forbinde kontakterne på forlængelsesboksen til vores input-pin gennem en pull-down-modstand som vist nedenfor.
På samme måde bruges relæudgangsstifterne R1 til R4 til at styre relæerne. Vi har brugt et standard relæ driver kredsløb med BC547 og IN4007 diode som vist nedenfor. Bemærk, at relæerne skal udløses med 5V, men ESP12E-udgangsstifterne er kun 3,3V. Så det er obligatorisk at bruge en transistor til at drive relæerne. Vi har også placeret en LED i transistorens basissti, så hver gang transistoren udløses, vil LED'en også tænde.
Endelig har vi brugt Hi-Link AC-DC-konverteren til at konvertere vores 220V AC til 5V DC for at drive alle vores kredsløb. Denne 5V DC konverteres derefter til 3,3V ved hjælp af en AMS117-3.3V spændingsregulator. 5V bruges til at udløse relæer og 3,3V bruges til at drive ESP21 Wi-Fi-modulet.
Opsætning af Blynk-applikationen
Vi har tidligere bygget mange Blynk-projekter som Wi-Fi-styret Arduino-robot, så vi kommer ikke ind på detaljerne i opsætningen af blynk-applikationen. Men for at sige det enkelt, skal du bare installere applikationen, oprette et nyt projekt til NodeMCU og begynde at placere dine widgets som vist nedenfor.
Jeg har brugt virtuelle ben V1 til V4 til at styre relæ 1 til 4 på vores projekt. Sørg for at ændre typen af knap, der skal skiftes. Timerindstillingen kan også bruges til at udløse de virtuelle ben automatisk i den indstillede tid, selvom telefonen er slukket. Jeg har f.eks. Brugt en timer til kun virtuel pin V1, men du kan bruge den til alle fire ben, hvis det er nødvendigt.
Sørg for at få din blynk auth-tokenværdi fra din projektside. Klik bare på møtrikikonet (cirkuleret med rødt i ovenstående billede) og kopier auth-token ved hjælp af kopiér alle indstillinger og indsæt det et sikkert sted, vi har brug for, når du programmerer Arduino-kortet.
Opsætning af IFTTT med Google Assistent og Blynk til at læse streng
Den nemmeste måde at bruge Google Assistant til hjemmeautomatisering på er ved hjælp af IFTTT. Vi har også bygget mange IFTTT-projekter tidligere med NodeMCU og Raspberry Pi. I dette projekt bruger vi Blynk- appen til at udløse en webhook ved hjælp af Google-assistent. Det ligner meget vores stemmestyrede hjemmeautomatisering og stemmestyrede FM-radioprojekt. Bortset fra her bruger vi blynk med IFTTT til at sende streng, hvilket gør det meget nemmere og interessant.
Dybest set bruger vi den virtuelle pin V5 og V6 på blynk til at sende udløserkommandoen. V5 vil blive brugt til tændingskommandoer og V6 vil blive brugt til at slukke for kommandoer. For eksempel, hvis vi siger tænde tv og lampe. Stringkommandoen her "TV og lampe" sendes til NodeMCU ved hjælp af en API. Syntaksen for API er som nedenfor.
http://188.166.206.43//update/V5?value=TV og lampe
Nu er alt hvad vi skal gøre i IFTTT, at bruge google-assistent som IF og webhooks som DET, så lyt til denne kommando og send informationen til NodeMCU ved hjælp af ovennævnte API. Tænd-applet-formen er den samme, vises nedenfor.
Bemærk, at du skal vælge sig en sætning med tekstingrediensindstilling, når du opretter en opskrift til Google Assistant. På samme måde skal du gentage det samme for virtuel pin V6 for at slukke for relæerne. Du kan tjekke videoen nederst på denne side for detaljeret information.
Programmering af Arduino til Blynk Home Automation
Den komplette Arduino-kode til dette projekt findes nederst på denne side. Forklaringen på det samme er som følger. Før det skal du sørge for at bruge Blynk og Program NodeMCU fra Arduino IDE. Hvis ikke følg at komme i gang med ESP12-artiklen. Tilføj også blynk-biblioteket til Arduino IDE ved hjælp af bestyrelseslederen.
Som altid begynder vi vores kode med at definere input og output pins, her vil input være fra switches og output vil være fra relæer. Vi har defineret pinnavne for alle fire kontakter som sw og relæer som rel, som du kan se nedenfor.
#define sw1 13 #define sw2 12 #define sw3 14 #define sw4 16 #define rel1 4 #define rel2 5 #define rel3 9 #define rel4 10
I det næste trin skal du indtaste nogle legitimationsoplysninger som blynk auth-token og brugernavnet og adgangskoden til den Wi-Fi-router, som din nodeMCU skal have forbindelse til. Blink-autent-tokenet kan fås fra blynk-applikationen. Vi lærer mere om det i afsnittet om opsætning af blynk-applikationer.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // get from blynk application char ssid = "home_wifi"; char pass = "fakepass123";
Dernæst har vi givet definitionen for en funktion kaldet read_switch_toggle () . I denne funktion sammenligner vi vores switches nuværende tilstand og tidligere tilstand. Hvis kontakten er tændt eller slukket, dvs. hvis kontakten er skiftet. Der vil være en ændring i kontakten, funktionen vil overvåge denne ændring og returnere switchnummeret. Hvis der ikke registreres nogen ændring, returnerer den 0.
int read_switch_toggle () {int resultat = 0; // Bemærk alle tidligere værdier for (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Læs den aktuelle status for switches crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // sammenlign nuværende og pvs-tilstand for (int i = 0; i <= 3; i ++) {hvis (pvs_state! = crnt_state) {result = (i + 1); // hvis en switch er slået til, får vi switch-nummer som resultatreturresultat; } andet resultat = 0; // hvis intet ændringsresultat 0} returnerer resultat; // returner resultatet}
Dernæst har vi koden til blynk-applikation. Vi bruger den virtuelle pin V1 til V6 til at styre vores smarte forbindelsesboks. Pins V1 til V4 vil blive brugt til at styre relæ henholdsvis 1 til 4 direkte fra blynk-applikationen. Koden nedenfor viser, hvad der sker, når V1 udløses fra blynk-applikationen. Vi læser blot status (HIGH eller LOW) og styrer relæet i overensstemmelse hermed.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
Tilsvarende kan de virtuelle ben også bruges til at læse en streng fra blynk-applikationen. Vi lærer at sende en streng fra google-assistent til NodeMCU ved hjælp af IFTTT og Google-assistent senere, men lad os nu se, hvordan NodeMCU-koden læser denne streng og søger efter et bestemt nøgleord og udløser relæet i overensstemmelse hermed.
I nedenstående kode kan du se, at når virtuel pin V5 udløses, får vi strengen sendt forbi den til en strengvariabel kaldet ON_message . Derefter søger vi ved hjælp af denne strengvariabel og inderOf-metoden, om der findes søgeord som “lampe”, “LED”, “musik”, “TV”, hvis ja, tænder vi for den pågældende belastning. Hvis søgeordet "alt" opdages, tænder vi alt. Det samme kan også gøres for V6 at slukke for relæerne. Vi vil forstå mere om dette, når vi kommer ind i IFTTT-sektionen.
BLYNK_WRITE (V5) {String ON_message = param.asStr (); Serial.println (ON_message); hvis (ON_message.indexOf ("lampe")> = 0) digitalWrite (rel1, HIGH); hvis (ON_message.indexOf ("LED")> = 0) digitalWrite (rel2, HIGH); hvis (ON_message.indexOf ("musik")> = 0) digitalWrite (rel3, HIGH); hvis (ON_message.indexOf ("TV")> = 0) digitalWrite (rel4, HIGH); hvis (ON_message.indexOf ("alt")> = 0) {digitalWrite (rel1, HIGH); digitalWrite (rel2, HIGH); digitalWrite (rel3, HIGH); digitalWrite (rel4, HIGH); }}
Endelig, inden i loop-funktionen, skal vi kun kontrollere, om nogen knapper er switchposition har ændret sig. Hvis ja, så bruger vi en switch case som vist nedenfor til at skifte positionen for det pågældende relæ.
switch (toggle_pin) {case 0: break; tilfælde 1: Serial.println ("Skifterelæ 1"); digitalWrite (rel1, relay_state); pause; tilfælde 2: Serial.println ("Skifterelæ 2"); digitalWrite (rel2, relay_state); pause; tilfælde 3: Serial.println ("Skifterelæ 3"); digitalWrite (rel3, relay_state); pause; tilfælde 4: Serial.println ("Skifterelæ 4"); digitalWrite (rel4, relæ_tilstand); pause; }}
Fabrikation af PCB ved hjælp af PCBGoGo
Nu forstår vi, hvordan skemaerne fungerer, og vi kan fortsætte med at opbygge printkortet til vores hjemmeautomatiseringsprojekt. PCB-layoutet til ovenstående kredsløb kan også downloades som Gerber fra linket.
- Download GERBER til stemmestyret hjemmeautomatisering ved hjælp af Google Assistant
Nu er vores design klar, det er på tide at få dem fabrikeret ved hjælp af Gerber-filen. For at få printkortet gjort fra PCBGOGO er det ganske let, skal du blot følge nedenstående trin-
Trin 1: Gå ind på www.pcbgogo.com, tilmeld dig, hvis det er første gang. Indtast derefter dimensionerne på din PCB, antallet af lag og antallet af PCB, du har brug for, på fanen PCB Prototype. Forudsat at printkortet er 80 cm × 80 cm, kan du indstille målene som vist nedenfor.
Trin 2: Fortsæt ved at klikke på knappen Citér nu . Du vil blive ført til en side, hvor du kan indstille et par ekstra parametre, hvis det kræves, som det anvendte materiale sporafstand osv. Men for det meste fungerer standardværdierne fint. Det eneste, vi skal overveje her, er pris og tid. Som du kan se, er byggetiden kun 2-3 dage, og det koster kun $ 5 for vores printkort. Du kan derefter vælge en foretrukken forsendelsesmetode baseret på dit krav.
Trin 3: Det sidste trin er at uploade Gerber-filen og fortsætte med betalingen. For at sikre, at processen er glat, verificerer PCBGOGO, om din Gerber-fil er gyldig, inden du fortsætter med betalingen. På denne måde kan du være sikker på, at dit print er fabrikationsvenligt og når dig som engageret.
Montering af printkortet
Efter bestyrelsen blev bestilt, nåede den mig efter nogle dage gennem kurer i en pænt mærket, godt pakket kasse, og som altid var kvaliteten af printkortet fantastisk. PCB'et, der blev modtaget af mig, er vist nedenfor. Som du ser, har både det øverste og nederste lag vist sig som forventet.
Vias og pads var alle i den rigtige størrelse. Det tog mig omkring 15 minutter at samle mig på printkort for at få et arbejdskredsløb. Det samlede bræt er vist nedenfor.
Tilslutning af kortet med vekselstrømsenheder / udvidelseskort
Kortet er designet til at blive fastgjort i vekselstrømsstikkene i vores hjem. Men af hensyn til dette projekt bruger vi en udvidelsesboks. Hvis du vil have en mere permanent løsning, skal du tilslutte dette i dine vekselstrømsstik, som du kan se under længden af printkortet er kompakt nok til at blive placeret i en vekselstrømsstik.
Sørg for at følge sikkerhedsforanstaltningerne, mens du arbejder med lysnettet. Følg kredsløbsdiagrammet nedenfor for at forstå, hvordan du forbinder dine relæer og switche til vores printkort.
Forbindelsesdiagrammet er kun nede for et relæ og switch, men du kan bare replikere det samme for de resterende tre også. Når forbindelserne er færdige, skal dit bord se sådan ud
Når forbindelserne er foretaget, skal du sørge for at have sikret dem tæt med skrueterminaler og også bruge varm lim for yderligere sikkerhed. Pak alt tilbage i kassen, så skal vi være klar til test. Du kan finde det komplette arbejde med dette projekt i videoen nedenfor.
Jeg håber du nød artiklen og lærte noget nyttigt. Hvis du har spørgsmål, skal du lade dem være i kommentarfeltet nedenfor eller bruge vores fora.