Sommario:

Switch a controllo vocale con Alexa e Arduino: 10 passaggi (con immagini)
Switch a controllo vocale con Alexa e Arduino: 10 passaggi (con immagini)

Video: Switch a controllo vocale con Alexa e Arduino: 10 passaggi (con immagini)

Video: Switch a controllo vocale con Alexa e Arduino: 10 passaggi (con immagini)
Video: PROGETTO INTEGRAZIONE ARDUINO NANO IOT E ALEXA. ACCENDIAMO UN LED USANDO IL COMANDO VOCALE DI ALEXA 2024, Novembre
Anonim
Interruttore a comando vocale utilizzando Alexa e Arduino
Interruttore a comando vocale utilizzando Alexa e Arduino

L'obiettivo principale di questo progetto è utilizzare il sensore di temperatura per controllare l'interruttore (relè) per accendere o spegnere il dispositivo.

Elenco dei materiali

  1. Modulo relè 12V == > $ 4,2
  2. Arduino uno == > $ 8
  3. Sensore di temperatura DHT11 == > $ 3
  4. Modulo ESP8266 == > $ 4,74
  5. Fotoaccoppiatore N26 == > $ 0,60
  6. Regolatore di tensione LM1117 == > $ 0,60
  7. Tagliere == > $ 2.2
  8. Ponticelli == > $ 2,5
  9. Pulsante == > $ 2,5

Il costo totale del progetto è di circa $ 30 dollari. Questo progetto è diviso in tre parti. Innanzitutto, usiamo heroku per creare un'app. In secondo luogo, costruiamo una competenza Amazon Alexa per implementare il nostro lavoro (parte più importante). Terzo, impostiamo il nostro hardware e lo programmiamo utilizzando Arduino IDE.

Passaggio 1: collegamento di Heroku con GitHub

Collegamento di Heroku con GitHub
Collegamento di Heroku con GitHub
Collegare Heroku con GitHub
Collegare Heroku con GitHub
Collegamento di Heroku con GitHub
Collegamento di Heroku con GitHub

Heroku è una piattaforma cloud come servizio (PaaS) che supporta diversi linguaggi di programmazione che viene utilizzata come modello di distribuzione di applicazioni web. Per prima cosa, vai al sito heroku crea un nuovo account o accedi lì. Il link è riportato di seguito

Sito web di Heroku

Iniziamo con la creazione di una nuova app. Ho assegnato il nome della mia app "iottenpswitch" quando distribuisci l'app, il collegamento viene generato.

Una volta creata l'app, vai su GitHub. GitHub/

Accedi lì o registrati se non hai un account. Una volta effettuato l'accesso, crea un nuovo repository. Dai il nome che vuoi scegliere e poi premi crea repository. Nella pagina successiva fai clic su LEGGIMI, in questa pagina fornisci la descrizione che desideri condividere con gli altri. Dopodiché fai clic su commit nuovo file. Quindi, fai clic sul pulsante di caricamento.

Ci sono due opzioni: trascina e rilascia la cartella o scegli il file. Scarica i file richiesti dal basso. Dopo aver selezionato i file, premi il pulsante di conferma delle modifiche. Apri l'app che hai creato su Heroku, quindi vai alla sezione di distribuzione. Successivamente, fai clic sul nome del repository GitHub. Give che hai creato sul lato GitHub. Nel mio caso è Smart-Relè. Copialo e incollalo qui. Una volta visualizzato il collegamento, fare clic su Connetti. Quindi, fai clic su deploy branch(manual). Dopo la distribuzione puoi vedere il collegamento nel registro di build o puoi vedere il collegamento nelle impostazioni. Abbiamo bisogno di questo collegamento in un secondo momento quando creeremo abilità Amazon.

Passaggio 2: Amazon

Amazon
Amazon
Amazon
Amazon
Amazon
Amazon

Ultime immagini di Alexa Skill

Sul sito Amazon Developer utilizziamo l'abilità di Amazon per controllare l'attivazione dell'interruttore impostando temperatura e umidità.

Vai al sito per sviluppatori Amazon. Il collegamento è riportato di seguito.

Sito Web per sviluppatori Amazon

  • Vai alla Console degli sviluppatori in alto a destra come mostrato nella figura i4
  • Vai su Alexa, quindi seleziona Alexa Skill Kit e quindi crea una nuova abilità facendo clic su Aggiungi nuova abilità.

Quando aggiungi una nuova abilità, vedrai la pagina delle informazioni sull'abilità.

