- Prerequisiti:
- Concetto di lavoro:
- Programma IDE Arduino per ESP8266:
- Schema del circuito e hardware:
- Port Forwarding del tuo IP ESP8266:
- Installazione dell'applicazione Moni Android:
- Creazione di applet utilizzando il servizio IFTTT:
- Collaudo del progetto:
Benvenuto in un altro entusiasmante progetto in cui costruiremo un sistema di automazione domestica a controllo vocale utilizzando il modulo Wi-Fi ESP8266, dove puoi controllare i tuoi elettrodomestici AC utilizzando la tua voce tramite un'app Android da qualsiasi parte del mondo. Sì, il tuo sogno di accendere o spegnere i tuoi carichi (Luce / Ventilatori) semplicemente utilizzando un comando vocale si avvererà alla fine di questo progetto. Questo progetto è la variazione del nostro precedente progetto Smart Junction Box for Home Automation in cui abbiamo controllato gli elettrodomestici utilizzando Webserver sulla rete.
Questo progetto di automazione domestica con controllo vocale basato su IOT è semplicissimo da costruire e non ti costa molto poiché non richiede l'acquisto di costosi moduli vocali. L'intero progetto mi ha richiesto circa 500 INR (8 USD) per realizzarlo. Anche questo è un progetto indipendente dal microcontrollore, il che significa che non è necessario alcun MCU / MP come Arduino o Raspberry pi. L'intero progetto gira sul modulo ESP8266. Ulteriori informazioni su ESP8266 qui. Quindi, iniziamo a parlare…
In precedenza abbiamo coperto molti tipi di automazioni domestiche utilizzando diverse tecnologie come:
- Domotica basata su DTMF
- Domotica basata su GSM con Arduino
- Domotica controllata da PC utilizzando Arduino
- Automazione domestica controllata tramite Bluetooth utilizzando 8051
- Automazione domestica telecomandata IR utilizzando Arduino
- progetto di automazione domestica utilizzando MATLAB e Arduino
- LED telecomandati RF utilizzando Raspberry Pi
- Automazione domestica controllata da smartphone utilizzando Arduino
Prerequisiti:
Questo progetto è una continuazione del nostro precedente progetto Smart Junction Box for Home Automation che utilizza ESP8266, quindi la maggior parte della parte hardware è già stata trattata in quel tutorial. Si prega di leggerlo prima di procedere con questo poiché salterò le informazioni trattate in quel tutorial. Per dare un piccolo riassunto del nostro progetto precedente, abbiamo modificato una scatola di giunzione (scheda di espansione) in quel tutorial che potrebbe console una scheda Perf composta da due relè e il modulo ESP8266. I due relè (carichi AC) possono essere commutati utilizzando una pagina web creata dall'ESP8266 (agendo come un web server). In questo tutorial aggiungerò solo alcune funzionalità in modo che possiamo anche controllare i carichi AC utilizzando il comando vocale tramite Smart Phone.Non tratteremo alcuna parte dell'hardware in questo tutorial, l'hardware e il codice rimarranno gli stessi del tutorial precedente.
Anche sapere come usare www.IFTTT.com ti darà un vantaggio in questo progetto. Se non hai familiarità con IFTTT, non preoccuparti, spiegherò come usarlo per questo particolare tutorial in modo che tu possa farlo funzionare.
Concetto di lavoro:
Presumo che tu abbia letto il tutorial precedente, in quel caso ora dovresti sapere come costruire quella scatola di giunzione e come attivare / disattivare i carichi in remoto dal tuo browser web. Per rendere ciò possibile, abbiamo reso pubblicamente disponibile il nostro indirizzo IP assegnato a ESP8266. Questo può essere fatto con la "tecnica di port forwarding". Quindi installa un'applicazione mobile chiamata "Moni" sul tuo dispositivo mobile Android / IPhone. Questa applicazione riconoscerà il nostro discorso e comunicherà le informazioni alle applet IFTT che a loro volta controlleranno i carichi tramite gli hook di Maker Web.
Potrebbe sembrare un po 'noioso, ma tutte queste cose sono state spiegate chiaramente in questo tutorial e credimi con pochi clic è possibile fare tutto quanto sopra. Questo tutorial ti aiuterà nel miglior modo possibile con l'ausilio di Immagini e Video. Alla fine di questo tutorial, sarai in grado di accendere o spegnere i tuoi elettrodomestici attraverso la tua voce da qualsiasi parte del mondo. Controlla il codice completo e il video dimostrativo alla fine del tutorial.
Controlla anche le luci a comando vocale utilizzando Raspberry Pi e la digitazione vocale su LCD 16x2.
Programma IDE Arduino per ESP8266:
Proprio come nel progetto precedente, programmeremo il nostro modulo ESP8266 con l'aiuto dell'IDE di Arduino. C'è una leggera modifica apportata al programma. Questa modifica viene apportata in modo che ESP8266 si connetta a un indirizzo IP costante ogni volta che stabilisce una connessione con il router. Il programma è esattamente lo stesso del codice precedente ad eccezione di queste quattro righe
// Ottieni un IP costante ogni volta IPAddress ip (192, 168, 0, 104); // Questo dovrebbe essere l'IP del gateway IPAddress del mio modulo ESP (192, 168, 0, 1); // imposta il gateway in modo che corrisponda alla tua rete La maggior parte dei gateway sarà la stessa per impostazione predefinita Serial.print (F ("Setting static ip to:")); Serial.println (ip); IPAddress subnet (255, 255, 255, 0); // imposta la subnet mask in modo che corrisponda alla tua rete WiFi.config (ip, gateway, subnet);
Qui, al posto di IPAddress ip (192, 168, 0, 104); inserire l'indirizzo IP desiderato. In questo caso il mio ESP sarà sempre connesso a 192.168.0.104 e potrò semplicemente accedervi utilizzando questo IP nel mio browser. Il codice completo fornito alla fine di questo tutorial.
Schema del circuito e hardware:
Gli schemi e l'hardware per questo elettrodomestico a comando vocale basato sull'IoT sono gli stessi del nostro precedente progetto Smart Junction e ho spiegato lo schema in modo così gentile da esaminarlo. Qui puoi vedere lo schema completo per riferimento:
Port Forwarding del tuo IP ESP8266:
Il primo passo è abilitare il port forwarding nel tuo router (modem) in modo da poter accedere al tuo ESP da qualsiasi parte del mondo, semplicemente inserendo il tuo IP pubblico. Ogni volta che il nostro ESP8266 si connette al nostro router di casa / ufficio, gli verrà assegnato un indirizzo IP univoco e questo indirizzo IP viene utilizzato per accedere a ESP8266 tramite il browser web. Questo indirizzo IP è limitato all'interno della tua rete domestica / aziendale, il che significa che non puoi accedervi a livello globale; è possibile accedervi solo dai dispositivi collegati al router. Il port forwarding è la tecnica attraverso la quale possiamo caricare questa pagina web a livello globale. Dopo il port forwarding puoi utilizzare il tuo IP pubblico per accedere a questa pagina web da qualsiasi parte del mondo. Sembra fantastico, vero !! Vediamo come possiamo ottenere questo risultato. Per fare questo devi sapere in anticipo quanto segue.
1. Il nome del produttore e l'indirizzo IP del router. Questo può essere facilmente trovato guardando il router. L'indirizzo IP sarà anche menzionato su un adesivo. Se non Google per conoscere l'IP del tuo router.
2. Il nome utente e la password della pagina di accesso del router. La maggior parte dei router avrà il nome utente "admin" e la password "admin".
3. L'indirizzo IP assegnato al modulo ESP8266. Questo è l'indirizzo che utilizzi per accedere alla pagina web del modulo ESP.
4. L'indirizzo IP del tuo provider di servizi Internet (indirizzo IP pubblico). Questo può essere trovato semplicemente guardando "qual è il mio IP".
Una volta che hai tutto in mano, puoi seguire i passaggi seguenti per il port forwarding, se non riesci a trovare qualcosa usa la sezione commenti qui sotto. Io ti aiuterò.
Passaggio 1: accedere alla pagina dell'utilità di gestione Web del router utilizzando l'indirizzo IP del router, generalmente 192.168.1.1. Il mio schermo sarà simile a questo di seguito
Passaggio 2: immettere il nome utente "admin" per impostazione predefinita e la password "admin" per impostazione predefinita e fare clic su Accedi. Verrai indirizzato alla pagina delle utilità che avrà un aspetto simile a questo di seguito.
La maggior parte delle informazioni che vedi qui sono molto riservate, quindi non condividerle con nessuno sconosciuto potresti rischiare la sicurezza di Internet.
Passaggio 3: come mostrato sopra, la tua pagina avrà tutte le opzioni elencate in basso a sinistra. Il nostro scopo è trovare qualcosa che si chiami "Server virtuali". Ho il mio elencato sotto l'opzione Inoltro. La maggior parte dei router avranno loro indicato come il 6, 7 o 8 ° opzione (per lo più al di sotto di impostazione DHCP). Trovalo e fai clic su di esso
Passaggio 4: Ora devi inserire l'indirizzo IP assegnato al modulo ESP e il numero di porta per inoltrare il nostro IP. Nel mio caso devo fare clic su Aggiungi nuovo e inserire quei dettagli. Potrebbe essere leggermente diverso per te. L'indirizzo IP è quello che utilizzi per accedere alla pagina web del tuo modulo ESP. Il numero di porta può essere di tua scelta, ma usiamo "80" per semplicità. L'IP assegnato al mio modulo ESP8266 è 192.168.0.104 e quindi il mio inoltro avrà un aspetto qui sotto:
Passaggio 5: ora dobbiamo conoscere il nostro indirizzo IP pubblico. Puoi trovare questo il mio Goggling per "Qual è il mio IP". Il tuo IP ISP dovrebbe essere mantenuto altamente confidenziale. Per il bene di questo tutorial supponiamo che il mio indirizzo IP sia 987: 654: 321: 123. Lo userò come IP del mio ISP per il resto del mio tutorial.
Nota: il tuo ISP potrebbe aver fornito un IP statico / dinamico, se si tratta di un IP dinamico il tuo IP cambierà ad ogni riavvio del modem / router. In tal caso devi usare qualcosa come DynDNS. Ma questo è fuori dallo scopo di questo tutorial. Anche se si tratta di un IP dinamico, funzionerà fino a quando non ripristinerai il router.
Ovvero, il nostro port forwarding ha esito positivo, possiamo verificarlo inserendo l'IP dell'ISP: portname (987: 654: 321: 123: 80) nel nostro browser e controllare se la pagina web ESP viene caricata. Se tutto va come previsto, ora dovresti essere in grado di attivare o disattivare i carichi da qualsiasi parte del mondo utilizzando l'indirizzo IP del tuo ISP.
Installazione dell'applicazione Moni Android:
Moni è un'applicazione disponibile per Android, Windows, iTunes e persino Skype. Puoi scaricare questa applicazione sul tuo cellulare. Moni.ai ha molte più funzionalità oltre alla semplice risposta ai comandi vocali, è altamente intuitivo per gli sviluppatori e puoi definire rapidamente le conversazioni visivamente e connetterti ai servizi. Moni.ai utilizza un'applicazione chiamata Node-Red che ti consente di creare facilmente un canale vocale e costruire il tuo sistema Chabot (AI) per la tua attività / progetti e automatizzarlo con il tuo linguaggio naturale. La cosa migliore è che Moni è totalmente gratuito per uso non commerciale.
Sto usando un telefono Android e quindi scarico direttamente Moni dal Play Store di Google. Dopo l'installazione, crea il tuo account gratuito e accedi ad esso, la tua app dovrebbe avere un aspetto simile a questo di seguito:
Puoi usarlo come qualsiasi altro assistente virtuale, come chiedere meteo, ora, ecc. Ma ciò che è aggiuntivo è che può rispondere alle tue applet create dal tuo servizio Ifttt. Vediamo ora come creare applet per la tua applicazione.
Creazione di applet utilizzando il servizio IFTTT:
Siamo ad un passo dal portare a termine questo progetto. L'ultimo passaggio consiste nel creare le applet nel sito Web IFTTT. Qui è dove istruiamo il nostro Moni per diversi comandi vocali per controllare diversi elettrodomestici a casa.
Sto usando questa scatola di giunzione a comando vocale per attivare / disattivare i carichi dell'acquario (luce / filtro) come mostrato nel video qui sotto. Quindi sto personalizzando l'applet per quel requisito, puoi personalizzarlo per il tuo scopo. Segui i passaggi seguenti:
Passaggio 1: visita www.IFTTT.com e accedi con il tuo account. Se nuovo, registrati.
Passaggio 2: ora fai clic su "Cerca" e digita Crea webhook. Selezionalo e fai clic su "Connetti". Segui i passaggi per connetterti con esso.
Passaggio 3: Ora fai di nuovo clic su "Cerca" e digita Moni. Seleziona Moni e fai clic su "Connetti". Accedi con il tuo account IFTTT per abilitare la connessione.
Passaggio 4: ci siamo collegati ai servizi "Maker Webhooks" e "Moni". Ora consente di creare un'applet con questi servizi. Fare clic su Le mie applet e quindi su "Nuova applet". Dovresti vedere qualcosa del genere:
In questa schermata devi fare clic su "questo" e selezionare "Moni". Quindi fai clic su "Chiedi a Moni di eseguire un'azione" sarai portato alla schermata sottostante.
Passaggio 5: inserisci i dettagli come ho compilato nell'immagine sopra. Qui il mio compito è accendere le luci dell'acquario (carico 1) quando dico "Accendi le luci dell'acquario". Quindi fare clic su "Crea trigger"
Passaggio 6: verrai riportato alla schermata "SE QUESTO QUELLO". Ora, fai clic su "quello" e digita "Maker Webhooks" e selezionalo. Quindi fare clic su "Fai una richiesta web". Verrai portato alla schermata sottostante
Questo è un passaggio importante in cui è più probabile che tu commetta errori. In questa pagina è sufficiente inserire l'URL che si desidera caricare. Nel mio caso voglio accendere il carico collegato a switch1, quindi viene utilizzata la linea http: // 987: 654: 321: 123 / switch1On è necessario sostituire il mio IP con il tuo indirizzo IP pubblico. Funzionerà solo se hai utilizzato il mio codice nel tutorial precedente. Di seguito è riportato l'elenco completo degli URL per alternare i carichi.
URL |
Parola chiave dal programma |
Azione |
http: // 987: 654: 321: 123 / switch1On |
Switch1On |
GPIO_0 viene reso alto, attivando così il carico 1 |
http: // 987: 654: 321: 123 / switch1Off |
Switch1Off |
GPIO_0 viene reso basso, disattivando così il carico 1 |
http: // 987: 654: 321: 123 / switch2On |
Switch2On |
GPIO_2 viene reso alto, attivando così il carico 2 |
http: // 987: 654: 321: 123 / switch2Off |
Switch2Off |
GPIO_2 viene reso basso, disattivando così il carico 1 |
Dopo aver inserito l'URL desiderato, fare clic su "Crea azione". Quindi fare clic su Fine. Allo stesso modo puoi creare 4 Applet per accendere / spegnere entrambi i carichi nella nostra scatola di giunzione.
Cioè l'applet è pronta per l'azione e dovrebbe apparire in "Le mie applet" come mostrato di seguito.
È ora di testare il nostro codice…….
Collaudo del progetto:
Finalmente siamo pronti con il nostro progetto. Proviamolo. Accendilo e apri l'applicazione Moni sul tuo cellulare. Fare clic sull'icona Microfono e pronunciare il comando. Nel mio caso è "Accendi le luci dell'acquario" e dovrebbe rispondere con un "OK" e accendere le luci. Controlla il codice completo e il video dimostrativo di seguito.
Spero che il progetto ti sia piaciuto e che funzioni. Se sei bloccato da qualche parte, usa la sezione commenti qui sotto e ti aiuterò sicuramente. Ti incontrerò con un altro progetto interessante fino ad allora rimani sintonizzato.
Controlla anche i nostri altri progetti basati su IoT qui.