InicioTarjetas de DesarrolloESP32Dashboard con ThingSpeak IOT, ESP32 y DS18B20 Sumergible

Dashboard con ThingSpeak IOT, ESP32 y DS18B20 Sumergible

En este tutorial aprenderás a cómo crear un Dashboards utilizando los siguientes recursos: plataforma de Thing Speak IOT, sensor DS18B20 y un ESP32. A fin de enviar las lecturas del sensor DS18B20 a la plataforma ThingSpeak IOT utilizando la placa ESP32, deberás seguir los siguientes pasos:

Lista de materiales:
  • ESP32 DEVKITV1
  • Sensor DS18B20
  • Mini Protoboard 170 Pts
  • ¿Cómo conectar el DS18B20 a un ESP32?

    • El sensor cuenta con tres pines, el pin de tierra o GND, señal o DQ y alimentación o VCC
    • Soporta el sensor DS18B20 una alimentación de hasta 3V y 5.5V
    • Para conectar el DS18B20 al ESP32 debes conectar el pin de VCC a la salida de 3.3v del ESP32
    • Conectar los pines de GND a GND
    • El pin DQ conectarlo al pin D4 digital del ESP32
    • Conecta una resistencia de 4.7k en modo Pull-Up entre el pin de datos y VCC

    Te mostrare a continuación la imagen de las conexiones:

    Antes de iniciar con el Dashboards, deberás haber realizado las conexiones del sensor DS18B20 al ESP32.

    1- Crear una cuenta en ThingSpeak IOT

    • Crea una cuenta en ThingSpeak IOT, accede al enlace y selecciona “Empiece gratis”
    • Después llene el formulario de registro, se te enviara un correo para confirmar la cuenta
    • De clic en continuar y te pedirá que ingreses una contraseña
    • Acepta los términos y continua con el proceso
    • Inicia sesión ingresando el correo de registro y la contraseña

    En la siguiente imagen se muestra el ejemplo de cómo hacer el proceso para crear la cuenta:

    2- Agregar un nuevo canal en ThingSpeak IOT

    • Inicia sesión en ThingSpeak
    • Agrega un nuevo canal en New Channel, da clic en el y te saldrá un formulario
    • llena el formulario ingresando nombre, descripción, cambia el nombre al field, este debe estar seleccionado
    • Ignora los demás parámetros y da clic en Save Channel

    Lo siguiente que debes hacer es modificar el nombre, el valor mínimo y el valor máximo de la grafica que se genero. Para esto dirigirte al icono con forma de lápiz, da clic y te saldrá una nueva ventana, en ella deberás agregar los siguientes parámetros:

    • Agrega un titulo a la grafica
    • En el eje Y (Y-Axis Min) el valor 0
    • En el eje Y (Y-Axis Max) el valor 50

    Recuerda que tu puedes agregar los valores mínimos y máximos a tu conveniencia. En la siguiente imagen se muestra los pasos qué debes seguir:

    3- Obtener Channel_ID y WRITE API KEY de ThingSpeak IOT

    Ya que has agregado el canal y la configuración de la grafica, es indispensable conocer los siguientes parámetros: Channel_ID y WRITE API KEY. Estos parámetros los permitirán conectar el ESP32 a ThingSpeak y asignar los datos de temperatura qué estará enviando.

    Para saber donde encontrarlos dirígete a la pestaña de API KEYS, dar clic y tendrás los parámetros. Más adelante los necesitaremos para insértalos en el código.

    En la siguiente imagen tendrás los pasos para obtener estos parámetros:

    4- Parámetros que necesitara la placa ESP32 para conectarse a ThingSpeak IOT

    Para importar la librería, abre el IDE de Arduino dirigirte a la pestaña programa y da un clic en “Incluir Librería” y se desplegara una ventana, selecciona la opción de “Añadir biblioteca .ZIP”, después selecciona la librería que descargaste anteriormente.

    Después crea un nuevo proyecto en Arduino IDE, copia y pega el siguiente código:

    /*El ejemplo envia la varible de Temperatura a ThingSpeak utilizando la placa ESP32*/ 
    /****************************************
    *Definir libreris, instancias y constantes
    *para la conexion WIFI
    ****************************************/
    #include <WiFi.h>
    const char * ssid = "----"; // Ingrese su nombre red wifi
    const char * pass = "-----"; //Ingresa la contraseña de tu red
    WiFiClient client;
    
    /****************************************
    *Definir librería, instancias y constantes
    *para la conexión a ThingSpeak
    ****************************************/
    #include "ThingSpeak.h"
    unsigned long Channel_ID = 0000; //Ingrese su numero de canal de ThingSpeak
    const char * WriteAPIKey = "---"; //Ingrese su clave de API de escritura de canal
    
    /****************************************
    *Definir librería, instancias y constantes
    *para del sensor DS18B20
    ****************************************/
    #include <OneWire.h> 
    #include <DallasTemperature.h>
    OneWire ourWire(4); //Se establece el pin 4 del ESP32 para la lectura del sensor
    DallasTemperature DS18B20(&ourWire); //Se declara una variable u objeto para el sensor
    
    /****************************************
    *Funciones principales
    ****************************************/
    
    void setup()
    {
    Serial.begin(115200); //Iniciar el monitor serie
    Serial.println("Iniciando conexión Wifi"); //Imprimir mensaje de conexión a la red Wifi
    WiFi.begin(ssid, pass); //Se inicia la conexión al Wifi
    //Minetras se conecta imprimirá ...
    while(WiFi.status() != WL_CONNECTED){
      delay(500);
      Serial.print(".");
    //Ya que se estableció la conexión al Wifi se imprime conexión establecida
    Serial.println("Conexion establecida");
    ThingSpeak.begin(client); //Iniciar el servidor de ThingSpeak
    DS18B20.begin(); //Se inicia el sensor DS18B20
    }
    
    void loop()
    leer_sensor_DS18B20(); //Función para lectura del sensor
    //Transmitir los datos al sevidor ThingSpeak
    ThingSpeak.writeFields(Channel_ID, WriteAPIKey);
    Serial.println("Datos enviados a ThingSpeak");
    delay(2000);
    }
    
    //Función para leer el sensor y asignar los campos a ThingSpeak
    void leer_sensor_DS18B20(){ 
    DS18B20.requestTemperatures(); //Se envía el comando para leer la temperatura
    float tem= DS18B20.getTempCByIndex(0); //Se obtiene la temperatura en ºC
    Serial.print("Temperatura= ");
    Serial.print(tem);
    Serial.println(" °C");
    delay(2000); 
    //Signar en ThingSpeak al campo 1 la lectura de temperatura
    ThingSpeak.setField(1, tem); 
    }
    

    Ya que tienes el código y sabes dónde están los parámetros de Channel_ID y WRITE API KEY, deberás copiar y pegar estos parámetros en el código, en la línea de código unsigned long Channel_ID = 0000;, borrar los ceros y pegar el Channel ID y en la linea const char * WriteAPIKey = “—“; pegar dentro de las comillas el WriteAPIKey.

    Lo último que tendrás que agregar en el código será una conexión a Internet, ingresando el nombre de tu red wifi y la contraseña.

    5- Programar la placa ESP32 para conectarse a ThingSpeak IOT

    Recuerda seleccionar la placa NodeMCU-32S, conectar el ESP32 al PC tenido las conexiones que al principio del tutorial se explicaron, después verificar el puerto COM, compilar y cargar el código a tu ESP32.

    Para verificar que todo salido bien abre el monitor serie, definir la velocidad de baudios a “115200”, cambiar a “Ambos NL & CR” y dar un reset a la placa ESP32.

    De esta manera ya tendrás lista tu aplicación de Internet de las cosas “IOT”. Si has seguido todos los pasos ya tendrás bien configurado la plataforma de ThingSpeak IOT para visualizar y almacenar la lectura de temperatura del sensor DS18B20 y la placa ESP32.

    El resultado que obtendrás será el siguiente:

TUTORIALES RELACIONADOS