- Diagrama circuitului pentru Asistentul Google controlat Home Automation
- Configurarea aplicației Blynk
- Configurarea IFTTT cu Asistentul Google și Blynk pentru a citi șirul
- Programarea Arduino pentru Blynk Home Automation
- Fabricarea PCB folosind PCBGoGo
- Asamblarea PCB-ului
- Conectarea plăcii cu unități de alimentare CA / plăci de extensie
Odată cu avansarea asistenților virtuali precum Asistentul Google și Alexa, aplicațiile automatizate pentru casă și controlate prin voce devin normale. Acum, noi înșine am construit multe proiecte de automatizare a locuințelor, de la lumini automate de scări simple până la automatizarea web controlată pe bază de IoT folosind Raspberry Pi. Dar acest proiect aici este diferit, ideea de aici este de a crea o placă practică de automatizare a locuinței care să se încadreze în unitățile noastre de curent alternativ de pe pereții noștri și să rămână ascunsă în interiorul ei. Placa nu trebuie să întrerupă funcționarea normală a comutatoarelor unității noastre de putere, adică ar trebui să pornească sau să oprească și cu comutatoare manuale. Și fără a fi spus, ar trebui să poată controla aceeași încărcare cu voce folosind asistentul Google și, de asemenea, să seteze un cronometru, astfel încât orice încărcare să poată activa sau dezactiva automat în timpul unei ore prestabilite a zilei.
Acest proiect este foarte asemănător cu mufa noastră inteligentă Wi-Fi ESP8266, dar aici, deoarece vom folosi ESP12, vom avea mai mulți pini GPIO care ne permit să controlăm simultan patru încărcări de curent alternativ. De asemenea, din moment ce am integrat Blynk și Google Assistant, proiectul devine interesant și practic de utilizat. Pentru acest proiect am construit plăci de circuite folosind serviciul de fabricație PCB PCBGOGO. În secțiunea ulterioară a articolului, am furnizat fișierul Gerber conceput pentru circuit și am explicat, de asemenea, procedura completă de comandare a PCB-urilor de la PCBGOGO.
Avertisment: Acest proiect implică lucrul cu tensiunea de rețea alternativă. Rețineți că trebuie să aveți mare precauție atunci când lucrați cu tensiuni de curent alternativ ridicate. Asigurați-vă că sunteți supravegheat de o persoană cu experiență dacă sunteți nou.
Diagrama circuitului pentru Asistentul Google controlat Home Automation
Schema completă de circuite pentru automatizarea casei poate fi găsită mai jos.
După cum puteți vedea, circuitul este foarte simplu, să începem explicația din modulul ESP12E Wi-Fi. De asemenea, puteți consulta videoclipul de mai jos pentru o explicație detaliată a proiectului. Modulul poate fi programat la fel ca plăcile de dezvoltare nodeMCU și reduce mult spațiu. În mod implicit, când este pornit, ESP12E va intra în modul de funcționare. Pentru a-l programa, trebuie să folosim butonul Reset și Flash. Adică pentru a pune ESP12 în modul de programare, apăsați și țineți apăsat atât butonul Reset, cât și butonul Flash, apoi eliberați butonul de resetare. Aceasta va porni ESP12E cu butonul bliț apăsat, eliberați acum butonul bliț și ESP12E va intra în modul de programare. După programare, trebuie să apăsați din nou butonul de reset pentru a porni ESP12E în modul de funcționare normală pentru a executa Programul încărcat. Pinii de programare Rx, Rx,și Masa sunt extinse pentru a vă putea conecta cu o placă FTDI sau un convertor USB la TTL. Asigurați-vă că conectați pinul Tx al ESP12 la pinul Rx al programatorului și viceversa.
Ceilalți pini de semnalizare I1 la I4 și R1 la R4 sunt utilizați pentru a conecta comutatoarele și releele. Pinii I1 la I4 reprezintă pinii de intrare. Toți acești pini acceptă rezistența de tragere internă, deci trebuie doar să conectăm comutatoarele de pe cutia de extensie la pinul de intrare printr-un rezistor de tragere, așa cum se arată mai jos.
În mod similar, pinii de ieșire ale releului R1 până la R4 sunt utilizați pentru a controla releele. Am folosit un circuit de șofer de releu standard cu diode BC547 și IN4007, așa cum se arată mai jos. Rețineți că releele ar trebui să fie declanșate cu 5V, dar pinii de ieșire ESP12E sunt doar 3,3V. Deci, este obligatoriu să utilizați un tranzistor pentru a conduce relele. De asemenea, am plasat un LED în calea de bază a tranzistorului, astfel încât ori de câte ori tranzistorul este declanșat, LED-ul se va aprinde și.
În cele din urmă, pentru a alimenta toate circuitele noastre, am folosit convertorul Hi-Link AC-DC pentru a converti 220V AC la 5V DC. Acest 5V DC este apoi convertit la 3,3V folosind un regulator de tensiune AMS117-3.3V. 5V este utilizat pentru a declanșa relee și 3.3V este utilizat pentru a alimenta modulul ESP21 Wi-Fi.
Configurarea aplicației Blynk
Am construit anterior multe proiecte Blynk, cum ar fi robotul Arduino controlat prin Wi-Fi, așa că nu vom intra în detaliile configurării aplicației blynk. Dar, ca să fie simplu, instalați aplicația, creați un nou proiect pentru NodeMCU și începeți să vă plasați widgeturile așa cum se arată mai jos.
Am folosit pinii virtuali de la V1 la V4 pentru a controla releul 1 la 4 pe proiectul nostru. Asigurați-vă că schimbați tipul de buton pentru a comuta. Opțiunea cu temporizator poate fi utilizată și pentru a declanșa automat pinii virtuali pentru timpul stabilit, chiar dacă telefonul este oprit. Am folosit un cronometru doar pentru pinul virtual V1 aici, de exemplu, dar îl puteți folosi pentru toți cei patru pini, dacă este necesar.
Asigurați-vă că obțineți valoarea token-ului blynk auth din pagina proiectului. Doar faceți clic pe pictograma piuliță (încercuită cu roșu în imaginea de mai sus) și copiați jetonul de autentificare folosind opțiunea Copiați toate și lipiți-l undeva în siguranță, vom avea nevoie când programăm placa Arduino.
Configurarea IFTTT cu Asistentul Google și Blynk pentru a citi șirul
Cel mai simplu mod de a folosi Asistentul Google pentru automatizarea casei este prin utilizarea IFTTT. De asemenea, am construit mai multe proiecte IFTTT anterior cu NodeMCU și Raspberry Pi. În acest proiect, vom folosi aplicația Blynk pentru a declanșa un webhook folosind asistentul Google. Este foarte asemănător cu proiectul nostru de automatizare a locuinței controlat prin voce și controlul prin voce cu radio FM. Cu excepția, aici vom folosi blynk cu IFTTT pentru a trimite șir, ceea ce îl face mult mai ușor și interesant.
Practic, vom folosi pinul virtual V5 și V6 pe blynk pentru a trimite comanda de declanșare. V5 va fi utilizat pentru comenzi de pornire și V6 va fi utilizat pentru comenzi de oprire. De exemplu, dacă spunem să pornim televizorul și Lamp. Comanda string aici „TV și Lamp” va fi trimisă la NodeMCU folosind un API. Sintaxa API este cea de mai jos.
http://188.166.206.43//update/V5?value=TV și Lamp
Acum tot ce trebuie să facem în IFTTT este să folosim Google Assistant ca IF și webhooks ca THAT, așa că ascultați această comandă și trimiteți informațiile către NodeMCU folosind API-ul menționat mai sus. Applet-ul activat este identic cu cel de mai jos.
Rețineți că trebuie să selectați spune o expresie cu opțiunea de ingredient text atunci când creați o rețetă pentru Asistentul Google. În mod similar, trebuie să repetați același lucru pentru pinul virtual V6 pentru a opri releele. Puteți verifica videoclipul din partea de jos a acestei pagini pentru informații detaliate.
Programarea Arduino pentru Blynk Home Automation
Codul Arduino complet pentru acest proiect poate fi găsit în partea de jos a acestei pagini. Explicația acestora este următoarea. Înainte de aceasta, asigurați-vă că puteți utiliza Blynk și Program NodeMCU din Arduino IDE. Dacă nu, urmați articolul de început cu ESP12. De asemenea, adăugați biblioteca blynk la Arduino IDE folosind managerul de bord.
Ca întotdeauna, începem codul nostru prin definirea pinilor de intrare și ieșire, aici intrarea va fi de la comutatoare și ieșirea va fi de la relee. Am definit numele pinilor pentru toate cele patru comutatoare ca sw și relee ca rel ca puteți vedea mai jos.
#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 etapa următoare, trebuie să introduceți câteva acreditări, cum ar fi tokenul blynk auth și numele de utilizator și parola pentru routerul Wi-Fi la care ar trebui să vă conectați nodeMCU. Jetonul de blink auth poate fi obținut din aplicația blynk. Vom afla mai multe despre asta în secțiunea de configurare a aplicației blynk.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // obțineți din aplicația blynk char ssid = "home_wifi"; char pass = "fakepass123";
Apoi, am dat definiția pentru o funcție numită read_switch_toggle () . În această funcție, vom compara starea curentă și starea anterioară a comutatoarelor noastre. Dacă comutatorul a fost pornit sau oprit, adică dacă comutatorul a fost comutat. Va fi o modificare a stării comutatorului, funcția va monitoriza această modificare și va returna numărul comutatorului. Dacă nu este detectată nicio modificare, va reveni la 0.
int read_switch_toggle () {int result = 0; // Notați toate valorile anterioare pentru (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Citiți starea curentă a comutatoarelor crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // comparați starea curentă și starea pvs pentru (int i = 0; i <= 3; i ++) {if (pvs_state! = crnt_state) {result = (i + 1); // dacă orice comutator este comutat, obținem numărul comutatorului ca rezultat de returnare; } else result = 0; // dacă nu există rezultat al modificării 0} rezultatul returnează; // returnează rezultatul}
Apoi, avem codul pentru aplicația blynk. Vom folosi pinul virtual V1 la V6 pentru a ne controla cutia de joncțiune inteligentă. Pinii V1 până la V4 vor fi folosiți pentru a controla releele de la 1 la 4, respectiv direct din aplicația blynk. Codul de mai jos arată ce se întâmplă când V1 este declanșat din aplicația blynk. Citim pur și simplu starea (HIGH sau LOW) și controlăm releul în consecință.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
În mod similar, pinii virtuali pot fi utilizați și pentru a citi un șir din aplicația blynk. Vom învăța cum să trimitem un șir de la asistentul Google către NodeMCU folosind IFTTT și asistentul Google mai târziu, dar pentru moment, să vedem cum codul NodeMCU citește acest șir și caută un anumit cuvânt cheie și declanșează releul în consecință.
În codul de mai jos, puteți vedea că atunci când pinul virtual V5 este declanșat, obținem șirul trecut de acesta într-o variabilă de șir numită ON_message . Apoi, folosind această variabilă șir și metoda inderOf, căutăm dacă sunt prezente cuvinte cheie precum „lampă”, „LED”, „muzică”, „TV”, dacă da, activăm încărcarea respectivă. Dacă este detectat cuvântul cheie „totul”, activăm totul. La fel se poate face și pentru ca V6 să oprească releele. Vom înțelege mai multe despre acest lucru când vom intra în secțiunea IFTTT.
BLYNK_WRITE (V5) {String ON_message = param.asStr (); Serial.println (ON_message); if (ON_message.indexOf ("lampă")> = 0) digitalWrite (rel1, HIGH); if (ON_message.indexOf ("LED")> = 0) digitalWrite (rel2, HIGH); if (ON_message.indexOf ("music")> = 0) digitalWrite (rel3, HIGH); if (ON_message.indexOf ("TV")> = 0) digitalWrite (rel4, HIGH); if (ON_message.indexOf ("everything")> = 0) {digitalWrite (rel1, HIGH); digitalWrite (rel2, HIGH); digitalWrite (rel3, HIGH); digitalWrite (rel4, HIGH); }}
În cele din urmă, în interiorul funcției de buclă, trebuie doar să verificăm dacă s-au schimbat poziția comutatorului. Dacă da, atunci folosim un caz de comutare așa cum se arată mai jos pentru a comuta poziția acelui releu.
switch (toggle_pin) {case 0: break; cazul 1: Serial.println ("Releu de comutare 1"); digitalWrite (rel1, relay_state); pauză; cazul 2: Serial.println ("Releu de comutare 2"); digitalWrite (rel2, relay_state); pauză; caz 3: Serial.println („Releu de comutare 3”); digitalWrite (rel3, relay_state); pauză; caz 4: Serial.println ("Releu de comutare 4"); digitalWrite (rel4, relay_state); pauză; }}
Fabricarea PCB folosind PCBGoGo
Acum înțelegem cum funcționează schemele, putem continua cu construirea PCB-ului pentru proiectul nostru de automatizare la domiciliu. Aspectul PCB pentru circuitul de mai sus este de asemenea disponibil pentru descărcare ca Gerber de pe link.
- Descărcați GERBER pentru automatizarea caselor controlate prin voce utilizând Google Assistant
Acum designul nostru este gata, este timpul să le fabricăm folosind fișierul Gerber. Pentru a realiza PCB-ul de la PCBGOGO este destul de ușor, pur și simplu urmați pașii de mai jos-
Pasul 1: intrați pe www.pcbgogo.com, înscrieți-vă dacă este prima dată. Apoi, în fila Prototip PCB, introduceți dimensiunile PCB-ului, numărul de straturi și numărul de PCB de care aveți nevoie. Presupunând că PCB este de 80cm × 80cm, puteți seta dimensiunile așa cum se arată mai jos.
Pasul 2: Continuați făcând clic pe butonul Cotați acum . Veți fi direcționat către o pagină unde să setați câțiva parametri suplimentari, dacă este necesar, cum ar fi materialul folosit la distanța dintre piste, etc. Dar, mai ales, valorile implicite vor funcționa bine. Singurul lucru pe care trebuie să-l luăm în considerare aici este prețul și timpul. După cum puteți vedea, timpul de construire este de numai 2-3 zile și costă doar 5 USD pentru PCB-ul nostru. Apoi puteți selecta o metodă de expediere preferată în funcție de cerința dvs.
Pasul 3: ultimul pas este să încărcați fișierul Gerber și să continuați plata. Pentru a vă asigura că procesul este ușor, PCBGOGO verifică dacă fișierul dvs. Gerber este valid înainte de a continua plata. În acest fel, puteți să vă asigurați că PCB-ul dvs. este prietenos cu fabricarea și vă va ajunge la fel de angajat.
Asamblarea PCB-ului
După ce a fost comandată placa, a ajuns la mine după câteva zile prin curierat într-o cutie bine ambalată bine etichetată și, ca întotdeauna, calitatea PCB-ului a fost minunată. PCB-ul primit de mine este prezentat mai jos. După cum vedeți, atât stratul superior, cât și cel inferior s-au dovedit așa cum era de așteptat.
Via-urile și tampoanele aveau toate dimensiunile potrivite. Mi-a luat aproximativ 15 minute să mă asamblu pe placa PCB pentru a obține un circuit de lucru. Placa asamblată este prezentată mai jos.
Conectarea plăcii cu unități de alimentare CA / plăci de extensie
Placa este proiectată pentru a fi fixată în interiorul prizelor de curent alternativ din casele noastre. Dar, de dragul acestui proiect, vom folosi o casetă de extensie. Dacă doriți o soluție mai permanentă, conectați-o în interiorul prizelor de curent alternativ, așa cum puteți vedea mai jos, lungimea PCB-ului este suficient de compactă pentru a fi plasată într-o priză de curent alternativ.
Asigurați-vă că respectați măsurile de siguranță în timp ce lucrați cu rețeaua de curent alternativ. Urmați schema de circuit de mai jos pentru a înțelege cum să vă conectați releele și comutatoarele la placa noastră PCB.
Diagrama de conexiune este oprită doar pentru un releu și un comutator, dar puteți doar să replicați același lucru și pentru celelalte trei. Odată ce conexiunile sunt terminate, placa dvs. ar trebui să arate astfel
Odată realizate conexiunile, asigurați-vă că le-ați fixat strâns cu borne cu șurub și folosiți și lipici fierbinte pentru siguranță suplimentară. Împachetați totul înapoi în cutie și ar trebui să fim pregătiți pentru testare. Puteți găsi funcționarea completă a acestui proiect în videoclipul de mai jos.
Sper că ți-a plăcut articolul și ai învățat ceva util. Dacă aveți întrebări, vă rugăm să le lăsați în secțiunea de comentarii de mai jos sau să folosiți forumurile noastre.