- Kretsschema för Google Assistant-kontrollerad hemautomation
- Ställa in Blynk-applikationen
- Konfigurera IFTTT med Google Assistant och Blynk för att läsa sträng
- Programmering av Arduino för Blynk Home Automation
- Tillverkning av PCB med PCBGoGo
- Montering av kretskortet
- Ansluta kortet till nätaggregat / förlängningskort
Med framstegen inom virtuella assistenter som Google Assistant och Alexa blir hemautomation och röststyrda applikationer normala. Nu har vi själva byggt många hemautomationsprojekt, från enkla automatiska trappljus till IoT-baserad webbstyrd hemautomation med Raspberry Pi. Men det här projektet här är annorlunda, idén här är att skapa en praktisk hemautomatiseringskort som kan passa in i våra växelströmsaggregat på våra väggar och förbli dold inuti den. Brädet ska inte avbryta den normala funktionen hos våra strömbrytare, det vill säga att de också ska slås PÅ eller AV med manuella omkopplare. Och utan att sägas borde det också kunna kontrollera samma belastning med röst med hjälp av google-assistenten och också ställa in en timer så att varje belastning automatiskt kan slå PÅ eller AV under en förinställd tid på dagen.
Detta projekt liknar väldigt mycket på vår ESP8266 Smart Wi-Fi-kontakt men här eftersom vi kommer att använda ESP12 kommer vi att ha fler GPIO-stift som gör att vi kan kontrollera fyra växelström samtidigt. Eftersom vi har integrerat Blynk och Google Assistant blir projektet också intressant och praktiskt att använda. För detta projekt har vi byggt kretskorten med hjälp av PCBGOGO PCB-tillverkningsservice. I det senare avsnittet av artikeln har vi tillhandahållit Gerber-filen som är utformad för kretsen och förklarade också hela proceduren för att beställa kretskort från PCBGOGO.
Varning: Detta projekt handlar om att arbeta med växelspänningen. Observera att extrem försiktighet bör iakttas när du arbetar med höga växelspänningar. Se till att du övervakas av en erfaren person om du är ny.
Kretsschema för Google Assistant-kontrollerad hemautomation
Det fullständiga kretsschemat för hemautomation finns nedan.
Som du kan se är kretsen väldigt enkel, låt oss börja förklaringen från ESP12E Wi-Fi-modulen. Du kan också kolla in videon nedan för en detaljerad projektförklaring. Modulen kan programmeras precis som nodeMCU-utvecklingskort och det minskar mycket utrymme. ESP12E går som standard in i driftläge när den är påslagen. För att programmera det måste vi använda knappen Reset och Flash. Det vill säga för att sätta ESP12 i programmeringsläge, håll ned både Återställ och Blixt och släpp sedan återställningsknappen. Detta startar ESP12E med blixten nedtryckt, släpp nu blixten och ESP12E går in i programmeringsläget. Efter programmering måste du trycka på återställningsknappen igen för att starta ESP12E i normalt driftläge för att utföra det uppladdade programmet. Programmeringsstiftet Rx, Rx,och Ground utökas för att kunna anslutas med ett FTDI-kort eller USB till TTL-omvandlare. Se till att ansluta Tx-stiftet på ESP12 till Rx-stiftet på programmeraren och vice versa.
De andra flaggstiften I1 till I4 och R1 till R4 används för att ansluta brytare och reläer. Pins I1 till I4 står för Input pins. Alla dessa stift stöder internt uppdragsmotstånd, så vi måste bara ansluta omkopplarna på förlängningsboxen till vår ingångsstift genom ett neddragningsmotstånd som visas nedan.
På samma sätt används reläutgångsstiften R1 till R4 för att styra reläerna. Vi har använt en standardrelädrivkrets med BC547 och IN4007-diod enligt nedan. Observera att reläerna ska utlösas med 5V men ESP12E-utgångarna är bara 3,3V. Så det är obligatoriskt att använda en transistor för att driva reläerna. Vi har också placerat en lysdiod i transistorns basväg så att närhelst transistorn utlöses kommer även lysdioden att tändas.
Slutligen, för att driva alla våra kretsar, har vi använt Hi-Link AC-DC-omvandlaren för att konvertera vår 220V AC till 5V DC. Denna 5V DC omvandlas sedan till 3,3V med en AMS117-3.3V spänningsregulator. 5V används för att utlösa reläer och 3,3V används för att driva ESP21 Wi-Fi-modulen.
Ställa in Blynk-applikationen
Vi har tidigare byggt många Blynk-projekt som Wi-Fi-styrd Arduino-robot, så vi kommer inte att komma in i detaljerna för att ställa in blynk-applikationen. Men för att göra det enkelt, installera bara applikationen, skapa ett nytt projekt för NodeMCU och börja placera dina widgets enligt nedan.
Jag har använt virtuella stift V1 till V4 för att styra relä 1 till 4 på vårt projekt. Se till att ändra typ av knapp för att växla. Timeralternativet kan också användas för att utlösa virtuella stift automatiskt under den inställda tiden, även om telefonen är avstängd. Jag har till exempel använt en timer för endast virtuell stift V1, men du kan använda den för alla fyra stift om det behövs.
Se till att få ditt blynk auth-tokenvärde från projektsidan. Klicka bara på mutterikonen (inringad i rött i bilden ovan) och kopiera autent-token med kopiera allt-alternativet och klistra in det någonstans säkert, vi behöver när du programmerar Arduino-kortet.
Konfigurera IFTTT med Google Assistant och Blynk för att läsa sträng
Det enklaste sättet att använda Google Assistant för hemautomation är att använda IFTTT. Vi har också byggt många IFTTT-projekt tidigare med NodeMCU och Raspberry Pi. I det här projektet kommer vi att använda Blynk- appen för att utlösa en webbkrok med hjälp av Google-assistent. Det liknar mycket vårt röststyrda hemautomation och röststyrda FM-radioprojekt. Förutom här kommer vi att använda blynk med IFTTT för att skicka sträng vilket gör det mycket enklare och intressantare.
I grund och botten kommer vi att använda virtuell stift V5 och V6 på blynk för att skicka utlösarkommandot. V5 kommer att användas för påslagningskommandon och V6 kommer att användas för att stänga av kommandon. Om vi till exempel säger slå på TV och lampa. Strängkommandot här "TV och lampa" kommer att skickas till NodeMCU med ett API. Syntaxen för API är som nedan.
http://188.166.206.43//update/V5?value=TV och lampa
Nu är allt vi behöver göra i IFTTT att använda google-assistenten som IF och webbhooks som DET så lyssna på det här kommandot och skicka informationen till NodeMCU med ovanstående API. Start-appleten från samma visas nedan.
Observera att du måste välja säg en fras med textingrediensalternativ när du skapar ett recept för Google Assistant. På samma sätt måste du upprepa samma för virtuell stift V6 för att stänga av reläer. Du kan se videon längst ner på denna sida för detaljerad information.
Programmering av Arduino för Blynk Home Automation
Den fullständiga Arduino-koden för detta projekt finns längst ner på denna sida. Förklaringen av detsamma är som följer. Innan det ska du se till att du kan använda Blynk och Program NodeMCU från Arduino IDE. Om inte följa artikeln om att komma igång med ESP12. Lägg också till blynk-biblioteket i Arduino IDE med styrelsens chef.
Som alltid börjar vi vår kod med att definiera ingångs- och utgångsstift, här kommer ingången från omkopplare och utgång kommer från reläer. Vi har definierat stiftnamnen för alla fyra omkopplarna som sw och reläer som rel som du kan se nedan.
#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 nästa steg måste du ange några referenser som blynk auth-token och användarnamnet och lösenordet för den Wi-Fi-router som din nodeMCU ska anslutas till. Blinka-autent-token kan erhållas från blynk-applikationen. Vi kommer att lära oss mer om det i avsnittet om inställning av blynk-applikationer.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // get from blynk application char ssid = "home_wifi"; char pass = "fakepass123";
Därefter har vi gett definitionen för en funktion som heter read_switch_toggle () . I den här funktionen kommer vi att jämföra det aktuella tillståndet och det tidigare tillståndet för våra switchar. Om omkopplaren har slagits på eller stängts av, dvs. om omkopplaren har växlats. Det kommer att ändras i omkopplarens tillstånd, funktionen övervakar denna ändring och returnerar omkopplarnumret. Om ingen ändring upptäcks kommer den att returnera 0.
int read_switch_toggle () {int result = 0; // Observera alla tidigare värden för (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Läs aktuell status för växlar crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // jämför nuvarande och pvs-tillstånd för (int i = 0; i <= 3; i ++) {if (pvs_state! = crnt_state) {result = (i + 1); // om någon omkopplare växlas får vi omkopplarnummer som resultatreturresultat; } annat resultat = 0; // om inget ändringsresultat 0} returnerar resultatet; // returnera resultatet}
Därefter har vi koden för blynk-applikationen. Vi kommer att använda virtuell stift V1 till V6 för att styra vår smarta kopplingsbox. Stift V1 till V4 kommer att användas för att styra relä 1 till 4 respektive direkt från blynk-applikationen. Koden nedan visar vad som händer när V1 utlöses från blynk-applikationen. Vi läser helt enkelt statusen (HÖG eller LÅG) och styr reläet därefter.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
På samma sätt kan de virtuella stiften också användas för att läsa en sträng från blynk-applikationen. Vi kommer att lära oss hur man skickar en sträng från google-assistent till NodeMCU med IFTTT och Google-assistent senare, men låt oss för närvarande se hur NodeMCU-koden läser denna sträng och söker efter ett visst nyckelord och utlöser reläet i enlighet därmed.
I koden nedan kan du se att när virtuell stift V5 utlöses får vi strängen passerad av den till en strängvariabel som heter ON_message . Sedan använder vi den här strängvariabeln och inderOf-metoden, vi söker om några nyckelord som "lampa", "LED", "musik", "TV" finns, om ja, vi slår på just den belastningen. Om nyckelordet ”allt” upptäcks slår vi på allt. Detsamma kan också göras för V6 att stänga av reläerna. Vi kommer att förstå mer om detta när vi kommer in i IFTTT-avsnittet.
BLYNK_WRITE (V5) {String ON_message = param.asStr (); Serial.println (ON_message); om (ON_message.indexOf ("lampa")> = 0) digitalWrite (rel1, HIGH); om (ON_message.indexOf ("LED")> = 0) digitalWrite (rel2, HIGH); if (ON_message.indexOf ("music")> = 0) digitalWrite (rel3, HIGH); om (ON_message.indexOf ("TV")> = 0) digitalWrite (rel4, HIGH); om (ON_message.indexOf ("allt")> = 0) {digitalWrite (rel1, HIGH); digitalWrite (rel2, HIGH); digitalWrite (rel3, HIGH); digitalWrite (rel4, HIGH); }}
Slutligen, inuti slingfunktionen, behöver vi bara kontrollera om några knappar har bytt läge har ändrats. Om ja, använder vi ett omkopplare som visas nedan för att växla positionen för det aktuella reläet.
switch (toggle_pin) {case 0: break; fall 1: Serial.println ("Växlande relä 1"); digitalWrite (rel1, relay_state); ha sönder; fall 2: Serial.println ("Växlande relä 2"); digitalWrite (rel2, relay_state); ha sönder; fall 3: Serial.println ("Växlande relä 3"); digitalWrite (rel3, relay_state); ha sönder; fall 4: Serial.println ("Växlande relä 4"); digitalWrite (rel4, relä_stat); ha sönder; }}
Tillverkning av PCB med PCBGoGo
Nu förstår vi hur schemat fungerar, vi kan fortsätta med att bygga kretskortet för vårt hemautomationsprojekt. PCB-layouten för ovanstående krets är också tillgänglig för nedladdning som Gerber från länken.
- Ladda ner GERBER för röststyrd hemautomation med Google Assistant
Nu är vår design klar, det är dags att få dem tillverkade med Gerber-filen. För att få PCB gjort från PCBGOGO är det ganska enkelt, följ bara stegen nedan-
Steg 1: Gå in på www.pcbgogo.com, registrera dig om det är första gången. Ange sedan dimensionerna på din PCB, antalet lager och antalet PCB du behöver på fliken PCB Prototype. Förutsatt att kretskortet är 80 cm × 80 cm kan du ställa in måtten enligt nedan.
Steg 2: Fortsätt genom att klicka på knappen Citera nu . Du kommer till en sida där du kan ställa in några ytterligare parametrar om det behövs, t.ex. materialet som används spåravstånd etc. Men för det mesta kommer standardvärdena att fungera bra. Det enda som vi måste tänka på här är pris och tid. Som du kan se är byggtiden bara 2-3 dagar och det kostar bara 5 USD för vår PCB. Du kan sedan välja en föredragen leveransmetod baserat på ditt krav.
Steg 3: Det sista steget är att ladda upp Gerber-filen och fortsätta med betalningen. För att säkerställa att processen är smidig verifierar PCBGOGO om din Gerber-fil är giltig innan du fortsätter med betalningen. På så sätt kan du vara säker på att din PCB är tillverkningsvänlig och når dig som engagerad.
Montering av kretskortet
Efter att tavlan beställdes nådde den mig efter några dagar genom kurir i en snyggt märkt välpackad låda, och som alltid var PCB-kvaliteten fantastisk. PCB: n som mottogs av mig visas nedan. Som du ser har både det övre och det undre lagret visat sig som förväntat.
Vias och dynor var alla i rätt storlek. Det tog mig cirka 15 minuter att montera på kretskortet för att få en fungerande krets. Det monterade kortet visas nedan.
Ansluta kortet till nätaggregat / förlängningskort
Kortet är utformat för att fästas i nätuttagen i våra hem. Men för projektets skull kommer vi att använda en förlängningsruta. Om du vill ha en mer permanent lösning, koppla sedan in den i dina nätuttag, som du kan se nedan är längden på kretskortet tillräckligt kompakt för att placeras i ett nätuttag.
Se till att du följer säkerhetsåtgärder när du arbetar med nätström. Följ kretsschemat nedan för att förstå hur du ansluter dina reläer och växlar till vårt kretskort.
Anslutningsdiagrammet är nere endast för ett relä och switch men du kan bara replikera samma för de återstående tre också. När anslutningarna är klara ska din styrelse se ut så här
När anslutningarna är gjorda, se till att du har säkrat dem ordentligt med skruvplintar och använd också hett lim för extra säkerhet. Packa tillbaka allt i lådan så ska vi vara redo att testa. Du kan hitta det fullständiga arbetet med detta projekt i videon nedan.
Jag hoppas att du gillade artikeln och lärde dig något användbart. Om du har några frågor, vänligen lämna dem i kommentarfältet nedan eller använd våra forum.