1. INTERNET DE LAS COSAS 1
1.1 Componentes de un sistema IoT .........................................................2
2. COMUNICACIONES WEB 5
2.1 La familia de protocolos Internet ........................................................ 6
2.2 El ESP-01 ................................................................................................. 9
2.2.1 La librería ESP8266WiFi ..............................................................16
2.2.2 Prácticas ........................................................................................18
2.2.2.1 Conexión a la red wifi .......................................................18
2.2.2.2 Cliente web ........................................................................20
2.2.2.3 Servidor web ......................................................................24
2.3 El protocolo HTTP ............................................................................... 30
2.3.1 Peticiones HTTP ...........................................................................32
2.3.1.1 Peticiones de tipo GET y POST .........................................34
2.3.2 Respuestas HTTP ..........................................................................35
2.3.3 Prácticas ........................................................................................36
2.3.3.1 Servidor web avanzado .....................................................36
2.3.3.2 Asignación de valores a los pines de un ESP-01
desde un navegador ..........................................................44
2.3.3.3 Obtención del valor de los pines de un ESP-01
desde un navegador ..........................................................56
2.4 Utilidades de análisis de mensajes HTTP del navegador Chrome ...65
2.5 La herramienta Postman ....................................................................68
2.5.1 Instalación ....................................................................................69
2.5.2 Creación y envío de peticiones HTTP ........................................70
2.5.2.1 Peticiones de tipo GET ......................................................73
2.5.2.2 Peticiones de tipo POST ....................................................76
2.5.3 Obtención de respuestas HTTP ..................................................78
3. COMUNICACIONES MQTT 81
3.1 El protocolo MQTT ..............................................................................81
3.1.1 Conexión con el bróker ...............................................................83
3.1.2 Publicación y suscripción de mensajes .....................................85
3.2 El WEMOS D1 R1 .................................................................................86
3.2.1 La librería PubSubClient ..............................................................89
3.3 La herramienta MQTT Explorer ......................................................... 91
3.4 Prácticas ................................................................................................ 98
3.4.1 Enchufe domótico ........................................................................99
3.4.2 Sensor de temperatura ............................................................. 106
3.4.2.1 Publicación de mensajes con retención activada ....... 114
3.4.2.2 Detección de la desconexión del dispositivo .............. 115
3.4.3 Termómetro digital ................................................................... 116
3.4.4 Alarma con sensor de movimiento ......................................... 122
3.4.4.1 Sistema emisor ? PIR ..................................................... 122
3.4.4.2 Sistema receptor ? Sirena electrónica .......................... 127
3.4.5 Control de la calefacción desde un móvil con IoT MQTT
panel ........................................................................................... 133
4. FORMATO DE DATOS JSON 151
5. COMUNICACIONES REST 155
5.1 La librería HTTP aRest ..................................................................... 157
5.2 Prácticas ............................................................................................. 161
5.2.1 Asignación de valores a los pines digitales de un dispositivo
ESP8266 ...................................................................................... 161
5.2.2 Control remoto .......................................................................... 167
5.2.3 Control remoto inteligente ...................................................... 171
5.2.4 Medición de la humedad del suelo ......................................... 181
6. EL SERVICIO UBIDOTS 189
6.1 Acceso al servicio Ubidots ............................................................... 190
6.2 Componentes básicos de la plataforma ......................................... 196
6.2.1 Dispositivos ............................................................................... 196
6.2.2 Variables ..................................................................................... 197
6.2.3 Cuadro de mando ...................................................................... 201
6.2.4 Eventos ....................................................................................... 207
6.3 Integración de dispositivos ESP8266 con el servicio Ubidots ..... 216
6.3.1 El API HTTP ............................................................................... 217
6.3.2 El API MQTT .............................................................................. 219
6.3.3 La librería UbidotsESPMQTT ................................................... 221
6.4 Prácticas ............................................................................................. 223
6.4.1 Estación meteorológica ............................................................ 223
6.4.1.1 Desarrollo del sketch con HTTP RESTful ..................... 225
6.4.1.2 Creación del cuadro de mando ..................................... 233
6.4.1.3 Desarrollo del sketch con MQTT .................................. 240
6.4.2 Sistema de control de riego ...................................................... 246
6.4.2.1 Desarrollo del sketch con UbidotsESPMQTT .............. 248
6.4.2.2 Creación del cuadro de mando ..................................... 254
7. EL SERVICIO PUSHBULLET 261
7.1 Acceso al servicio Pushbullet .......................................................... 262
7.2 El API HTTP ....................................................................................... 267
7.3 Prácticas ............................................................................................. 273
7.3.1 Alarma por apertura de puertas o ventanas con sensor
magnético ................................................................................... 273
7.3.2 Botón de emergencia para personas con necesidades
especiales ................................................................................... 279
8. EL SERVICIO IFTTT 285
8.1 Acceso al servicio IFTTT .................................................................. 286
8.2 Componentes básicos de la plataforma ......................................... 289
8.2.1 Servicios ..................................................................................... 289
8.2.2 Applets ........................................................................................ 291
8.2.3 Widgets ....................................................................................... 292
8.3 Prácticas ............................................................................................. 293
8.3.1 Notificación de fuga de agua .................................................... 293
8.3.1.1 Creación del applet IFTTT ............................................. 294
8.3.1.2 Desarrollo del sketch ..................................................... 306
8.3.2 Sistema de control de presencia .............................................. 310
8.3.2.1 Creación del applet IFTTT ............................................. 311
8.3.2.2 Desarrollo del sketch ..................................................... 312
8.3.2.3 Creación del evento Ubidots ......................................... 315
8.3.3 Apertura de la puerta del garaje con Alexa ............................ 319
8.3.3.1 Creación del applet IFTTT ............................................. 320
8.3.3.2 Instalación de Alexa en el móvil .................................. 325
8.3.3.3 Desarrollo del sketch ..................................................... 327
8.3.4 Mando a distancia en el móvil ................................................. 329
8.3.4.1 Creación del applet IFTTT ............................................. 330
8.3.4.2 Instalación de IFTTT en el móvil .................................. 331
Descubra cómo simplificar sus obligaciones y proteger su entorno con la automatización de tareas controladas a través de Internet. Aunque el término IoT admite múltiples definiciones, en todas ellas se hace referencia a la conexión e intercambio de datos entre todo tipo de objetos a través de Internet. Dicha capacidad de comunicación es el principal motivo de la expansión de esta tecnología, ya que facilita su acceso desde cualquier lugar y dispositivo. Incluso, permite la colaboración entre ellos y, en consecuencia, la ejecución de tareas automáticas que amplían significativamente su utilidad. Desde el punto de vista técnico, la implantación de IoT es posible gracias al auge de protocolos y arquitecturas de comunicación estándar que propician su empleo en microcontroladores pequeños y baratos, como los basados en el SoC ESP8266. Por ese motivo, y a partir de un nivel básico, la lectura de este libro le aportará los conocimientos suficientes para manejar con soltura los protocolos HTTP y MQTT, así como las arquitecturas cliente-servidor, publicación-suscripción y REST, comunes en este tipo de sistemas. Todos