1. Informazioni sulle abilità (come mostrato nell'immagine i7)

dobbiamo fornire tipo di abilità, lingua, nome, nome di invocazione.

Tipo di abilità ==> seleziona personalizzato

  • Nome ==> seleziona un nome qualsiasi.
  • Nome di invocazione ==> che usi durante la comunicazione con Alexa. Ad esempio;- Alexa, chiedi al sensore di attivare il grilletto dell'interruttore o Alexa, chiedi alla luce di accendersi qui i nomi di invocazione sono sensore e luce.
  • Lingua ==> inglese (India). Seleziona in base al tuo paese

fare clic su salva e poi su avanti

2. Modello di interazione

Qui, useremo il costruttore di abilità. Quindi, fai clic su Avvia Skill Builder. vedrai la pagina come mostrato nell'immagine i8.

Per prima cosa creiamo nuovi intenti. Fare clic su Aggiungi (sul lato sinistro) e dare il nome che si desidera ho usato "smartswitch"

  • Assegna il nome del tipo di slot "measurement_type" e i valori di slot "temperatura" e "umidità" come mostrato nell'immagine i9.

  • Dopodiché aggiungi il nome del tipo di slot "query" e i valori dello slot sono "cosa" e "è" come mostrato nell'immagine i10.
  • Dopodiché aggiungi il tipo di slot "switchstate" e i valori dello slot sono "on" e "off" come mostrato nell'immagine i11.
  • Aggiungi un altro tipo di slot "tempscale" e i valori di slot sono "fahrenheit" e "celcuis" come mostrato nell'immagine i12.
  • Dopodiché aggiungi un nuovo tipo di slot qui, usiamo il tipo di slot esistente per questo dobbiamo fare clic su usa lo slot esistente. Nello slot esistente cerca amazon.number e selezionalo e aggiungilo. Dopo averlo aggiunto lo vedrai nei tipi di slot come mostrato nell'immagine i13.

Quindi abbiamo finito con i tipi di slot che il tipo di slot totale che stiamo usando è 5. Ora, vai al passaggio successivo. Fai clic sull'intento che abbiamo creato, nel mio caso è smartswitch. Sul lato destro vedrai lo slot dell'intento come mostrato nell'immagine i14.

  • Crea un nuovo slot, assegnagli il nome "Switch_State" e mappalo su "switchstate" utilizzando il pulsante a discesa come mostrato nell'immagine i15.
  • Crea un nuovo slot, assegnagli il nome "Sensor_Values" e mappalo su "measurement_type" come mostrato nell'immagine i16.
  • Crea un nuovo slot, dagli il nome "query" e mappalo su "query" come mostrato nell'immagine i17.
  • Dopodiché crea il nuovo slot "tmp_scale" e mappalo su "tempscale" come mostrato nell'immagine i18.
  • Crea un nuovo slot "Numbers" e mappalo su "Amazon. Numbers" come mostrato nell'immagine i19.

Ora abbiamo finito con gli slot Intent. Stiamo utilizzando 5 slot di intenti. Dopodiché, passiamo a Sample enunciati come mostrato nell'immagine i20.

Aggiungi queste espressioni di esempio.

imposta il trigger dell'interruttore su {Numbers} percento {tmp_scale}

{query} è lo stato dell'interruttore

{Switch_State} interruttore trigger

imposta il trigger dell'interruttore su {Numbers} degree {tmp_scale}

gira l'interruttore {Switch_State}

{query} cambia {Switch_State}

{query} è l'attuale {Sensor_Values}

Dopo questo salva il modello e costruiscilo. Attendi che il modello venga costruito dopo di che fai clic su configurazione. Dopo la costruzione vedrai il messaggio come mostrato nell'immagine i21 e i22.

3. Configurazione

Seleziona HTTPS e aggiungi il collegamento che è stato generato durante la creazione dell'app heroku. Nel mio caso è https://iottenpswitch.herokuapp.com/. Dopo aver aggiunto il collegamento, fare clic su Avanti come mostrato nell'immagine i23.

4. Certificato SSLSelezionare la seconda opzione e fare clic su Avanti come mostrato nell'immagine i24.

abbiamo creato con successo la nostra abilità.

Passaggio 3: Arduino

Arduino
Arduino
Arduino
Arduino
Arduino
Arduino

Apri Arduino IDE. Quindi vai su File ==> Preferenze

In Gestione schede aggiuntive, copia e incolla l'URL e fai clic su OK come mostrato nell'immagine i26.

arduino.esp8266.com/versions/2.4.0/package_…

  • Apri Board Manager andando su Strumenti ==> Board ==> Board Manager.
  • Apri Boards Manager e cerca nodemcu come mostrato nell'immagine i27.
  • Dopodiché scarica la libreria ESP8266WiFi. Apri il gestore della libreria: Sketch ==> Includi libreria ==> Gestisci librerie.
  • Cerca la libreria ESP8266WiFi e installala.
  • Seleziona scheda ==> Modulo ESP8266 generico.
  • Prima di caricare il codice abbiamo bisogno di tre librerie.

Librerie richieste

Sposta queste librerie nella cartella delle librerie di Arduino

Devi cambiare tre cose nel codice SSID, PWD e il tuo link all'app heroku. Dopodiché, carica il codice. Per il modulo ESP è necessario premere il pulsante flash durante il caricamento del codice, quindi premere il pulsante di ripristino una volta e quindi rilasciare il pulsante flash. Dopo aver caricato il codice, apri il terminale. vedrai l'output.

Passaggio 4: descrizione del componente

Descrizione del componente
Descrizione del componente
Descrizione del componente
Descrizione del componente
Descrizione del componente
Descrizione del componente
Descrizione del componente
Descrizione del componente

1. Che cos'è un relè?

Il relè è un dispositivo elettromagnetico utilizzato per isolare elettricamente due circuiti e collegarli magneticamente. Sono dispositivi molto utili e consentono a un circuito di commutarne un altro mentre sono completamente separati. Vengono spesso utilizzati per interfacciare un circuito elettronico (che lavora a bassa tensione) ad un circuito elettrico che lavora ad altissima tensione. Ad esempio, un relè può creare un circuito batteria da 5 V CC per commutare un circuito di rete da 230 V CA.

Come funziona

Un interruttore a relè può essere diviso in due parti: ingresso e uscita. La sezione di ingresso ha una bobina che genera un campo magnetico quando viene applicata una piccola tensione da un circuito elettronico. Questa tensione è chiamata tensione di esercizio. I relè comunemente usati sono disponibili in diverse configurazioni di tensioni operative come 6V, 9V, 12V, 24V ecc. La sezione di uscita è costituita da contattori che si collegano o si scollegano meccanicamente. In un relè base ci sono tre contattori: normalmente aperto (NO), normalmente chiuso (NC) e comune (COM). In nessuno stato di ingresso, la COM è collegata a NC. Quando viene applicata la tensione di esercizio, la bobina del relè si eccita e il COM cambia il contatto in NO. Sono disponibili diverse configurazioni di relè come SPST, SPDT, DPDT ecc., che hanno un numero diverso di contatti di scambio. Utilizzando una corretta combinazione di contattori, il circuito elettrico può essere acceso e spento. Ottieni dettagli interni sulla struttura di un interruttore a relè.

Il terminale COM è il terminale comune. Se i terminali BOBINA sono alimentati con la tensione nominale, i terminali COM e NO hanno continuità. Se i terminali BOBINA non sono eccitati, i terminali COM e NO non hanno continuità.

Il terminale NC è il terminale Normalmente Chiuso. È il terminale che può essere alimentato anche se il relè non riceve alcuna o sufficiente tensione per funzionare.

Il terminale NO è il terminale Normalmente Aperto. È il terminale in cui si posiziona l'uscita che si desidera quando il relè riceve la sua tensione nominale. Se non c'è tensione ai terminali BOBINA o tensione insufficiente, l'uscita è aperta e non riceve tensione. Quando i terminali COIL ricevono la tensione nominale o leggermente inferiore, il terminale NO riceve una tensione sufficiente e può accendere il dispositivo sull'uscita.

2. Sensore di temperatura DHT

DHT11 è un sensore di umidità e temperatura, che genera un'uscita digitale calibrata. DHT11 può essere interfacciato con qualsiasi micro controller come Arduino, Raspberry Pi, ecc. e ottenere risultati istantanei. DHT11 è un sensore di umidità e temperatura a basso costo che offre elevata affidabilità e stabilità a lungo termine.

3. Descrizione completa di ESP8266

Il modulo WiFi ESP8266 è un SOC autonomo con stack di protocollo TCP/IP integrato che può fornire a qualsiasi microcontrollore l'accesso alla rete WiFi. L'ESP8266 è in grado di ospitare le funzioni di rete di un'applicazione da un'altra applicazione Ogni modulo ESP8266 viene pre-programmato con un comando AT.

L'ESP8266 supporta APSD per applicazioni VoIP e interfacce di coesistenza Bluetooth, contiene una RF autocalibrata che gli consente di funzionare in tutte le condizioni operative e non richiede parti RF esterne.

Caratteristiche

  • 802.11 b/g/n
  • Wi-Fi diretto (P2P),
  • soft-APStack di protocollo TCP/IP integrato
  • Switch TR integrato, balun, LNA, amplificatore di potenza e rete di adattamento
  • PLL integrati, regolatori, DCXO e unità di gestione dell'alimentazione
  • +19,5dBm di potenza in uscita in modalità 802.11b
  • Spegnimento corrente di dispersione di <10uA
  • 1 MB di memoria flash
  • La CPU integrata a 32 bit a bassa potenza può essere utilizzata come processore dell'applicazione
  • SDIO 1.1/2.0, SPI, UART
  • STBC, 1×1 MIMO, 2×1 MIMOA-MPDU e aggregazione A-MSDU e intervallo di guardia di 0,4 ms
  • Sveglia e trasmetti pacchetti in < 2 ms
  • Consumo energetico in standby di < 1,0 mW (DTIM3)

Pin Descrizione come mostrato nell'immagine i34.

Per collegare il modulo ESP con Arduino UNO abbiamo bisogno del regolatore di tensione Lm1117 3.3 o di qualsiasi regolatore perché Arduino non è in grado di fornire 3.3 v a ESP8266.

Nota: durante il caricamento del codice, premere il pulsante flash, quindi premere il pulsante di ripristino una volta e quindi rilasciare il pulsante flash come mostrato nell'immagine i29.

Per collegare il sensore e il relè DHT11 utilizziamo due pin GPIO del modulo ESP8266. Dopo aver caricato il codice è possibile disconnettere i pin RX, TX, GPIO0. Ho usato GPIO0 per il sensore DHT11 e GPIO2 per i relè. Il sensore DHT11 funziona bene con ESP8266 ma per i relè abbiamo bisogno di una cosa in più, ad esempio isolatore ottico o accoppiatore ottico. Vedi immagine i30, i31, i32 e i33.

Passaggio 5: connessioni

ESP8266 === > DHT11GPIO0 === > Pin di uscita

ESP8266 === > RelèGPIO2 ===> Ingresso

ARDUINO ===> ESP8266

Gnd ===> GndTX === > TX

RX === > RX

Pulsante di ripristino === > RST

Pulsante Flash === > GPIO0

Passaggio 6: controllare tutte le cose

Controllo di tutte le cose
Controllo di tutte le cose
Controllo di tutte le cose
Controllo di tutte le cose
Controllo di tutte le cose
Controllo di tutte le cose
Controllo di tutte le cose
Controllo di tutte le cose

Abbiamo creato con successo la nostra app, l'abilità e il nostro hardware è pronto. Quindi, è il momento di controllare.

Per questo il tuo ESP8266 è acceso perché il nostro server è in esecuzione su ESP8266. Qui non ho collegato alcun sensore a ESP8266, sto solo verificando se funziona o meno, ma puoi collegare il sensore, relè a ESP8266. Una volta connesso a Heroku, vedrai connesso. Per i test, vai su Amazon Skill che hai creato, quindi fai clic sulla pagina di test. Una volta verificato il suo funzionamento, collegherò il mio sensore a ESP8266. Puoi vedere i risultati come mostrato nelle immagini i35, i36, 37, 38, 39, 40.

Se lo usi senza connettere ESP8266 ottieni questo errore come mostrato nell'immagine i41.

Enunciato che puoi usare

imposta il trigger dell'interruttore su {Numbers} percento {tmp_scale}

es: imposta il grilletto dell'interruttore al 50 percento di umidità

{query} è lo stato dell'interruttore

ex-on/off è lo stato dell'interruttore

{Switch_State} interruttore trigger

grilletto interruttore ex-on/off

imposta il trigger dell'interruttore su {Numbers} degree {tmp_scale}

ex - imposta il grilletto dell'interruttore su 76 gradi fahrenheit

ex - impostare il grilletto dell'interruttore su 24 gradi Celsius

gira l'interruttore {Switch_State}

ex - accendi/spegni l'interruttore

Vedere l'immagine da i41 a i46 per i risultati.

Mentre parli con AlexaAlexa, chiedi ad arduino di attivare/disattivare il grilletto dell'interruttore

Alexa, chiedi ad arduino di impostare il trigger dell'interruttore su 24 gradi Celsius.

Alexa, chiedi ad arduino di impostare il trigger dell'interruttore al 50% di umidità

Alexa, chiedi ad arduino di accendere/spegnere l'interruttore

Passaggio 7: diagramma VUI (interfaccia utente vocale)

Diagramma VUI (interfaccia utente vocale)
Diagramma VUI (interfaccia utente vocale)

Passaggio 8: dimostrazione

Image
Image

1. Impostare il trigger per la temperatura e l'umidità.

2. Impostare il trigger su 20 gradi Celsius.

3. Impostare il trigger sull'80% di umidità.

Passaggio 9: schema

Consigliato: