Sommario:

Interruttore relè IOT a controllo vocale basato su Arduino (supportato da Google Home e Alexa): 11 passaggi
Interruttore relè IOT a controllo vocale basato su Arduino (supportato da Google Home e Alexa): 11 passaggi

Video: Interruttore relè IOT a controllo vocale basato su Arduino (supportato da Google Home e Alexa): 11 passaggi

Video: Interruttore relè IOT a controllo vocale basato su Arduino (supportato da Google Home e Alexa): 11 passaggi
Video: PROGETTO ESP8266: ESP-01 Modulo Relè con Google Home 2024, Giugno
Anonim
Interruttore relè IOT a controllo vocale basato su Arduino (supportato da Google Home e Alexa)
Interruttore relè IOT a controllo vocale basato su Arduino (supportato da Google Home e Alexa)

Questo progetto descrive come realizzare un interruttore relè IOT basato su Arduino e controllato dalla voce. Questo è un relè che puoi attivare e disattivare da remoto utilizzando un'app per iOS e Android, nonché collegarlo a IFTTT e controllarlo con la tua voce utilizzando anche Google Home e/o Alexa. Copriremo tutti i passaggi necessari per creare il dispositivo, connettere l'app e connetterti anche ai vari servizi IOT.

Forniture

  • Wemos D1 Mini Lite ESP8285 (pochi dollari su Amazon)
  • Modulo relè 5V per Arduino/Raspberry Pi
  • Transistor NPN 2N2222
  • Resistore da 47K ohm
  • Resistore da 1K ohm

Passaggio 1: costruisci il circuito

Costruisci il circuito
Costruisci il circuito
Costruisci il circuito
Costruisci il circuito
Costruisci il circuito
Costruisci il circuito

Il primo passo è cablare il circuito. Ho incluso uno schema e uno schema elettrico tradizionale, a seconda di cosa sei abituato. Ho realizzato il mio primo circuito su una breadboard di prototipazione e poi l'ho spostato su un PCB per una configurazione più permanente e l'ho ospitato in una scatola di progetto stampata in 3D.

Il relè è un relè H/L 5V optoisolato, il che significa che in primo luogo, il circuito di trigger è isolato otticamente dall'attivazione del relè stesso, il che rimuove qualsiasi potenziale problema con il feedback dal relè al microcontrollore Wemos. Una bella sicurezza da avere. In secondo luogo, è commutabile alto/basso, il che significa che può essere configurato, spostando il ponticello giallo che vedi nelle immagini, dall'attivazione quando il segnale è alto (+5V), o dall'attivazione quando il segnale è basso (0V). Lo stesso Wemos invia 3,3 V dai suoi pin digitali e stiamo usando D1 come sorgente di trigger, il che significa che dobbiamo amplificarlo leggermente, in modo da avvicinarci a un segnale digitale +5 V per attivare il relè. In alternativa è possibile utilizzare un relè da 3,3 V ed eliminare il componente dell'amplificatore a transistor nel circuito e passare direttamente da D1 al pin del segnale sul relè. Non avevo relè da 3,3 V, quindi stiamo usando un relè da 5 V più comune e il circuito dell'amplificatore.

Il DC+ e il DC- sul relè si collegano ai pin 5V e GND del Wemos, che fornisce la tensione necessaria per far funzionare il relè. Il relè è valutato da piccole tensioni fino alla tensione di linea, ma lo sto usando per controllare un'applicazione di cablaggio a bassa tensione. Se lo stai usando per controllare la tensione di linea, assicurati di sapere cosa stai facendo, di essere qualificato e di prendere le precauzioni appropriate. In caso contrario, non utilizzarlo per controllare le applicazioni con tensione di linea.

Il pin D1 sul Wemos si collega al resistore da 47K ohm che alimenta la base del transistor NPN. L'emettitore si collega a terra. Il collettore è collegato all'ingresso del segnale sul relè. Il relè è impostato per attivarsi su basso, quindi quando D1 sta emettendo un segnale, il segnale a 3,3 V viene amplificato a circa 5 V e il relè è aperto. Quando D1 diventa basso, il segnale al relè diventa basso e il relè si chiude e completa un circuito.

Ho dimenticato di scattare foto del mio circuito temporaneo sulla breadboard di prototipazione, ma sembrava esattamente come il diagramma di Fritzing sopra, se può essere utile. Ho incluso una serie di immagini del mio circuito permanente finale in modo da poter vedere come è cablato, nel caso avessi bisogno di approfondimenti o necessiti visibilità sui componenti specifici che sto utilizzando.

