Introduction: Control De Foco Por Medio De Comandos De Voz

En esta ocasion traemos un tutorial para el control de el encendido y apagado de un foco por medio de comandos de voz ayudados de google assistant y nuestra plataforma de desarrollo wifi (Lolin), que tambien puede ser un modulo Esp8266 o un Node mcu.

para comenzar necesitaremos los siguientes materiales:

1.- plataforma de desarrollo Wi-fi ( Node Mcu, lolin o un modulo generico Esp8266 ).

2.- 2 resistencias de 10k ohms

3.- 1 transistor 2n2222 o bc548

4.- un modulo de Relevador (Alimentacion de la bobina 5v).

5.- un protoboard o placa rapida.

6.- aproximadamente 8 cables dupont o jumpers

7.- foco, socket, clavija y 4 metros de cable para hacer un test.

Step 1: Ingresar a La Pagina De Adafruit.io

Ingresamos a la pagina www.adafruit.io

Si no tenemos un account generamos uno, no tiene ningún costo, ya que tengamos un account generado nos vamos a la parte de dashboard y seleccionamos la opción de "create a new dashboard".

Le damos un nombre y seleccionamos la opción de "create"

Step 2: Creamos Un Bloque Dentro De Nuestra Nueva Dashboard

Ya creada nuestra nueva dashboard la seleccionamos con doble clic y creamos un nuevo bloque, en el icono azul con cruz blanca (como muestra la imagen)

Step 3: Seleccionamos El Tipo De Bloque

Seleccionamos el bloque llamado Toggle para agregar un botón, que cambiara de valor conforme nuestro comando de voz.

Step 4: Nombramos a Nuestro Bloque

Le damos un nombre a nuestro bloque, este sera al que mandaremos llamar para hacer la conexión entre el google assitant y nuestra plataforma de desarrollo Wi-fi, una vez nombrado seleccionamos la opción de "create" y deberá aparecer entre las opciones que se encuentran en la parte de abajo.

Step 5: Seleccionar Nuestro Block Nombrado

Seleccionamos nuestro nuevo block y damos clic a "Next step" hecho esto cambiamos el "Button text on" por un 1 y el "Button text off" por un 0, como lo muestra la segunda imagen de esta sección; para finalizar seleccionamos "Create Block, sin cambiar nada mas en esa parte.

Step 6: Ingresamos a La Pagina Ifttt

Abrimos una nueva pestaña dentro de nuestro navegador e ingresamos a la pagina siguiente:

ifttt.com.

una vez estando en la pagina crear un account en caso de no tener, de la misma manera que en adafruit no tiene ningún costo.

hecho nuestro account seleccionaremos el apartado de "My Applets"

Step 7: Creamos Una Nueva Applet

Estando en la seccion de "My Applets",Creamos una nueva Applet seleccionando el apartado de "New applet"

Step 8: Seleccionar Primer Parte (if This)

Seleccionamos la palabra "this" en la frase "If this then that " para posteriormente seleccionar a Google assistant

Step 9: Seleccionamos Google Assistant

Tecleamos google assistant en el buscador de servicios de la pagina iftt y seleccionamos Google Assistant, como lo muestra la imagen.

Step 10: Selecionamos Nuestro Trigger

Seleccionamos la primer opción como Trigger en el apartado de "say a simple phrase", hecho esto nos desplegara una nueva pagina en donde debemos ingresar lo que queremos decir en el apartado de "what do you want to say", aqui escribiremos una frase para que google assistant reconozca, en este caso se escogió la frase de "turn lights on" enciende las luces en ingles, opcionalmente podrás ingresar otra frase para ejecutar el mismo comando, hecho esto deberás ingresar una frase para que google assistant te responda, en este caso se escogió la frase de "Ok Mr Stark" (frase de jarvis en iron man en respuesta a tony stark) en tu caso podrás elegir una frase que te guste como respuesta.

Es posible cambiar el lenguaje a español si deseas hacerlo no existe ningún problema.

Hecho lo anterior seleccionamos el apartado de "Create Trigger".

Step 11: Sleccionar "that" De La Frase "if This Then That"

Seleccionamos la palabra "that" para crear una acción después de decir nuestra frase.Observaremos que el logo de Google Assistant ya esta agregado en la parte de "if"

Step 12: Seleccionamos a Adafruit Y Agregamos Send Data

