InicioTarjetas de DesarrolloESP32Crea tu propio Dashboards de temperatura con ThingSpeak IOT, ESP32 y DS18B20

Crea tu propio Dashboards de temperatura con ThingSpeak IOT, ESP32 y DS18B20

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:

¿Cómo conectar el DS18B20 a un ESP32?

Antes de realizar el Dashboards, deberás hacer primero las conexiones del sensor DS18B20 al 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:

Conexión del sensor DS18B20 con el ESP32

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:

Crear cuenta en ThingSpeak IOT

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:

Configurar Channel en ThingSpeak IOT

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:

Obtener Channel_ID y WRITE API KEY de ThingSpeak IOT

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

Lo siguiente que tendrás que  hacer es descargar e importar al IDE de Arduino la siguiente librería:

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:

Grafica de temperatura con ThingSpeak IOT, ESP32 y el sensor DS18B20

TUTORIALES RELACIONADOS