El objetivo del taller

En el taller nos centramos en controlar un LED usando el Asistente de Google del smartphone. Al finalizar podremos encender y apagar el LED diciéndole al asistente «Ok Google, enciende el LED» y «Ok Google, apaga el LED».

Siguiendo estos pasos puedes iniciarte en el mundo del IoT (Internet de las cosas) basado en el asistente de Google y Google Home. El primer paso lo damos juntos y consiste en encender un LED, el siguiente es parte de tu imaginación.

El taller está pensado para que lo puedas seguir tanto de manera presencial, en algún evento en el que se imparta, como de manera individual en casa siguiendo cada uno de los pasos que encontraras a continuación.

¿Te animas a iniciarte en el mundo del IoT con Google Asistant?

¿Qué necesitas para seguir el taller?

Para seguir este taller necesitas disponer de los siguientes materiales o herramientas. Ten en cuenta que si te has apuntado a realizar el taller en algún evento hay ciertos materiales que te los prestaremos al iniciar el taller.

MaterialDescripciónSe presta en el taller
SmartphoneSmartphone con el asistente de Google y con la aplicación IFTTT instalado.NO
Cuenta de en GoogleCuenta propia en Google con la que inicializar el asistente de Google. Si tu smartphone es Android es posible que ya dispongas de una.NO
Cuenta en https://io.adafruit.com/Usaremos una cuenta de Adafruit. No podremos crear todas las cuentas durante el taller por restricciones de Adafruit.NO
Ordenador portatilSi asistes a un taller presencial trate tu portátil salvo que te digamos lo contrario. Asegúrate de tener Arduino IDE instalado.NO
Wemons D1 MiniPlaca electrónica con WiFi con la que realizaremos el taller.
Cable micro USBCable para conectar la placa al Ordenador. Te proporcionaremos uno durante el taller, pero no esta de más que te traigas el tuyo por si acaso.
LEDUn simple LED de 5 mm

Todos los enlaces de descarga están al final del artículo, en la sección de descargas.

Paso a paso – Empecemos

Vamos a ir paso a paso hasta alcanzar la nuestra meta.

1 – Conectar el LED

Wemos D1 Mini con LED shield

Conectar el LED a la placa Wemos D1 mini con la patilla larga en el pin D4 y la patilla corta en el pin G que aparece a su lado.

2 – Configurar el IDE de Arduino

Para poder comunicarnos con la placa Wemos tenemos que configurar el IDE de Arduino.

Abrir el IDE de Arduino y buscar la opción Preferencias dentro del menú Archivo.

Buscar la opción Gestor de URLs Adicionales de Tarjetas y pegar dentro la URL:

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

Presionar el botón Ok.

En el menú Herramientas buscar la opción Placa y luego Gestor de tarjetas.

Buscar ESP8266 e instalar las placas.

3 – Verificar el LED y la placa

Con él vamos a verificar si el LED está bien conectado. Descarga los códigos para Arduino y ¡empecemos!

Abrir el archivo verificar.ino que se encuentra dentro de la carpeta verificar con el IDE de Arduino y conectar la placa al ordenador mediante USB.

En el menú Herramientas y Placa: seleccionar la placa WEMOS D1 R2 & mini.

Seleccionar el puerto serie dentro del menú Herramientas.

Es momento de subir el código a la placa.

Hacer clic en el botón con una flecha hacia la derecha para cargar el programa en la placa.

Con esto el LED empezará a parpadear. Si es así, todo funciona correctamente, el LED está conectado y nos podemos comunicar con la placa.

4 – Controlar el LED desde Internet

El primer paso antes de llegar a controlar el LED con el asistente consiste en controlarlo desde Internet.

Para esto vamos a usar Adafruit IO, así que tenemos que disponer de una cuenta en esta plataforma. Podemos entrar y registrarnos desde este enlace a io.adafruit.com,es recomendable que nos registremos con la misma cuenta de gmail que vamos a usar durante el resto del taller.

Adafruit IO es como un tablón de anuncios.

Adafruit IO se comporta como una especie de tablón de anuncios en el cual podemos publicar y leer mensajes.

Por ejemplo, podemos publicar un mensaje que diga «Enciende la luz» y dejarlo hay. En algún momento, nuestra placa Wemos irá al tablón y leerá el mensaje. Cuando lo haga, lo interpretará y encenderá el LED. Por tanto, Adafruit IO nos va a servir como un intermediario entre Google y la electrónica.

Una vez tenemos la cuenta pasamos a prepararla.

Busca la opción de Feeds dentro de io.adafruit.com y presiona sobre view all.

Desplegar la lista Actions y seleccionar la opción Create a New Feed para crear un nuevo Feed es decir una especie de tablón de anuncios.

Escribir un nombre y una descripción al nuevo Feed. Por ejemplo:

Nombre: LED

Descripción: Controlando un LED.

Hacer clic en el botón Create.

Ahora en la lista que aparece con nuestros Feeds debemos seleccionar el que acabamos de crear y nos aparecerá una pantalla como la siguiente.

