ALEXA
Desarrollo de aplicaciones IoT
para Arduino y ESP8266
Tomás Domínguez Mínguez
ALEXA
Desarrollo de aplicaciones IoT
para Arduino y ESP8266
Tomás Domínguez Mínguez
Alexa. 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
Cubierta: ENEDENÚ DISEÑO GRÁFICO
Maquetación: cuantofalta.es
Correctores: Nuria Barroso y Beatriz García
Directora de producción: Mª Rosa Castillo
«Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra sólo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra».
ISBN: 978-84-267-3291-0
Producción del ePub: booqlab
A todos ustedes.
Sin lectores no habría libros.
1. INTRODUCCIÓN Unidad 1 INTRODUCCIÓN Alexa es un asistente virtual que utiliza una interfaz de voz tanto para recibir peticiones del usuario, como para responderle. Dichas respuestas se darán dentro del contexto de una conversación en la 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 Interfaces de voz
1.2 Sistemas conversacionales
1.3 IoT
2. ALEXA
3. HABILIDADES
3.1 Tipos de habilidades
3.2 Modelo de interacción
3.3 Invocación de habilidades personalizadas
4. PORTAL DE SERVICIOS PARA DESARROLLADORES DE AMAZON
4.1 Consola del desarrollador de Alexa
4.2 Práctica de creación de una habilidad
4.3 Opciones de configuración de habilidades
5. MODELO DE INTERACCIÓN
5.1 Intenciones
5.1.1 Intenciones personalizadas
5.1.1.1Expresiones de muestra
5.1.1.2Slots
5.1.2 Intenciones estándar
5.2 Slots
5.2.1 Tipos de slot personalizados
5.2.2 Tipos de slot estándar
5.3 Modelo de diálogo
5.3.1 Validación de los valores de un slot
5.3.2 Delegación del diálogo
5.4 Práctica de creación de un modelo de interacción
5.4.1 Establecimiento del nombre de invocación
5.4.2 Creación de una intención y sus expresiones de muestra
5.4.3 Creación de los tipos de slot
5.4.4 Modelo de diálogo
5.4.5 Construcción del modelo de interacción
5.4.6 Prueba del modelo de interacción
5.5 Formato de datos JSON del modelo de interacción
5.5.1 Formato de datos JSON
5.5.2 Objetos JSON del modelo de interacción
5.5.2.1Objeto languageModel
5.5.2.2Objeto dialog
5.5.2.3Objeto prompt
6. FUNCIONES LAMBDA
6.1 Flujo de comunicación entre un dispositivo Alexa y la función lambda de una habilidad
6.1.1 Protocolo HTTP
6.1.1.1Peticiones HTTP
6.1.1.2Respuestas HTTP
6.1.2 Formato de datos JSON en las comunicaciones HTTP
6.1.2.1Formato de datos JSON de las peticiones HTTP
6.1.2.2Formato de datos JSON de las respuestas HTTP
6.2 Alojamiento de la función lambda de una habilidad en el servicio Alexa
6.3 Módulos de desarrollo Node.js
6.4 Proceso de ejecución de la función lambda de una habilidad
6.4.1 Recepción de solicitudes
6.4.2 Procesamiento de solicitudes
6.4.3 Devolución de respuestas
6.5 Editor de código
6.6 Prácticas de desarrollo de la función lambda de una habilidad
6.6.1 Inicio de la habilidad
6.6.1.1Desarrollo de la función lambda
6.6.1.2Prueba de la habilidad
6.6.2 Invocación de una intención
6.6.2.1Desarrollo de la función lambda
6.6.2.2Prueba de la habilidad
6.7 Gestión de atributos
6.7.1 Tipos de atributos
6.7.2 Adaptadores de persistencia
6.8 Práctica de gestión de atributos de sesión
6.8.1 Creación de las intenciones estándar de confirmación y negación
6.8.2 Desarrollo de la función lambda
6.8.3 Prueba de la habilidad
6.9 Práctica de gestión de atributos persistentes
6.9.1 Creación de la intención de obtención del nombre del usuario
6.9.2 Desarrollo de la función lambda
6.9.3 Prueba de la habilidad
7. USO DE ALEXA DESDE UN TELÉFONO MÓVIL
7.1 Instalación de Alexa en el móvil
8. AMAZON CLOUDWATCH
8.1 Acceso a Amazon CloudWatch
8.2 Práctica de depuración de errores
9. PRÁCTICA DE DESARROLLO DE UNA HABILIDAD. EL JUEGO DE QUIÉN ES QUIÉN
9.1 Creación del modelo de interacción
9.2 Desarrollo de la función lambda
10. EL MÓDULO ESP-01
10.1 Características del ESP-01
10.2 Programación del ESP-01 desde el IDE Arduino
10.3 Prácticas
10.3.1 Integración de Arduino con ESP-01
10.3.2 Cliente web
10.3.3 Cliente NTP
11. ADAFRUIT IO
11.1 Acceso al servicio
11.2 Componentes básicos del servicio
11.2.1 Feeds
11.2.2 Paneles de control
11.3 Integración con Adafruit IO
11.3.1 Librería Adafruit IO Arduino
11.3.2 API HTTP
11.4 Práctica de integración de ESP-01 con Adafruit IO
12. PRÁCTICAS DE CONTROL DE DISPOSITIVOS DOMÓTICOS
12.1 Escenario de integración de servicios
12.2 La placa WEMOS D1 R1
12.3 Actividades previas
12.3.1 Creación de la habilidad
12.3.2 Desarrollo de la estructura básica de la función lambda
12.4 Encendido y apagado de luces por habitación
12.4.1 Creación de los feeds en Adafruit IO
12.4.2 Desarrollo del programa ESP8266
12.4.3 Creación del modelo de interacción
12.4.4 Desarrollo de la función lambda
12.4.5 Pruebas de la habilidad
12.5 Consulta de la temperatura
12.5.1 Creación del feed en Adafruit IO
12.5.2 Desarrollo del programa ESP8266
12.5.3 Creación del modelo de interacción
12.5.4 Desarrollo de la función lambda
12.5.5 Pruebas de la habilidad
12.6 Programación de la temperatura de la calefacción
12.6.1 Creación de los feeds en Adafruit IO
12.6.2 Desarrollo del programa ESP8266
12.6.3 Creación del modelo de interacción
12.6.4 Desarrollo de la función lambda
12.6.5 Pruebas de la habilidad
12.7 Programación de la hora de encendido de la calefacción
12.7.1 Creación del feed en Adafruit IO
12.7.2 Desarrollo del programa ESP8266
12.7.3 Creación del modelo de interacción
12.7.4 Desarrollo de la función lambda
12.7.5 Pruebas de la habilidad
ANEXO.FUNDAMENTOS DE JAVASCRIPT
Alexa es un asistente virtual que utiliza una interfaz de voz tanto para recibir peticiones del usuario, como para responderle. Dichas respuestas se darán dentro del contexto de una conversación en la 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.
Читать дальше