Passaggio 2: Programmazione di Wemos - Panoramica

Una delle cose che mi piacciono dei Wemos è che possono essere programmati proprio come un Arduino, usando lo stesso IDE. Ci sono alcuni passaggi qui però.

  1. Installa i driver Wemos sul computer può parlare con Wemos
  2. Aggiorna l'IDE Arduino in modo che la scheda Wemos sia disponibile
  3. Fai un rapido test "Blink" per assicurarti che tutto funzioni correttamente
  4. Preparati con Blynk (so che è fonte di confusione, ma in realtà è diverso dal "test di lampeggiamento")
  5. Ottieni un codice dell'applicazione da Blynk
  6. Aggiorna il codice Wemos/Arduino con le informazioni di Blynk
  7. Carica il codice nella tua configurazione Wemos.

Passaggio 3: Programmazione di Wemos - Installazione dei driver

Programmazione di Wemos - Installazione dei driver
Programmazione di Wemos - Installazione dei driver

Vai qui (questo link sembra cambiare periodicamente, cercherò di tenerlo aggiornato):

www.wemos.cc/en/latest/ch340_driver.html

E scarica il pacchetto driver corretto per il tuo sistema operativo. Quindi estrarre lo zip in una directory ed eseguire l'applicazione "SETUP" per installarlo.

Quando l'ho fatto per la prima volta, ho ricevuto uno strano errore sulla mancata installazione. Ho visto la nota di qualcun altro su questo e la loro soluzione, che ha funzionato per me. Quindi, se ricevi un errore, prova a utilizzare il pulsante "Disinstalla" e quindi utilizza nuovamente "Installa". Spero che questo risolva il problema come ha fatto per me.

Passaggio 4: Programmazione di Wemos - Aggiorna l'IDE di Arduino

Programmazione di Wemos - Aggiorna l'IDE di Arduino
Programmazione di Wemos - Aggiorna l'IDE di Arduino
Programmazione di Wemos - Aggiorna l'IDE di Arduino
Programmazione di Wemos - Aggiorna l'IDE di Arduino
Programmazione di Wemos - Aggiorna l'IDE di Arduino
Programmazione di Wemos - Aggiorna l'IDE di Arduino

Se non hai installato l'IDE Arduino, è un buon momento per farlo ora. Puoi scaricarlo da www.arduino.cc

Ecco un riferimento per ciò che faremo in questo passaggio.

wiki.wemos.cc/tutorials:get_started:get_st…

  1. Installiamo la nuova scheda in modo che venga visualizzata come opzione nell'IDE di Arduino. I passaggi 2 - 4 sono estratti dalla guida all'installazione nella seguente pagina github.

    github.com/esp8266/Arduino

  2. Avvia l'IDE Arduino e apri la finestra Preferenze.
  3. Immettere "https://arduino.esp8266.com/stable/package_esp8266com_index.json" nel campo URL aggiuntivi di Board Manager. Puoi aggiungere più URL, separandoli con virgole.
  4. Apri Boards Manager da Strumenti> Board> Boards Manager (in alto), cerca "esp8266" e installa la piattaforma esp8266 elencata.
  5. A questo punto vedrai le schede Wemos in Strumenti → Scheda: xxx Seleziona Wemos D1 Mini. Nel mio caso, come puoi vedere dall'immagine, il nome specifico era "LOLIN(WEMOS) D1 R2 & mini"
  6. Collega un cavo USB tra il computer e il Wemos
  7. Conferma che la "Porta" è ora attiva nel menu Strumenti e sembra corretta.

Passaggio 5: programmazione di Wemos - Test lampeggiamento

Programmazione del Wemos - Blink Test
Programmazione del Wemos - Blink Test

Prima di andare oltre, dobbiamo assicurarci di poter comunicare con la scheda Wemos e che tutto sia a posto. Il modo più semplice per farlo è collegare un cavo USB e provare a inviare un semplice programma a Wemos. Blink è l'esempio più semplice e mi ha risparmiato un sacco di problemi quando lavoro con nuove schede, che faccio sempre prima.

  1. Vai a: File > Esempi > ESP8266 > Blink e carica lo sketch del lampeggio per un dispositivo Wemos
  2. Compila e carica lo schizzo

Se il LED blu inizia a lampeggiare circa una volta al secondo, sei pronto per passare al passaggio successivo! In caso contrario, torna indietro e risolvi i problemi dei passaggi precedenti. Vedi se c'è un problema con i driver e il manager del consiglio di amministrazione. Ho avuto alcuni problemi con il pacchetto della scheda per ESP8266 e ho dovuto disinstallarlo completamente e reinstallarlo a causa di qualcosa di strano con le versioni che stava accadendo. Non arrenderti e le ricerche su Internet possono essere tue amiche!