Ya lo tenemos preparado para enviar datos, el siguiente paso es programar la placa Wemos D1 mini para que pueda acceder al Feed y así poder leer las ordenes que enviemos.

Abrir el archivo control.ino que se encuentra dentro de la carpeta cntrol con el IDE de Arduino.

El código de este ejemplo está descrito en el propio archivo, así que te recomiendo que le eches un vistazo para entender como funciona. Si estamos en un taller presencial te lo explicaré en vivo y en directo.

Para continuar tendrás que configurar las siguientes líneas de código:

#define SSID_WIFI       "SSID"
#define PASS_WIFI       "PASSWORD"

En las anteriores tienes que sustituir SSID y PASSWORD por el nombre de la red WiFi y la contraseña respectivamente.

#define nombre_de_usuario    "nombreDeUsuarioAdafruitIO"
#define API_KEY         "tuApiKey"

En estas últimas debes configurar tu nombre de usuario, el que usaste durante el registro en Adafruit IO y tu APIkey.

La APIkey es un identificador único y secreto de tu cuenta de Adafruit IO, lo puedes encontrar dentro de la sección AIO Key como Active key que se encuentra en el menú superior de Adafruit IO.

Solo nos que subir este código a la placa de la misma manera que antes.

Hacer clic en el botón con una flecha hacia la derecha para cargar el programa en la placa.

Si la carga es correcta ya deberíamos estar preparados para enviar órdenes a la placa.

La placa Wemos puede tardar unos segundos en conectarse a la red Wifi y comunicarse con Adafruit IO. Podemos ver el proceso si abrimos el monitor serie de Arduino.

Volvamos a Adafruit IO, a la misma ventana que habíamos dejado antes. En la parte inferior hay botón que dice Add Data, lo seleccionamos para poder enviar datos y se abrirá una ventana como esta:

Si enviamos el texto encender se encenderá nuestro LED. Si por el contrario enviamos el texto apagar se apagará.

Ya tenemos el primer paso. ¡Ya somos capaces de controlar el LED desde internet!

5 – Control desde el asistente de Google

Para poder controlar el LED desde el Asistente de Google necesitamos contar con IFTTT, una herramienta que hará de intermediario entre el Google Assistant y Adafruit IO y conectara ambas plataformas.

IFTTT se configura fácilmente desde el smartphone, por tanto el primer paso será instalar la aplicación.

Es necesario crear la cuenta en IFTTT usando el registro de Google para que IFTTT pueda acceder al Asistente.

Ten encuenta que durante el proceso de configuración vamos a tener que conceder permisos a IFTTT para que pueda acceder a nuestra cuenta de Adafruit IO y Google Assistant.

Hacer clic en el botón Get more para crear una nueva conexión.

Hacer clic en el botón con un +.

Seleccionar el botón + para añadir el conector con el Asistente de Google.

Buscar Google Assistant en el buscador y seleccionar su opción.

Queremos que detectar cuando le pedimos al asistente que Encienda la luz por tanto seleccionamos Say a simple phrase.

Rellenamos los datos que nos pide:

  • What do you want to say?: Es la orden que nosotros le daremos al asistente.
  • What do you want the Assistant to say in response?: Es la respuesta que nos dará el asistente.
  • Languaje: Es el idioma en que nos comunicaremos con el asistente

Nos toca crear la conexión con el Adafruit IO.

Seleccionar el botón +.

Buscar Adafruit en el buscador y seleccionar su opción un poco más abajo.

Seleccionar la opción Send data to Adafruit IO.

Seleccionar el nombre del Feed que se creó antes para el LED y configurar el mensaje que se quiere enviar como encender.

Presionar Continue.

Hacer clic en Finish.

Ya lo tenemos configurado para poder encender el LED. Puedes repetir el proceso cambiando encender por apagar en la conexión con Adafruit IO para poder apagar.

Ya podemos probarlo, abre el Asistente de Google y prueba a decir:

Ok Google! Enciende la luz.

Ten en cuenta que pueden pasar algunos minutos desde que finalizamos la configuración hasta que Google responda correctamente.

Otras placas

Aunque este taller lo hemos realizado con la placa Wemos D1 Mini en la realidad podemos usar cualquier otra siempre y cuando la placa esté basada en un ESP8266. Algunos ejemplos de placas de desarrollo fáciles de conseguir son:

  • Wemos D1
  • Wemos D1 Mini
  • Wemos D1 Mini Pro
  • Node MCU
  • ESP-01

También podríamos diseñar nuestras propias placas como la AC Relay.

Descargas

Archivos de código para Arduino IDE

Puedes descargar Arduino IDE desde aquí:

JSON de la placa Wemos D1 Mini

Drivers USB para la placa Wemos D1 Mini.

Repositorio completo de talleres

Próximos eventos en los que se impartirá este taller.

9 de noviembre

https://oshwdem.org/


Enrique Gómez

Ingeniero Electrónico Industrial y Automático, amante de la comunicación audiovisual y de la divulgación ingenieril y científica. Friki de Star Wars, cuenta más de lo que parece. Puedes saber más sobre mi y sobre mis trabajos en www.enriquegomez.me