- Schema del circuito per l'automazione domestica controllata da Google Assistant
- Configurazione dell'applicazione Blynk
- Configurazione di IFTTT con Google Assistant e Blynk per leggere la stringa
- Programmazione di Arduino per Blynk Home Automation
- Fabbricazione di PCB utilizzando PCBGoGo
- Assemblaggio del PCB
- Collegamento della scheda con unità di alimentazione CA / schede di espansione
Con il progresso degli assistenti virtuali come Google Assistant e Alexa, le applicazioni domotiche e vocali stanno diventando normali. Ora, noi stessi abbiamo costruito molti progetti di automazione domestica, dalle semplici luci automatiche per scale all'automazione domestica controllata dal web basata su IoT utilizzando Raspberry Pi. Ma questo progetto qui è diverso, l'idea qui è quella di creare un pratico quadro domotico che possa inserirsi nelle nostre unità di alimentazione AC sulle nostre pareti e rimanere nascosto al suo interno. La scheda non deve interrompere il normale funzionamento degli interruttori della nostra centralina, cioè devono accendersi o spegnersi anche con interruttori manuali. E senza dirlo, dovrebbe anche essere in grado di controllare lo stesso carico con la voce utilizzando l'assistente Google e anche impostare un timer in modo che qualsiasi carico possa accendersi o spegnersi automaticamente durante un orario prestabilito della giornata.
Questo progetto è molto simile alla nostra spina ESP8266 Smart Wi-Fi, ma qui poiché utilizzeremo ESP12, avremo più pin GPIO che ci consentiranno di controllare quattro carichi CA contemporaneamente. Inoltre, poiché abbiamo integrato Blynk e Google Assistant, il progetto diventa interessante e pratico da usare. Per questo progetto abbiamo costruito i circuiti stampati utilizzando il servizio di produzione PCB PCBGOGO. Nella sezione successiva dell'articolo abbiamo fornito il file Gerber progettato per il circuito e spiegato anche la procedura completa per ordinare i PCB da PCBGOGO.
Avvertenza: questo progetto prevede di lavorare con la tensione di rete CA. Tenere presente che è necessario prestare la massima attenzione quando si lavora con tensioni CA elevate. Assicurati di essere supervisionato da una persona esperta se sei nuovo.
Schema del circuito per l'automazione domestica controllata da Google Assistant
Di seguito è riportato lo schema elettrico completo per la domotica.
Come puoi vedere, il circuito è molto semplice, iniziamo la spiegazione dal modulo Wi-Fi ESP12E. Puoi anche guardare il video qui sotto per una spiegazione dettagliata del progetto. Il modulo può essere programmato proprio come le schede di sviluppo nodeMCU e riduce molto spazio. Per impostazione predefinita, all'accensione, ESP12E entrerà in modalità di funzionamento. Per programmarlo, dobbiamo usare i pulsanti Reset e Flash. Vale a dire mettere l'ESP12 in modalità di programmazione, premere e tenere premuti i pulsanti Reset e Flash, quindi rilasciare il pulsante Reset. Questo avvierà ESP12E con il pulsante del flash premuto, ora rilascia il pulsante del flash e ESP12E entrerà in modalità di programmazione. Dopo la programmazione, è necessario premere nuovamente il pulsante di ripristino per avviare ESP12E in modalità di funzionamento normale per eseguire il programma caricato. I pin di programmazione Rx, Rx,e Ground sono estesi per essere in grado di connettersi con una scheda FTDI o un convertitore da USB a TTL. Assicurarsi di collegare il pin Tx di ESP12 al pin Rx del programmatore e viceversa.
Gli altri pin della bandierina da I1 a I4 e da R1 a R4 vengono utilizzati per collegare interruttori e relè. I pin da I1 a I4 stanno per pin di ingresso. Tutti questi pin supportano una resistenza pull-up interna, quindi dobbiamo solo collegare gli interruttori sulla scatola di espansione al nostro pin di ingresso tramite una resistenza pull-down come mostrato di seguito.
Allo stesso modo, i pin di uscita del relè da R1 a R4 vengono utilizzati per controllare i relè. Abbiamo utilizzato un circuito di pilotaggio relè standard con BC547 e diodo IN4007 come mostrato di seguito. Si noti che i relè dovrebbero essere attivati con 5 V ma i pin di uscita ESP12E sono solo 3,3 V. Quindi, è obbligatorio utilizzare un transistor per pilotare i relè. Abbiamo anche posizionato un LED nel percorso di base del transistor in modo che ogni volta che il transistor viene attivato, anche il LED si accenderà.
Infine, per alimentare tutti i nostri circuiti, abbiamo utilizzato il convertitore Hi-Link AC-DC per convertire i nostri 220V AC in 5V DC. Questo 5 V CC viene quindi convertito in 3,3 V utilizzando un regolatore di tensione AMS117-3,3 V. I 5 V vengono utilizzati per attivare i relè e 3,3 V vengono utilizzati per alimentare il modulo Wi-Fi ESP21.
Configurazione dell'applicazione Blynk
Abbiamo già realizzato molti progetti Blynk come il robot Arduino controllato tramite Wi-Fi, quindi non entreremo nei dettagli della configurazione dell'applicazione blynk. Ma per semplificare, installa l'applicazione, crea un nuovo progetto per NodeMCU e inizia a posizionare i tuoi widget come mostrato di seguito.
Ho usato i pin virtuali da V1 a V4 per controllare i relè da 1 a 4 sul nostro progetto. Assicurati di cambiare il tipo di pulsante da cambiare. L'opzione timer può anche essere utilizzata per attivare automaticamente i pin virtuali per il tempo impostato, anche se il telefono è spento. Ho usato un timer solo per il pin virtuale V1 qui, ad esempio, ma puoi usarlo per tutti e quattro i pin se necessario.
Assicurati di ottenere il valore del token di autenticazione blynk dalla pagina del progetto. Basta fare clic sull'icona del dado (cerchiata in rosso nell'immagine sopra) e copiare il token di autenticazione utilizzando l'opzione copia tutto e incollarlo in un luogo sicuro, avremo bisogno durante la programmazione della scheda Arduino.
Configurazione di IFTTT con Google Assistant e Blynk per leggere la stringa
Il modo più semplice per utilizzare l'Assistente Google per la domotica è utilizzare IFTTT. Abbiamo anche costruito molti progetti IFTTT in precedenza con NodeMCU e Raspberry Pi. In questo progetto, utilizzeremo l' app Blynk per attivare un webhook utilizzando l'Assistente Google. È molto simile al nostro progetto di automazione domestica a comando vocale e radio FM a comando vocale. Tranne che qui useremo blynk con IFTTT per inviare una stringa che lo rende molto più semplice e interessante.
Fondamentalmente, utilizzeremo i pin virtuali V5 e V6 su blynk per inviare il comando di attivazione. V5 verrà utilizzato per i comandi di accensione e V6 verrà utilizzato per i comandi di spegnimento. Ad esempio, se diciamo accendi TV e lampada. La stringa di comando qui "TV and Lamp" verrà inviata a NodeMCU utilizzando un'API. La sintassi dell'API è la seguente.
http://188.166.206.43//update/V5?value=TV e lampada
Ora tutto ciò che dobbiamo fare in IFTTT è utilizzare l'assistente Google come IF e webhook come QUESTO, quindi ascolta questo comando e invia le informazioni a NodeMCU utilizzando l'API sopra menzionata. Di seguito è mostrata la forma dell'applet di accensione.
Tieni presente che devi selezionare pronuncia una frase con l' opzione ingrediente di testo quando crei una ricetta per l'Assistente Google. Allo stesso modo, devi ripetere lo stesso per il pin virtuale V6 per disattivare i relè. Puoi controllare il video in fondo a questa pagina per informazioni dettagliate.
Programmazione di Arduino per Blynk Home Automation
Il codice Arduino completo per questo progetto può essere trovato in fondo a questa pagina. La spiegazione dello stesso è la seguente. Prima di ciò assicurati di poter utilizzare Blynk e Program NodeMCU da Arduino IDE. In caso contrario, segui l'articolo su come iniziare con ESP12. Inoltre, aggiungi la libreria blynk all'IDE di Arduino utilizzando il gestore della scheda.
Come sempre, iniziamo il nostro codice definendo i pin di input e output, qui l'ingresso sarà dagli interruttori e l'uscita dai relè. Abbiamo definito i nomi dei pin per tutti e quattro gli interruttori come sw e relè come rel come puoi vedere di seguito.
#define sw1 13 #define sw2 12 #define sw3 14 #define sw4 16 #define rel1 4 #define rel2 5 #define rel3 9 #define rel4 10
Nella fase successiva, devi inserire alcune credenziali come il token di autenticazione blynk e il nome utente e la password per il router Wi-Fi a cui il tuo nodeMCU dovrebbe connettersi. Il token di autenticazione blink può essere ottenuto dall'applicazione blynk. Impareremo di più a riguardo nella sezione relativa alla configurazione dell'applicazione blynk.
char auth = "Fh3tm0ZSrXQcROYl_lIYwOIuVu-E"; // ottenere dall'applicazione blynk char ssid = "home_wifi"; char pass = "fakepass123";
Successivamente, abbiamo fornito la definizione di una funzione chiamata read_switch_toggle () . In questa funzione, confronteremo lo stato corrente e lo stato precedente dei nostri interruttori. Se l'interruttore è stato attivato o disattivato, ovvero se l'interruttore è stato disattivato. Ci sarà un cambiamento nello stato dell'interruttore, la funzione monitorerà questo cambiamento e restituirà il numero dell'interruttore. Se non viene rilevata alcuna modifica, restituirà 0.
int read_switch_toggle () {int risultato = 0; // Annota tutti i valori precedenti per (int i = 0; i <= 3; i ++) pvs_state = crnt_state; // Legge lo stato corrente degli switch crnt_state = digitalRead (sw1); crnt_state = digitalRead (sw2); crnt_state = digitalRead (sw3); crnt_state = digitalRead (sw4); // confronta lo stato corrente e pvs per (int i = 0; i <= 3; i ++) {if (pvs_state! = crnt_state) {result = (i + 1); // se uno qualsiasi degli switch è attivato, otteniamo il numero dello switch come risultato restituito; } altro risultato = 0; // if no change result 0} restituisce il risultato; // restituisci il risultato}
Successivamente, abbiamo il codice per l'applicazione blynk. Useremo il pin virtuale da V1 a V6 per controllare la nostra scatola di giunzione intelligente. I pin da V1 a V4 verranno utilizzati per controllare i relè da 1 a 4 rispettivamente direttamente dall'applicazione blynk. Il codice seguente mostra cosa succede quando V1 viene attivato dall'applicazione blynk. Leggiamo semplicemente lo stato (ALTO o BASSO) e controlliamo il relè di conseguenza.
BLYNK_WRITE (V1) {digitalWrite (rel1, param.asInt ()); Serial.println ("V1"); }
Allo stesso modo, i pin virtuali possono essere utilizzati anche per leggere una stringa dall'applicazione blynk. Impareremo come inviare una stringa da Google Assistant a NodeMCU utilizzando IFTTT e Google Assistant in seguito, ma per ora vediamo come il codice NodeMCU legge questa stringa e cerca una particolare parola chiave e attiva il relay di conseguenza.
Nel codice seguente, puoi vedere che quando viene attivato il pin virtuale V5, otteniamo la stringa passata in una variabile di stringa chiamata ON_message . Quindi utilizzando questa variabile di stringa e il metodo inderOf, cerchiamo se sono presenti parole chiave come "lampada", "LED", "musica", "TV", se sì, attiviamo quel particolare carico. Se viene rilevata la parola chiave "tutto", attiviamo tutto. Lo stesso può essere fatto anche per V6 per disattivare i relè. Ne capiremo di più quando entreremo nella sezione 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); }}
Infine, all'interno della funzione loop, dobbiamo solo controllare se alcuni pulsanti sono cambiati posizione. Se sì, allora usiamo una custodia come mostrato di seguito per cambiare la posizione di quel particolare relè.
switch (toggle_pin) {case 0: break; caso 1: Serial.println ("Commutazione relè 1"); digitalWrite (rel1, relay_state); rompere; caso 2: Serial.println ("Commutazione relè 2"); digitalWrite (rel2, relay_state); rompere; caso 3: Serial.println ("Commutazione relè 3"); digitalWrite (rel3, relay_state); rompere; caso 4: Serial.println ("Commutazione relè 4"); digitalWrite (rel4, relay_state); rompere; }}
Fabbricazione di PCB utilizzando PCBGoGo
Ora che abbiamo capito come funzionano gli schemi, possiamo procedere con la costruzione del PCB per il nostro progetto di automazione domestica. Il layout PCB per il circuito sopra è anche disponibile per il download come Gerber dal link.
- Scarica GERBER per l'automazione domestica a comando vocale utilizzando l'Assistente Google
Ora il nostro design è pronto, è tempo di fabbricarli utilizzando il file Gerber. Per ottenere il PCB fatto da PCBGOGO è abbastanza semplice, segui semplicemente i passaggi seguenti:
Passaggio 1: accedi a www.pcbgogo.com, registrati se è la prima volta. Quindi nella scheda Prototipo PCB, inserisci le dimensioni del tuo PCB, il numero di strati e il numero di PCB richiesto. Supponendo che il PCB sia 80 cm × 80 cm, è possibile impostare le dimensioni come mostrato di seguito.
Passaggio 2: procedi facendo clic sul pulsante Cita ora . Verrai indirizzato a una pagina dove impostare alcuni parametri aggiuntivi, se necessario, come il materiale utilizzato per la spaziatura delle tracce, ecc. L'unica cosa che dobbiamo considerare qui è il prezzo e il tempo. Come puoi vedere, il tempo di costruzione è di soli 2-3 giorni e costa solo $ 5 per il nostro PCB. È quindi possibile selezionare un metodo di spedizione preferito in base alle proprie esigenze.
Passaggio 3: il passaggio finale è caricare il file Gerber e procedere con il pagamento. Per assicurarsi che il processo sia fluido, PCBGOGO verifica se il tuo file Gerber è valido prima di procedere con il pagamento. In questo modo, puoi essere certo che il tuo PCB è facile da fabbricare e ti raggiungerà come impegnato.
Assemblaggio del PCB
Dopo che la scheda è stata ordinata, mi è arrivata dopo alcuni giorni tramite corriere in una scatola ben imballata ben etichettata e, come sempre, la qualità del PCB era eccezionale. Il PCB che è stato ricevuto da me è mostrato di seguito. Come vedi, sia lo strato superiore che quello inferiore sono risultati come previsto.
Le vie e le piazzole erano tutte delle giuste dimensioni. Mi ci sono voluti circa 15 minuti per il montaggio sulla scheda PCB per ottenere un circuito funzionante. La scheda assemblata è mostrata di seguito.
Collegamento della scheda con unità di alimentazione CA / schede di espansione
La scheda è progettata per essere fissata all'interno delle prese di corrente AC nelle nostre case. Ma per il bene di questo progetto, utilizzeremo una scatola di estensione. Se desideri una soluzione più permanente, collegala all'interno delle prese di alimentazione CA, come puoi vedere sotto la lunghezza del PCB è abbastanza compatta da essere collocata all'interno di una presa di alimentazione CA.
Assicurarsi di seguire le precauzioni di sicurezza mentre si lavora con la rete CA. Segui lo schema del circuito seguente per capire come collegare i tuoi relè e interruttori alla nostra scheda PCB.
Lo schema di collegamento è inattivo solo per un relè e un interruttore, ma è possibile replicare lo stesso anche per i restanti tre. Una volta terminate le connessioni, la tua scheda dovrebbe assomigliare a questa
Una volta effettuati i collegamenti, assicurarsi di averli fissati saldamente con terminali a vite e utilizzare anche colla a caldo per una maggiore sicurezza. Riponi tutto nella scatola e dovremmo essere pronti per il test. Potete trovare il funzionamento completo di questo progetto nel video qui sotto.
Spero che l'articolo ti sia piaciuto e che abbia imparato qualcosa di utile. In caso di domande, lasciarle nella sezione commenti qui sotto o utilizzare i nostri forum.