Google Assistant. Desarrollo de aplicaciones IoT para Arduino y ESP8266. Tomás Domínguez Mínguez
de dispositivos IoT y hogar inteligente
Es precisamente, en el último campo, donde se enfocará este libro, dándole la posibilidad de desarrollar aplicaciones que le permitan «hablar» con dispositivos controlados mediante un ESP8266 (en concreto, ESP-01 y WeMos D1 R1), convirtiendo su casa en un verdadero hogar inteligente. Podrá programar la calefacción, saber la temperatura que hay en casa o preguntar si se ha dejado las luces encendidas.
Inicialmente, Google Assistant se lanzó únicamente para teléfonos Google Pixel y altavoces Google Home, pero, actualmente, está en todos los dispositivos Android modernos (teléfonos, relojes, televisiones, etc.). Además, no solo funciona con los altavoces inteligente de Google, sino incluso con los de otras marcas, como Sony, LG, Panasonic, etc.
Aunque podrá hacer uso de Google Assistant en diversos dispositivos, para facilitar que cualquiera pueda disfrutar del resultado de las múltiples prácticas que realizará a lo largo del libro, se utilizará el más asequible: el incorporado en teléfonos móviles Android. Los usuarios de iOS no quedarán marginados, ya que podrán descargarse la aplicación para iPhone, aunque con alguna restricción, que no les impedirá disfrutar de este asistente.
Seguro que estará deseando conocer todo lo que puede llegar a ofrecerle. En su web (https://assistant.google.com/), tiene toda la información que necesita.
Unidad 3
SU PRIMER ASISTENTE
Antes de empezar a estudiar en profundidad cada una de las plataformas que intervienen en el desarrollo de un sistema conversacional con Google Assistant, va a realizar uno muy sencillo que, al ser invocado diciendo, por ejemplo, «quiero hablar con mi primer asistente», le responda presentándose. Aunque tendrá que navegar entre ventanas y opciones de Actions on Google y Dialogflow (servicios con los que todavía no está familiarizado), solo se verán los aspectos imprescindibles para completar el ejercicio, dejando de lado el resto. En cualquier caso, se explicará cada uno de los pasos que vaya dando para que entienda, en todo momento, el motivo de lo que está haciendo. Con este primer ejercicio, solo se pretende que tenga una visión general del proceso de desarrollo. Más adelante, estudiará en detalle el funcionamiento de cada una de estas herramientas.
3.1 CONCEPTOS BÁSICOS DE SISTEMAS CONVERSACIONALES
En este tipo de sistemas, la interacción con el usuario se inicia a través de una acción conversacional y finaliza cuando este decide terminar la conversación o, simplemente, acaba de forma natural, una vez obtenido el resultado solicitado.
Una acción conversacional es, por lo tanto, el punto de entrada de un sistema conversacional, una forma de iniciar un diálogo con él. Dicha acción será invocada por su nombre, que activará una intención. Esta última será la encargada de ejecutar las tareas necesarias para dar una respuesta al usuario o, de no ser posible, mantener el diálogo con el que se puedan activar otras intenciones que, finalmente, satisfagan su petición.
Un sistema conversacional puede realizar diversas tareas, cada una de las cuales es ejecutada por una intención específica. De todas ellas, la principal es la que desencadena la ejecución de la intención de bienvenida. Por ejemplo, si el nombre de invocación de la acción principal fuera «mi primer asistente», la conversación con el asistente se iniciaría cuando el usuario dijera determinadas expresiones, como «quiero hablar con mi primer asistente». Eso provocaría la activación de la intención de bienvenida, que le respondería dando pie al inicio de una conversación mediante la que el usuario podría realizar las peticiones que estuviera preparado para atender. Si su función principal fuera la de jugar, dicha intención de bienvenida serviría para preguntar al usuario: «Hola, ¿a qué quieres jugar conmigo?».
Las respuestas ofrecidas por las intenciones podrán ser estáticas o dinámicas. Las respuestas estáticas son las establecidas previamente por el desarrollador. Las dinámicas son las generadas por código (en el contexto de este libro, desarrollado en JavaScript), desde el que se tendría la posibilidad de establecer conexiones con otros servicios si fuera necesario dar o recibir información externa. Por ejemplo, si un usuario solicitara la temperatura, se podría utilizar un servicio (en su caso, Firebase) para acceder a un dispositivo ESP8266 al que estuviera conectado un sensor DHT11 para obtenerla.
Las acciones e intenciones residen y se ejecutan siempre en la nube, independientemente de que se use un teléfono móvil, un altavoz inteligente o cualquier otro dispositivo Android. La creación y posterior gestión de las acciones se realizará en la plataforma Actions on Google. Dicha plataforma se apoyará en Dialogflow, otra herramienta de Google en la que se creará el agente capaz de realizar el procesamiento del lenguaje natural. En ella, añadirá las intenciones necesarias para definir la estructura de la conversación que el asistente deberá entablar con el usuario para dar la información o realizar las acciones solicitadas.
En este libro, a los sistemas conversacionales realizados a partir de proyectos creados en Actions on Google se los llamará, generalmente, «asistentes».
3.2 REQUISITOS PREVIOS
Para poder empezar a utilizar Actions on Google o Dialogflow, es necesario tener una cuenta de Google con los siguientes permisos habilitados:
• Actividad en la web y en aplicaciones
• Grabaciones de audio
• Información sobre aplicaciones de tus dispositivos
Para ello, vaya a la página de control de actividad https://myaccount.google.com/yourdata/assistant e inicie sesión con su usuario Google.
Si no tuviera una cuenta de Google, entre en la página https://support.google.com/accounts/answer/27441?hl=es del centro de soporte y allí pulse «CREAR UNA CUENTA DE GOOGLE».
Una vez dentro, asegúrese de que tiene habilitados los permisos anteriores. Si no fuera así, pulse sobre el control correspondiente y actívelo.
3.3 CREACIÓN DEL PROYECTO EN ACTIONS ON GOOGLE
Para crear un proyecto, lo primero que tiene que hacer es acceder con su usuario a la consola de Actions on Google situada en https://console.actions.google.com/. Una vez dentro, pulse sobre el botón «New Project», para crear el proyecto dentro del cual podrá administrar, probar y publicar sus acciones conversacionales.
Le aparecerá una ventana emergente con las condiciones de uso del servicio. La única opción en la que obligatoriamente deberá seleccionar «Yes» es en la que se indica que acepta los términos de este servicio y el de Firebase (lo conocerá más adelante). No se olvide de seleccionar su país de origen y contestar sí o no (dependiendo de lo que prefiera) a las cuestiones que se le hacen sobre si quiere que le envíen actualizaciones y consejos que lo ayuden a trabajar con Actions on Google, o participar en encuestas y pilotos que mejoren el servicio. Cuando haya seleccionado una opción en todos estos radio buttons, le aparecerá