Google Assistant. Desarrollo de aplicaciones IoT para Arduino y ESP8266
Primera edición, 2021
© 2021 Tomás Domínguez Mínguez
© 2021 MARCOMBO, S. L.
www.marcombo.com
Diseño de cubierta: ENEDENÚ DISEÑO GRÁFICO
Maquetación: cuantofalta.es
Asesor técnico: Rubén Beiroa
Correctora: Mónica Muñoz
Directora de producción: M ªRosa Castillo Producció del ebook: booqlab
«Cualquier forma de reproduccion, distribucion, comunicacion publica o transformacion de esta obra solo puede ser realizada con la autorizacion de sus titulares, salvo excepcion prevista por la ley. Dirijase a CEDRO (Centro Espanol de Derechos Reprograficos, www.cedro.org) si necesita fotocopiar o escanear algun fragmento de esta obra».
ISBN: 978-84-267-3241-5
Dedicado a todos aquellos que, desde Google, han colaborado para que Internet se convierta en nuestro segundo hogar
1. INTRODUCCIÓN Unidad 1 INTRODUCCIÓN Google Assistant es un asistente virtual donde se utiliza una interfaz de voz, tanto para recibir las peticiones del usuario como para responderle. Dichas respuestas se darán dentro del contexto de una conversación en el que se simula estar hablando con otra persona. Por eso, antes de empezar a desarrollar aplicaciones para este asistente, debe conocer qué son las interfaces de usuario basadas en la voz y los conceptos básicos que gobiernan los sistemas capaces de mantener conversaciones de forma natural. Puesto que nos centraremos en la utilidad práctica de estas aplicaciones en el ámbito IoT (Internet of Things – Internet de las cosas), también se darán algunas nociones básicas de qué hay detrás de esta tecnología y los motivos que hacen que esté cada vez más presente en nuestras vidas.
1.1 IoT 1.1 IOT Internet de las cosas (IoT) es un concepto propuesto por Kevin Ashton en 1999, para referirse a la conexión de objetos cotidianos a través de Internet. Su implantación es cada vez mayor y abarca, entre otros, los sectores de la medicina, la industria, el transporte, la energía, la agricultura, las ciudades inteligentes o los hogares, que es en el que nos centraremos. Hoy día, es más y más frecuente encontrar dispositivos en casa capaces de ser utilizados de forma remota a través de Internet, bien sea para su control o para obtener información de los sensores que lleven incorporados. El éxito de la tecnología IoT se debe, en gran parte, a su capacidad para introducir objetos de uso diario en el mundo digital, abriendo un amplio abanico de nuevas posibilidades que incrementan enormemente su utilidad, ya que permiten el control de los objetos a distancia (por ejemplo, encender o apagar una luz) o que estos informen de datos recogidos por sus sensores (por ejemplo, humedad o temperatura); todo ello desde cualquier dispositivo en cualquier parte del mundo. Para controlar o recoger datos de los dispositivos IoT se utilizan, generalmente, interfaces clásicas que se ejecutan en un ordenador y, cada vez con más frecuencia, en teléfonos móviles. Si en vez de estas se usaran interfaces de voz, la interacción se volvería más natural, haciendo más sencillo el uso de las aplicaciones. Por este motivo, la unión de las tecnologías IoT y las relacionadas con el desarrollo de interfaces de voz están llamadas a formar un tándem, que hará que este tipo de dispositivos tengan cada vez un uso más cotidiano.
1.2 Interfaces de voz
1.3 Sistemas conversacionales
2. GOOGLE ASSISTANT
3. SU PRIMER ASISTENTE
3.1 Conceptos básicos de sistemas conversacionales
3.2 Requisitos previos
3.3 Creación del proyecto en Actions on Google
3.4 Modificación de la intención de bienvenida en Dialogflow
3.5 Activación del micrófono del simulador del asistente
4. ACTIONS ON GOOGLE
4.1 Consola
4.1.1 Sistema de pestañas
4.1.1.1 Pestaña de información general ( Overview )
4.1.1.2 Pestaña de desarrollo ( Develop )
4.1.1.3 Pestaña de pruebas ( Test )
5. DIALOGFLOW
5.1 Consola
5.1.1 Configuración de los agentes
5.1.2 Menú lateral
6. CONCEPTOS BÁSICOS PARA EL DESARROLLO DE SISTEMAS CONVERSACIONALES CON DIALOGFLOW
6.1 Intenciones ( Intents )
6.1.1 Práctica de uso de intenciones
6.2 Contextos ( Contexts )
6.2.1 Práctica de uso de contextos
6.3 Entidades ( Entities )
6.3.1 Práctica de uso de entidades personalizadas
6.4 Cumplimiento ( fulfillment )
6.4.1 Conceptos previos al desarrollo de un cumplimiento
6.4.1.1 Protocolo HTTP
6.4.1.2 Tecnología webhook
6.4.1.3 Formato de datos JSON
6.4.2 Librerías de desarrollo
6.4.2.1 Librería Firebase Functions
6.4.2.2 Librería Actions on Google
6.4.3 Estructura de ficheros de un cumplimiento
6.4.4 Desarrollo de un cumplimiento
6.4.4.1 Generación dinámica de respuestas
6.4.4.2 Manejo de contextos y parámetros desde un cumplimiento
6.4.5 Depuración del código de un cumplimiento
6.4.5.1 Análisis de solicitudes y respuestas HTTP
6.4.5.2 Generación de mensajes de traza
7. PRÁCTICAS DE DESARROLLO DE SISTEMAS CONVERSACIONALES CON DIALOGFLOW
7.1 Juego de «adivina el número»
7.1.1 Creación de las intenciones
7.1.2 Desarrollo del cumplimiento
7.2 Juego de «sigue la secuencia»
7.2.1 Creación de las intenciones
7.2.2 Desarrollo del cumplimiento
7.3 Creación de las intenciones comunes de fallback
7.4 Creación de las intenciones comunes de ayuda y salida
7.5 Creación de las acciones ( actions )
7.6 Uso del asistente desde un teléfono móvil
8. EXPORTACIÓN E IMPORTACIÓN DE AGENTES EN DIALOGFLOW
9. FIREBASE
9.1 Consola
9.1.1 Panel principal
9.1.2 Menú lateral
9.2 Práctica de creación de un proyecto
10. FIREBASE REALTIME DATABASE
10.1 Consola
10.2 Práctica de creación de una estructura de datos
11. EL MÓDULO ESP-01
11.1 Características del ESP-01
11.2 Programación del ESP-01 desde el IDE Arduino
11.3 Práctica de integración de Arduino con ESP-01
11.4 Librería ESP8266Wifi
11.5 Práctica de acceso a Internet
12. INTEGRACIÓN DE FIREBASE REALTIME DATABASE CON ESP8266
12.1 Librería Firebase ESP8266 Client
12.1.1 Configuración de las credenciales de la base de datos
12.1.2 Lectura y escritura de datos
12.1.3 Sincronización de datos
12.2 Prácticas de integración de Firebase Realtime Database con ESP8266
12.2.1 Lectura y escritura de los pines digitales del ESP-01 desde Firebase Realtime Database
12.2.1.1 Desarrollo del programa ESP-01 usando una consulta manual
12.2.1.2 Desarrollo del programa ESP-01 usando una función de callback
12.2.2 Lectura de los pines analógicos de Arduino desde Firebase Realtime Database
12.2.2.1 Creación de la estructura de datos en Firebase Realtime Database
12.2.2.2 Desarrollo del programa Arduino
12.2.2.3 Desarrollo del programa ESP-01
13. FIREBASE CLOUD FUNCTIONS
13.1 Consola
13.2 Firebase CLI
13.2.1 Instalación de Firebase CLI
13.2.2 Acceso a Firebase CLI
13.3 Prácticas de despliegue de funciones JavaScript
13.3.1 Despliegue de una función JavaScript
Читать дальше