Internet de las cosas (IoT) ha llegado para quedarse. Su presencia se hace notar en campos como la medicina, la industria, el transporte, la energía, la agricultura, las ciudades inteligentes y, especialmente, en los hogares, ámbito en el que se centra este libro.
Si quiere conocer todo lo necesario para crear sus proyectos de IoT con dispositivos Arduino y ESP8266, este es el libro indicado. Sus explicaciones parten de un nivel básico en Arduino y aumentan su dificultad de forma gradual. Además, los conceptos teóricos para conocer los protocolos (HTTP y MQTT) y las arquitecturas utilizadas (cliente-servidor, publicación-suscripción y REST) se acompañan con múltiples ejercicios prácticos en los que se comenta, paso a paso, el código de cada programa y la configuración de los servicios en la nube empleados.
Con este libro, desarrollará multitud de aplicaciones IoT y empleará servicios en la nube como Ubidots, Beebotte, Pushbullet o IFTTT, con los que podrá interactuar desde cualquier parte del mundo a través de un navegador web, un teléfono móvil o los asistentes de voz de Google o Alexa:
. Enchufe domótico que permite controlar el encendido o apagado de dispositivos eléctricos.
. Clientes o servidores web con los que leer o escribir datos en los pines de Arduino y ESP8266 desde un navegador.
. Aplicación de visualización de datos de sensores o manejo de aparatos eléctricos desde un teléfono móvil.
. Sistema de alarma por movimiento o apertura de puertas y ventanas, con envío de notificaciones al móvil.
. Sistema de control de riego con advertencias de humedad por correo electrónico.
. Botón de emergencia para personas mayores.
. Sistema de control de presencia de personas con problemas de orientación, capaz de enviar alertas al móvil de forma
automática cuando salen de casa.
. Aplicación de Google Assitant para el encendido o apagado de luces.
. Aplicación de Amazon Alexa para la apertura de la puerta del garaje.
. Control de un dispositivo domótico a través de un icono de escritorio en el móvil.
Además, en la parte inferior de la primera página del libro encontrará el código de acceso que le permitira descargar de forma gratuita los contenidos adicionales en www.marcombo.info.
Tanto si quiere iniciarse en el mundo del IoT como si es un profesional, este libro no le dejará indiferente. Consiga su ejemplar, haga realidad sus proyectos y vaya más alla de lo que siempre había imaginado.
Tomás Domínguez es ingeniero de telecomunicación y doctorado en inteligencia artificial. Su labor profesional se ha desarrollado en una multinacional de telecomunicaciones, donde ha ocupado diversos cargos relacionados con la tecnología. Asimismo, ha ejercido como profesor universitario de ingeniería informática en la Universidad Alfonso X el Sabio de Madrid.
1. INTERNET DE LAS COSAS 1
1.1 Componentes de IoT 2
2. COMUNICACIONES WEB 5
2.1 La familia de protocolos Internet 6
2.2 Comunicaciones web con ESP-01 9
2.2.1 Caracteristicas del ESP-01 9
2.2.2 Programacion del ESP-01 desde el IDE Arduino 11
2.2.3 Libreria ESP8266WiFi 14
2.2.4 Integracion del ESP-01 con Arduino 16
2.2.5 Practicas 19
2.2.5.1 Cliente web 20
2.2.5.2 Servidor web 25
2.3 Protocolo HTTP 32
2.3.1 Peticiones HTTP 33
2.3.1.1 Tipos de peticiones HTTP 34
2.3.2 Respuestas HTTP 36
2.3.3 Practicas 37
2.3.3.1 Servidor web avanzado 37
2.3.3.2 Asignacion de valores a los pines del ESP-01
desde un navegador 44
2.3.3.3 Obtencion del estado de los pines del ESP-01
desde un navegador 55
2.3.3.4 Asignacion de valores a los pines PWM
de Arduino desde un navegador 62
2.4 Utilidades del navegador Chrome
para el analisis de mensajes HTTP 71
2.5 Herramienta Postman 74
2.5.1 Instalacion de Postman75
2.5.2 Creacion de peticiones HTTP 77
2.5.2.1 Componentes generales
de una peticion HTTP 78
2.5.2.2 Realizacion de peticiones GET 79
2.5.2.3 Realizacion de peticiones POST 81
2.5.3 Obtencion de respuestas 83
3. COMUNICACIONES MQTT 85
3.1 Protocolo MQTT 86
3.1.1 Conexion de un cliente a un broker 88
3.1.2 Publicacion y suscripcion de mensajes 90
3.2 Comunicaciones MQTT con WEMOS D1 R1 91
3.2.1 Caracteristicas del WEMOS D1 R1 91
3.2.2 Libreria PubSubClient 93
3.3 Herramienta MQTTLens 95
3.3.1 Instalacion de MQTTLens 95
3.3.2 Uso de MQTTLens 96
3.4 Practicas 100
3.4.1 Enchufe domotico 101
3.4.2 Sensor de temperatura 108
3.4.2.1 Publicacion sin perdida de mensajes 114
3.4.2.2 Deteccion de la desconexion de un dispositivo 115
3.4.3 Termometro digital 116
3.4.4 Alarma con sensor de movimiento 122
3.4.4.1 Sistema emisor – PIR 123
3.4.4.2 Sistema receptor – Timbre electrico 127
3.4.4.3 Sistema receptor – Sirena electronica 131
3.4.5 Control de la calefaccion desde un movil
con IoT MQTT panel 135
4. FORMATO DE DATOS JSON 151
5. COMUNICACIONES REST 155
5.1 Libreria HTTP aRest 157
5.2 Practicas 160
5.2.1 Control de la salida de pines digitales 160
5.2.2 Mando a distancia 165
5.2.3 Mando a distancia inteligente 169
5.2.4 Medicion de la humedad del suelo 1786. SERVICIO UBIDOTS 185
6.1 Acceso al servicio Ubidots 185
6.2 Componentes basicos de la plataforma 188
6.2.1 Dispositivos 188
6.2.2 Variables 189
6.2.3 Procesamiento de variables 192
6.2.4 Cuadro de mandos 195
6.2.5 Eventos 200
6.3 Libreria MQTT UbidotsESPMQTT 207
6.4 API HTTP RESTful 209
6.5 API MQTT 211
6.6 Practicas 212
6.6.1 Estacion meteorologica con UbidotsESPMQTT 212
6.6.1.1 Desarrollo del programa WEMOS 213
6.6.1.2 Creacion del cuadro de mandos en Ubidots 218
6.6.2 Estacion meteorologica con HTTP RESTful 223
6.6.3 Estacion meteorologica con MQTT 231
6.6.4 Sistema de control de riego 236
6.6.4.1 Desarrollo del programa WEMOS 238
6.6.4.2 Creacion del cuadro de mandos en Ubidots 242
7. SERVICIO BEEBOTTE 249
7.1 Acceso al servicio Beebotte 250
7.2 Componentes basicos de la plataforma 253
7.3 API HTTP RESTful 254
7.4 API MQTT 256
7.5 Practicas 257
7.5.1 Sistema de control de fugas de agua con MQTT 257
7.5.1.1 Creacion del canal, el recurso
y el panel de control en Beebotte 258
7.5.1.2 Desarrollo del programa WEMOS 263
7.5.1.3 Creacion del interruptor en Beebotte 270
7.5.2 Sistema de control de fugas de agua con HTTP RESTful 274
8. SERVICIO PUSHBULLET 283
8.1 Acceso al servicio Pushbullet 283
8.2 API HTTP 288
8.3 Practicas 293
8.3.1 Alarma por apertura de puertas
o ventanas con sensor magnetico 294
8.3.2 Boton de emergencia para personas
con necesidades especiales 299
9. SERVICIO IFTTT 305
9.1 Acceso al servicio IFTTT 306
9.2 Componentes basicos de la plataforma 307
9.2.1 Servicios 307
9.2.2 Applets 308
9.2.3 Widgets 308
9.3 Tecnologia webhook 309
9.4 Practicas 310
9.4.1 Notificacion de fuga de agua
con Webhooks y Pushbullet 311
9.4.1.1 Creacion del applet IFTTT 312
9.4.1.2 Desarrollo del programa WEMOS 320
9.4.2 Control de presencia con Beebotte,
Webhooks y Pushbullet 324
9.4.2.1 Creacion del applet IFTTT 325
9.4.2.2 Creacion del canal
y la regla en Beebotte 326
9.4.2.3 Desarrollo del programa WEMOS 329
9.4.3 Sistema buscapersonas con Google Assistant,
Webhooks y Beebotte 333
9.4.3.1 Creacion del canal
y el recurso en Beebotte 334
9.4.3.2 Creacion del applet IFTTT 336
9.4.3.3 Desarrollo del programa WEMOS 343
9.4.4 Control de luces con Google Assistant,
Webhooks y Beebotte 349
9.4.4.1 Creacion del canal
y los recursos en Beebotte 350
9.4.4.2 Creacion del applet IFTTT 351
9.4.4.3 Desarrollo del programa WEMOS 355
9.4.5 Apertura de la puerta del garaje con Alexa,
Webhooks y Ubidots 359
9.4.5.1 Creacion del applet IFTT 360
9.4.5.2 Desarrollo del programa WEMOS 364
9.4.5.3 Instalacion y prueba de Alexa en el movil 367
9.4.6 Mando a distancia en el movil con Button Widget,
Webhooks y Ubidots 370
9.4.6.1 Creacion del applet IFTT 370
9.4.6.2 Instalacion y prueba de IFTTT en el movil 372