Supponendo che tutto vada bene, vai al passaggio successivo.

Passaggio 6: programmazione di Wemos - Configurazione di Blynk

Programmazione di Wemos - Configurazione di Blynk
Programmazione di Wemos - Configurazione di Blynk
Programmazione di Wemos - Configurazione di Blynk
Programmazione di Wemos - Configurazione di Blynk
Programmazione di Wemos - Configurazione di Blynk
Programmazione di Wemos - Configurazione di Blynk

In questi passaggi successivi, dobbiamo creare un account con Blynk e ottenere un token da utilizzare per controllare il circuito che abbiamo creato.

  1. Scarica l'app e crea un account (è gratuito)
  2. Crea un nuovo progetto
  3. Seleziona Wemos D1 come hardware in Scegli dispositivo
  4. Assegna un nome al progetto e mantieni il tipo di connettore come WiFi
  5. Fare clic su Crea progetto
  6. A questo punto il token di autenticazione verrà inviato via email all'indirizzo email che hai utilizzato quando hai creato il tuo account Blynk. Salvalo per dopo, inseriremo i valori nello schizzo nel passaggio successivo.
  7. Quando arrivi alla schermata della tela bianca, scorri verso sinistra e otterrai il menu del widget. Seleziona "Pulsante" per aggiungere un "pulsante" al progetto
  8. Seleziona il pulsante e quindi configura il Pin facendo clic su di esso e selezionando "Digitale" e "D1" come pi greco e fai clic su "Ok"
  9. A questo punto dovrebbe essere tutto pronto. Per renderlo attivo dovresti selezionare l'icona del triangolo in alto a destra, ma non funzionerà ancora, finché non avremo caricato e configurato lo schizzo, che è il prossimo passo!

Passaggio 7: Programmazione di Wemos - Installazione della libreria Blynk

Per poter caricare uno schizzo basato su Blynk, dobbiamo installare la loro libreria. I dettagli possono essere trovati qui.

github.com/blynkkk/blynk-library/releases

Inoltre, per un po' di background, controlla il loro sito Web principale qui (https://blynk.io/en/getting-started)

All'inizio mi ha confuso, ma è molto più semplice di quanto sembri. Basta decomprimere il file nella directory di Arduino. Per me questo era in \user\Documents\Arduino. C'era già una cartella chiamata "biblioteche". Il file zip contiene una directory "libreria" e una directory "strumenti". Quando lo decomprimi nella directory Arduino, aggiunge il suo contenuto alle librerie e crea strumenti se non esiste già.

Passaggio 8: programmazione di Wemos - lo schizzo

Abbiamo quasi finito a questo punto. Lo schizzo è piuttosto semplice, è direttamente da Blynk e collega essenzialmente il servizio Blynk e la scheda. Puoi usare il loro builder qui:

examples.blynk.cc/?board=WeMos%20D1&shield=ESP8266%20WiFi&example=Widgets%2FTerminal

Oppure puoi usare questo esempio che dovrebbe funzionare per te. Assicurati solo di sostituire i valori per il token di autenticazione e le tue credenziali per la tua rete wifi.