Aquí seleccionaremos la opción de Adafruit, escribiendo en el buscador de servicios la palabra "Adafruit", posteriormente seleccionamos la opción de "Send Data To Adafruit IO" la cual es la única opción en este apartado.

Step 13: Ingresamos Los Nuevos Requerimientos

En esta opción, podemos ingresar el nombre de nuestro bloque creado en Adafruit con el nombre que le dimos, en el caso de este tutorial es "home_enn1", y en el aprtado de "Data to Save" se le agregara un 1, dato que sera enviado a la pagina de Adafruit sobre nuestro bloque, haciendo que este cambie de estado (si esta en 0).

Step 14: Finalizar El Apartado Para Encender Nuestro Foco

Como los muestran las imágenes de este paso, debes finalizar el primer comando de voz.

*****NOTA IMPORTANTE*****

Deberás Rehacer los pasos 7 al 14 para ingresar el comando para apagar nuestro foco, cambiando la frase por una de apagado ejemplo: " Turn lights off " y en el apartado de "Send Data to Adafruit IO" se ingresara el dato de "0" para que este nuevo dato remplace al anterior en la pagina de Adafruit de lo contrario no servirán tus comandos, te recomiendo ver el tutorial de youtube que esta en la introducción de estas instrucciones.

Step 15: Descargar Codigo.

Descarga el código de nuestra plataforma de desarrollo y abre Arduino IDE (programa de Arduino).

Step 16: Descarga La Librería De Mqtt_ Server

Librería de mqtt_server para Adafruit

Step 17: Ingresa La Siguiente Linea En Preferencias De El Arduino IDE

Si aun no habías trabajado con alguna plataforma wi-fi como Node mcu o Lolin deberás ingresar esta liga de URL en el apartado de Archivo y preferenciase en Arduino IDE :(como lo muestra la imagen)

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Step 18:

Ya que se ah agregado la liga para descargar las diferentes plataformas de desarrollo que utilizan wi-fi tales como Node mcu, Lolin, generic esp8266 module, etc se deberán instalar en tu programa de Arduino IDE seleccionando el apartado de herramientas, gestor de tarjetas y tecleando en la zona de filtrar búsqueda "esp8266" como lo muestran las imágenes de este paso, una vez instalado, en nuestra parte del código la librería deberá aparecer en color naranja (ESP8266WiFi.h).

Step 19: Agregar Librería Mqtt_server

Agregaremos la librería de nuestro .zip previamente descargado con la librería Adafruit_MQTT_Library-master.zip, para agregarla selecciona programa, incluir librería, añadir librería.zip seleccionandola del lugar a donde se descargo, para finalizar da clic en abrir y se abra inlcuido. (como lo muestran las imagenes)

Step 20: Cambia Los Apartados Del Código.

Cambia los apartados del código con la leyenda de ingresar datos tales como:

1.-Nombre de tu modem:

#define WLAN_SSID "Ingresa el nombre de tu modem"

2.-Clave de tu modem:

#define WLAN_PASS "Ingresar clave de modem"

3.- El nombre de tu usuario en Adafruit

#define AIO_USERNAME "ingresa el nombre de tu usuario"

4.-Tu llave o key de Adafruit ( la cual se encuentra en la pagina de Adafruit en el apartado de View AIO key)

https://io.adafruit.com

#define AIO_KEY " ingresa tu key de Adafruit"

5.-ingresar el nombre de tu bloque creado.

Adafruit_MQTT_Subscribe onoffbutton = Adafruit_MQTT_Subscribe(&mqtt, AIO_USERNAME "/feeds/Ingresa el nombre de tu bloque");

como lo muestran las imágenes aquí agregadas.

*****Nota*****

Recordar que nuestro pin que se activara sera el GPIO4 o D2 en Node mcu y Lolin

Step 21: Realizar Las Conexiones

Realizar las conexiones de nuestro diagrama, te dejare las referencias del modulo de relevador así como del transistor 2n2222.

Step 22: Cargar El Codigo

Conecta tu plataforma de desarrollo Wi-Fi , Asegúrate de seleccionar tu plataforma de desarrollo, en este caso en particular se selecciono la tarjeta LOLIN(WEMOS) selecciona el puerto com al cual se ah conectado y listo, si tienes problemas con los drivers checa el circuito integrado encargado de comunicación e instala los drivers apropiados en este caso para la tarjeta con el circuito ch340G.

Te dejare una liga con instrucciones para hacer esta parte.

https://www.instructables.com/id/Instalar-driver-para-CH340G/