8.6 Monitoreo de Temperatura y Humedad con Adafruit IO

En este proyecto, te guiaremos sobre cómo usar una plataforma de IoT popular. Hay muchas plataformas gratuitas (o de bajo costo) disponibles en línea para los entusiastas de la programación. Algunos ejemplos son Adafruit IO, Blynk, Arduino Cloud, ThingSpeak, etc. El uso de estas plataformas es bastante similar. Aquí, nos centraremos en Adafruit IO.

Escribiremos un programa de Arduino que utiliza el sensor DHT11 para enviar lecturas de temperatura y humedad al tablero de Adafruit IO. También puedes controlar un LED en el circuito a través de un interruptor en el tablero.

Componentes Requeridos

Para este proyecto, necesitaremos los siguientes componentes.

Definitivamente es conveniente comprar un kit completo, aquí está el enlace:

Nombre

ARTÍCULOS EN ESTE KIT

ENLACE

Kit de Inicio ESP32

320+

ESP32 Starter Kit

También puedes comprarlos por separado desde los enlaces a continuación.

INTRODUCCIÓN DEL COMPONENTE

ENLACE DE COMPRA

ESP32 WROOM 32E

BUY

Extensión de Cámara ESP32

-

Protoboard

BUY

Cables Puente

BUY

Resistor

BUY

LED

BUY

Sensor de Humedad y Temperatura DHT11

BUY

Configuración del Tablero

  1. Visita Adafruit IO, luego haz clic en Comenzar gratis para crear una cuenta gratuita.

    ../../_images/sp230516_102503.png
  2. Completa el formulario para crear una cuenta.

    ../../_images/sp230516_102629.png
  3. Después de crear una cuenta en Adafruit, necesitarás reabrir Adafruit io. Haz clic en Tableros, luego en Nuevo Tablero.

    ../../_images/sp230516_103347.png
  4. Crea un Nuevo Tablero.

    ../../_images/sp230516_103744.png
  5. Ingresa al Tablero recién creado y crea un nuevo bloque.

    ../../_images/sp230516_104234.png
  6. Crea 1 bloque Interruptor.

    ../../_images/sp230516_105727.png
  7. A continuación, necesitarás crear un nuevo canal aquí. Este interruptor se utilizará para controlar el LED, y nombraremos este canal «LED».

    ../../_images/sp230516_105641.png
  8. Verifica el canal LED, luego avanza al siguiente paso.

    ../../_images/sp230516_105925.png
  9. Completa la configuración del bloque (principalmente Título del Bloque, Texto de Encendido y Texto de Apagado), luego haz clic en el botón Crear bloque en la parte inferior derecha para finalizar.

    ../../_images/sp230516_110124.png
  10. También necesitaremos crear dos Bloques de Texto a continuación. Se utilizarán para mostrar la temperatura y la humedad. Por lo tanto, crea dos canales denominados temperatura y humedad.

    ../../_images/sp230516_110657.png
  11. Después de la creación, tu Tablero debería verse algo así:

    ../../_images/sp230516_111134.png
  12. Puedes ajustar el diseño utilizando la opción Editar Diseño en el Tablero.

    ../../_images/sp230516_111240.png
  13. Haz clic en CLAVE API, y verás tu nombre de usuario y CLAVE API mostrados. Anótalos, ya que los necesitarás para tu código.

    ../../_images/sp230516_111641.png

Ejecutando el Código

  1. Construye el circuito.

    ../../_images/iot_6_adafruit_io_bb.png
  2. Luego, conecta el ESP32-WROOM-32E al ordenador mediante el cable USB.

    ../../_images/plugin_esp32.png
  3. Abre el código.

    • Abre el archivo iot_6_adafruit_io.ino ubicado en el directorio esp32-starter-kit-main\c\codes\iot_6_adafruit_io, o copia el código en el IDE de Arduino.

    • Después de seleccionar la placa (ESP32 Dev Module) y el puerto apropiado, haz clic en el botón Subir.

    • ¿Siempre aparece «COMxx desconocido»?

    • Aquí se utilizan la Biblioteca Adafruit_MQTT y la Biblioteca del sensor DHT, puedes instalarlas desde el Gestor de Bibliotecas.

  4. Encuentra las siguientes líneas y reemplaza <SSID> y <PASSWORD> con los detalles específicos de tu red WiFi.

    /************************* WiFi Access Point *********************************/
    
    #define WLAN_SSID "<SSID>"
    #define WLAN_PASS "<PASSWORD>"
    
  5. Luego reemplaza <TU_NOMBRE_DE_USUARIO_ADAFRUIT_IO> con tu nombre de usuario de Adafruit IO y <TU_CLAVE_ADAFRUIT_IO> con la CLAVE API que acabas de copiar.

    // Adafruit IO Account Configuration
    // (to obtain these values, visit https://io.adafruit.com and click on Active Key)
    #define AIO_USERNAME "<YOUR_ADAFRUIT_IO_USERNAME>"
    #define AIO_KEY      "<YOUR_ADAFRUIT_IO_KEY>"
    
  6. Después de seleccionar la placa correcta (ESP32 Dev Module) y el puerto correspondiente, haz clic en el botón Subir para cargar el programa a tu ESP32.

  7. Una vez que el código se haya subido con éxito, observarás el siguiente mensaje en el monitor serial, indicando una comunicación exitosa con Adafruit IO.

    Adafruit IO MQTTS (SSL/TLS) Example
    
    
    Connecting to xxxxx
    WiFi connected
    IP address:
    192.168.18.76
    Connecting to MQTT... MQTT Connected!
    Temperature: 27.10
    Humidity: 61.00
    
  8. Regresa a Adafruit IO. Ahora puedes observar las lecturas de temperatura y humedad en el tablero de control, o utilizar el interruptor de palanca LED para controlar el estado de encendido/apagado del LED externo conectado al circuito.

    ../../_images/sp230516_143220.png