- Kretsdiagram for Google Assistant-styrt hjemmeautomatisering
- Sette opp Blynk-applikasjonen
- Sette opp IFTTT med Google Assistant og Blynk for å lese streng
- Programmering av Arduino for Blynk Home Automation
- Fremstille PCB ved hjelp av PCBGoGo
- Montering av PCB
- Koble kortet til vekselstrømsenheter / utvidelseskort
Med fremgangen innen virtuelle assistenter som Google Assistant og Alexa, blir hjemmeautomatisering og stemmestyrte applikasjoner normale. Nå har vi selv bygget mange hjemmeautomatiseringsprosjekter, fra enkle automatiske trappelys til IoT-basert nettstyrt hjemmeautomatisering ved hjelp av Raspberry Pi. Men dette prosjektet her er annerledes, ideen her er å lage et praktisk hjemmeautomatiseringskort som kan passe inn i vekselstrømsaggregatene på veggene våre og holde seg skjult inne i det. Styret skal ikke avbryte normal drift av strømbryterne våre, det vil si at de også skal slå PÅ eller AV med manuelle brytere. Og uten å bli sagt, burde det også være i stand til å kontrollere samme belastning med stemme ved hjelp av google assistent og også stille en tidtaker slik at enhver belastning automatisk kan slå PÅ eller AV i løpet av en forhåndsinnstilt tid på dagen.
Dette prosjektet ligner veldig på vår ESP8266 Smart Wi-Fi-plugg, men siden vi skal bruke ESP12, vil vi ha flere GPIO-pinner som lar oss kontrollere fire vekselstrømslaster samtidig. Siden vi har integrert Blynk og Google Assistant, blir prosjektet også interessant og praktisk å bruke. For dette prosjektet har vi bygget kretskortene ved hjelp av PCBGOGO PCB-produksjonstjeneste. I den senere delen av artikkelen har vi gitt Gerber-filen designet for kretsen, og også forklart den fullstendige prosedyren for å bestille PCB fra PCBGOGO.
Advarsel: Dette prosjektet innebærer å arbeide med vekselstrømspenningen. Vær oppmerksom på at ekstrem forsiktighet må utvises når du arbeider med høy vekselstrøm. Sørg for at du blir overvåket av en erfaren person hvis du er ny.
Kretsdiagram for Google Assistant-styrt hjemmeautomatisering
Det komplette kretsskjemaet for hjemmeautomatisering finner du nedenfor.
Som du kan se, er kretsen veldig enkel, la oss starte forklaringen fra ESP12E Wi-Fi-modulen. Du kan også sjekke ut videoen nedenfor for en detaljert prosjektforklaring. Modulen kan programmeres akkurat som nodeMCU-utviklingskort, og det reduserer mye plass. Når den er slått på, går ESP12E som standard i driftsmodus. For å programmere det, må vi bruke Tilbakestill og Flash-knappen. Det vil si å sette ESP12 i programmeringsmodus, trykke og holde både Reset og Flash-knappen, og slipp deretter reset-knappen. Dette vil starte ESP12E med blitsknappen trykket, slipp nå blitsknappen og ESP12E vil gå inn i programmeringsmodus. Etter programmering må du trykke på reset-knappen igjen for å starte ESP12E i normal driftsmodus for å utføre det opplastede programmet. Programmeringspinnene Rx, Rx,og Ground utvides for å kunne koble til et FTDI-kort eller USB til TTL-omformer. Sørg for å koble Tx-pinnen til ESP12 til Rx-pinnen på programmereren og omvendt.
De andre flaggpinnene I1 til I4 og R1 til R4 brukes til å koble brytere og reléer. Pins I1 til I4 står for Input pins. Alle disse pinnene støtter intern opptrekksmotstand, så vi må bare koble bryterne på forlengelsesboksen til inngangstappen vår gjennom en nedtrekkbar motstand som vist nedenfor.
På samme måte brukes reléutgangspinnene R1 til R4 til å kontrollere reléene. Vi har brukt en standard relédriverkrets med BC547 og IN4007-diode som vist nedenfor. Merk at reléene skal utløses med 5V, men ESP12E-utgangspinnene er bare 3,3V. Så det er obligatorisk å bruke en transistor til å drive reléene. Vi har også plassert en LED i transistorens base, slik at når transistoren utløses, vil også LED-en slås på.
Til slutt, for å drive alle kretsene våre, har vi brukt Hi-Link AC-DC-omformeren til å konvertere 220V AC til 5V DC. Denne 5V DC konverteres deretter til 3,3V ved hjelp av en AMS117-3.3V spenningsregulator. 5V brukes til å utløse reléer og 3,3V brukes til å drive ESP21 Wi-Fi-modulen.
Sette opp Blynk-applikasjonen
Vi har tidligere bygget mange Blynk-prosjekter som Wi-Fi-kontrollert Arduino-robot, så vi kommer ikke inn på detaljene for å sette opp blynk-applikasjonen. Men for å si det enkelt, er det bare å installere applikasjonen, lage et nytt prosjekt for NodeMCU og begynne å plassere widgetene dine som vist nedenfor.
Jeg har brukt virtuelle pinner V1 til V4 for å kontrollere relé 1 til 4 på prosjektet vårt. Sørg for å endre type knapp for å bytte. Timer-alternativet kan også brukes til å utløse de virtuelle pinnene automatisk for den angitte tiden, selv om telefonen er slått av. Jeg har brukt en timer for bare virtuell pin V1 her, for eksempel, men du kan bruke den til alle fire pinnene om nødvendig.
Sørg for å få verdien av blynk auth token fra prosjektsiden din. Bare klikk på mutterikonet (sirklet i rødt på bildet ovenfor) og kopier autent-token ved å kopiere alt-alternativet og lim det inn et sted trygt, vi trenger når du programmerer Arduino-kortet.
Sette opp IFTTT med Google Assistant og Blynk for å lese streng
Den enkleste måten å bruke Google Assistant til hjemmeautomatisering på er å bruke IFTTT. Vi har også bygget mange IFTTT-prosjekter tidligere med NodeMCU og Raspberry Pi. I dette prosjektet vil vi bruke Blynk- appen til å utløse en webhook ved hjelp av Google-assistent. Det er veldig likt vårt stemmestyrte hjemmeautomatisering og stemmestyrte FM-radioprosjekt. Bortsett fra at vi her bruker blynk med IFTTT for å sende streng som gjør det mye enklere og interessant.
I utgangspunktet vil vi bruke virtuell pin V5 og V6 på blynk for å sende utløserkommandoen. V5 vil bli brukt til å slå på kommandoer og V6 vil bli brukt til å slå av kommandoer. For eksempel hvis vi sier slå på TV og lampe. Strengkommandoen her "TV og lampe" vil bli sendt til NodeMCU ved hjelp av en API. Syntaksen til API er som nedenfor.
http://188.166.206.43//update/V5?value=TV og Lamp
Nå er alt vi trenger å gjøre i IFTTT at bruker google-assistent som IF og webhooks som DET, så lytt til denne kommandoen og send informasjonen til NodeMCU ved hjelp av ovennevnte API. Start-appleten fra det samme er vist nedenfor.
Vær oppmerksom på at du må si si et uttrykk med alternativet tekstingrediens når du oppretter en oppskrift for Google Assistant. På samme måte må du gjenta det samme for virtuell pin V6 for å slå av reléene. Du kan sjekke videoen nederst på denne siden for detaljert informasjon.
Programmering av Arduino for Blynk Home Automation
Den komplette Arduino-koden for dette prosjektet finner du nederst på denne siden. Forklaringen på det samme er som følger. Før det må du sørge for at du kan bruke Blynk og Program NodeMCU fra Arduino IDE. Hvis ikke følg å komme i gang med ESP12-artikkelen. Legg også til blynk-biblioteket til Arduino IDE ved hjelp av styrelederen.
Som alltid begynner vi koden vår med å definere inngangs- og utgangspinnene, her vil inngangen være fra brytere og utgangen vil være fra releer. Vi har definert pin-navnene for alle fire bryterne som sw og releer så 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 neste trinn må du oppgi noen legitimasjonsbeskrivelser som blynk auth-token og brukernavnet og passordet for Wi-Fi-ruteren som nodeMCU-en din skal kobles til. Blink-autent-tokenet kan fås fra blynk-applikasjonen. Vi lærer mer om det i oppsettet av blynk-applikasjon.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // get from blynk application char ssid = "home_wifi"; char pass = "fakepass123";
Deretter har vi gitt definisjonen for en funksjon som heter read_switch_toggle () . I denne funksjonen vil vi sammenligne nåværende tilstand og tidligere tilstand for bryterne våre. Hvis bryteren er slått på eller av, dvs. hvis bryteren er slått på. Det vil være en endring i bryterens tilstand, funksjonen vil overvåke denne endringen og returnere bryternummeret. Hvis det ikke oppdages noen endring, vil den returnere 0.
int read_switch_toggle () {int resultat = 0; // Legg merke til alle tidligere verdier for (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Les gjeldende status for brytere crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // sammenlign nåværende og pvs-tilstand for (int i = 0; i <= 3; i ++) {if (pvs_state! = crnt_state) {result = (i + 1); // hvis noen brytere er slått på, får vi bryternummer som resultatreturresultat; } annet resultat = 0; // hvis ingen endringsresultat 0} returnerer resultat; // returner resultatet}
Deretter har vi koden for blynk-applikasjon. Vi bruker virtuell pin V1 til V6 for å kontrollere vår smarte koblingsboks. Pins V1 til V4 vil bli brukt til å kontrollere reléene 1 til 4 henholdsvis direkte fra blynk-applikasjonen. Koden nedenfor viser hva som skjer når V1 utløses fra blynk-applikasjonen. Vi leser ganske enkelt statusen (HIGH eller LOW) og styrer reléet deretter.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
På samme måte kan de virtuelle pinnene også brukes til å lese en streng fra blynk-applikasjonen. Vi lærer hvordan du sender en streng fra google-assistent til NodeMCU ved hjelp av IFTTT og Google-assistent senere, men for nå, la oss se hvordan NodeMCU-koden leser denne strengen og søker etter et bestemt nøkkelord og utløser reléet deretter.
I koden nedenfor kan du se at når virtuell pin V5 utløses, får vi strengen sendt av den til en strengvariabel kalt ON_message . Så bruker vi denne strengvariabelen og inderOf-metoden, søker vi om noen nøkkelord som “lampe”, “LED”, “musikk”, “TV” er til stede, hvis ja, vi slår på den aktuelle belastningen. Hvis søkeordet "alt" oppdages, slår vi på alt. Det samme kan også gjøres for at V6 slår av reléene. Vi vil forstå mer om dette når vi kommer inn i IFTTT-delen.
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 ("music")> = 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); }}
Til slutt, inne i sløyfefunksjonen, trenger vi bare å sjekke om noen knapper er byttestilling har endret seg. Hvis ja, så bruker vi et bryterveske som vist nedenfor for å veksle posisjonen til det aktuelle reléet.
switch (toggle_pin) {case 0: break; tilfelle 1: Serial.println ("Toggle Relay 1"); digitalWrite (rel1, relay_state); gå i stykker; tilfelle 2: Serial.println ("Toggle Relay 2"); digitalWrite (rel2, relay_state); gå i stykker; tilfelle 3: Serial.println ("Toggle Relay 3"); digitalWrite (rel3, relay_state); gå i stykker; tilfelle 4: Serial.println ("Toggle Relay 4"); digitalWrite (rel4, relay_state); gå i stykker; }}
Fremstille PCB ved hjelp av PCBGoGo
Nå forstår vi hvordan skjemaene fungerer, vi kan fortsette med å bygge PCB for vårt hjemmeautomatiseringsprosjekt. PCB-oppsettet for kretsen ovenfor er også tilgjengelig for nedlasting som Gerber fra lenken.
- Last ned GERBER for stemmestyrt hjemmeautomatisering ved hjelp av Google Assistant
Nå er designet vårt klart, det er på tide å få dem fabrikert ved hjelp av Gerber-filen. For å få PCB gjort fra PCBGOGO er ganske enkelt, følg bare trinnene nedenfor -
Trinn 1: Gå inn på www.pcbgogo.com, registrer deg hvis dette er første gang. Skriv deretter inn dimensjonene på PCB, antall lag og antall PCB du trenger i kategorien PCB Prototype. Forutsatt at PCB er 80 cm × 80 cm, kan du stille inn dimensjonene som vist nedenfor.
Trinn 2: Fortsett ved å klikke på Sitat nå- knappen. Du blir ført til en side hvor du kan angi noen ekstra parametere hvis nødvendig, for eksempel materialet som brukes sporavstand osv. Men for det meste vil standardverdiene fungere bra. Det eneste vi må vurdere her er pris og tid. Som du kan se er byggetiden bare 2-3 dager, og det koster bare $ 5 for PCB. Du kan deretter velge en foretrukket fraktmetode basert på dine krav.
Trinn 3: Det siste trinnet er å laste opp Gerber-filen og fortsette med betalingen. For å sikre at prosessen er jevn, verifiserer PCBGOGO om Gerber-filen din er gyldig før du fortsetter med betalingen. På denne måten kan du være sikker på at PCB er fabrikasjonsvennlig og vil nå deg som engasjert.
Montering av PCB
Etter at styret ble bestilt, nådde det meg etter noen dager gjennom bud i en pent merket, godt pakket eske, og som alltid var kvaliteten på PCB fantastisk. PCB som ble mottatt av meg er vist nedenfor. Som du ser har både topp- og bunnlaget blitt som forventet.
Viasene og putene var alle i riktig størrelse. Det tok meg rundt 15 minutter å montere på PCB-kortet for å få en arbeidskrets. Det monterte brettet er vist nedenfor.
Koble kortet til vekselstrømsenheter / utvidelseskort
Brettet er designet for å festes inne i strømuttakene i hjemmet vårt. Men av hensyn til dette prosjektet vil vi bruke en utvidelsesboks. Hvis du vil ha en mer permanent løsning, kan du koble dette inn i strømuttakene dine, som du kan se under lengden på kretskortet, er kompakt nok til å plasseres i et strømuttak.
Sørg for at du følger sikkerhetsforholdsregler når du arbeider med strømnettet. Følg kretsskjemaet nedenfor for å forstå hvordan du kobler reléene og bryterne til PCB-kortet vårt.
Tilkoblingsskjemaet er bare nede for ett relé og bryter, men du kan bare replikere det samme for de resterende tre også. Når tilkoblingene er gjort, bør styret ditt se slik ut
Når tilkoblingene er gjort, må du sørge for at du har sikret dem tett med skrueterminaler, og bruk også varmt lim for ekstra sikkerhet. Pakk alt tilbake i esken, så skal vi være klare for testing. Du kan finne fullstendig bearbeiding av dette prosjektet i videoen nedenfor.
Jeg håper du likte artikkelen og lærte noe nyttig. Hvis du har spørsmål, kan du legge dem i kommentarfeltet nedenfor eller bruke forumene våre.