/*************************************************************

Scarica l'ultima libreria Blynk qui: https://github.com/blynkkk/blynk-library/releases/latest Blynk è una piattaforma con app iOS e Android per controllare Arduino, Raspberry Pi e simili su Internet. Puoi facilmente creare interfacce grafiche per tutti i tuoi progetti semplicemente trascinando e rilasciando i widget. Download, documenti, tutorial: https://www.blynk.cc Generatore di schizzi: https://examples.blynk.cc Comunità Blynk: https://community.blynk.cc Seguici: https://www.fb. com/blynkapp La libreria Blynk è concessa in licenza con licenza MIT Questo codice di esempio è di dominio pubblico. ************************************************** *********** È possibile inviare/ricevere qualsiasi dato utilizzando l'oggetto WidgetTerminal. Configurazione del progetto dell'app: widget del terminale collegato a Virtual Pin V1 **************************************** *********************/ /* Commenta questo per disabilitare le stampe e risparmiare spazio */ #define BLYNK_PRINT Serial #include #include // Dovresti ottenere Auth Token nell'app Blynk. // Vai alle impostazioni del progetto (icona a forma di dado). char auth = "YourAuthToken"; // Le tue credenziali WiFi. // Imposta la password su "" per le reti aperte. char ssid = "NomeRete"; char pass = "Password"; // Collega il terminale seriale virtuale al terminale Virtual Pin V1 WidgetTerminal(V1); // Puoi inviare comandi da Terminale al tuo hardware. Basta usare // lo stesso Pin virtuale del Widget terminale BLYNK_WRITE(V1) { // se digiti "Marco" nel Widget terminale - risponderà: "Polo:" if (String("Marco") == param.asStr ()) { terminal.println("Hai detto: 'Marco'"); terminal.println("Ho detto: 'Polo'"); } else { // Rimandalo terminal.print("Hai detto:"); terminal.write(param.getBuffer(), param.getLength()); terminale.println(); } // Assicurati che tutto sia inviato terminal.flush(); } void setup() { // Console di debug Serial.begin(9600); Blynk.begin(auth, ssid, pass); // Puoi anche specificare il server: //Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 80); //Blynk.begin(auth, ssid, pass, IPAddress(192, 168, 1, 100), 8080); // Questo stamperà la versione del software Blynk sul Terminal Widget quando // il tuo hardware viene connesso a Blynk Server terminal.println(F("Blynk v" BLYNK_VERSION ": Dispositivo avviato")); terminal.println(F("-------------")); terminal.println(F("Digita 'Marco' e ottieni una risposta, oppure digita")); terminal.println(F("qualsiasi altra cosa e stampala di nuovo.")); terminale.flush(); } ciclo vuoto() { Blynk.run(); }

Passaggio 9: programmazione di Wemos - Passaggio finale

Image
Image

Una volta caricato lo schizzo, compila e carica lo schizzo e dovresti essere pronto per testare la tua configurazione!

Apri l'app Blynk, fai clic sul triangolo nell'angolo in alto a destra per il tuo progetto Wemos

Quindi fare clic sul pulsante! Dovresti sentire il clic del relè e i LED di stato sulla scheda del relè indicano che il relè ha cambiato stato.

Ora puoi collegare il relè a qualsiasi applicazione a bassa tensione che richiede un semplice interruttore e controllarlo dalla tua app Blynk. L'ultima cosa che dobbiamo fare è collegare IFTTT e utilizzare Google o Alexa per controllare il sistema Blynk in modo da non doverlo fare dalla nostra app Blynk.

Passaggio 10: controllo di Blynk con IFTTT e Google Home o Alexa

Suppongo a questo punto che tu abbia una certa familiarità con IFTTT. In caso contrario, ci sono alcuni tutorial eccellenti là fuori che ti aiuteranno a imparare come usare e sfruttare IFTTT. È molto potente e qualcosa che vorrai imparare se non hai già familiarità.

  1. Crea una nuova applet in IFTTT
  2. Seleziona Assistente Google come "Se questo" e usa una "Frase semplice" come trigger. Per me, poiché questo stava per accendere o spegnere il mio camino, la mia frase era "accendi il camino"
  3. Per la parte "Allora quella", cerca e usa Webhooks
  4. Seleziona "Fai una richiesta web"
  5. Per l'URL che vorrai utilizzare:

    "https://blynk-cloud.com/XXXXYYYYZZZZZ/update/d5?value=1"

  6. Imposta il metodo su GET, il tipo di contenuto su Urlencoded e puoi lasciare il BODY vuoto e quindi salvare

Attendi qualche minuto e poi vai avanti e prova la tua frase con il tuo dispositivo Google Home. Ho notato che ci vogliono circa due minuti per essere pronto.

NOTA: un'altra cosa a cui prestare attenzione qui. Nota che sto usando "d5" nella mia chiamata API, ma mi sono connesso al pin D1 sulla scheda. Mi ci è voluto circa un giorno per capire che la numerazione dei pin GPIO e la numerazione serigrafata sulla scheda non sono la stessa cosa. Dopo aver modificato i valori con chiamate URL dirette e testato le tensioni su diversi pin con un voltmetro, ho potuto notare che una chiamata a d1 tramite l'API ha modificato la tensione, ma non a D1 sulla scheda. d5/GPIO 5 corrispondeva effettivamente a D1 sulla scheda. Una volta che ho fatto quella regolazione, tutto ha funzionato magnificamente!

Collegare Alexa è identico a Google Home, utilizzando invece il servizio Alexa su IFTTT.

Passaggio 11: conclusione

A questo punto, dovresti avere un relè IOT a comando vocale funzionante che utilizza Wemos D1 mini lite. Buon divertimento e buona fortuna!

Ancora una volta, l'elettricità è pericolosa, quindi per favore prendi le dovute precauzioni e se non sei qualificato, per favore non farlo.

Consigliato: