Módulo 10

Proyecto: monitoreo remoto de temperatura vía dashboard web

Integración con la Nube y IoT

ESP32 Mecatrónica IoT UNAM

Introducción al Monitoreo Remoto de Temperatura

El ESP32 es un chip de bajo costo con conectividad Wi-Fi y Bluetooth integrada, que ha revolucionado la industria de la IoT (Internet of Things) por su versatilidad y facilidad de uso.

ESP32 IoT

Permite la interconexión de objetos cotidianos con la red, posibilitando la creación de sistemas automatizados y controlados a distancia.

Mecatrónica

El ESP32 juega un papel crucial en el diseño de sistemas de control y automatización, integrando diversos elementos en un solo dispositivo.

Aplicaciones Industriales

Monitoreo remoto en industrias alimentaria, farmacéutica o química donde se requiere mantener condiciones específicas de temperatura.

Sistema de Dashboard Web

Mediante el ESP32, es posible leer los datos de un sensor de temperatura, enviarlos a la nube y visualizarlos en un dashboard web desde cualquier lugar del mundo, proporcionando control y monitoreo en tiempo real.

Explicación Técnica Detallada

El ESP32 se comunica con otros dispositivos a través de diversos protocolos de comunicación y tiene la capacidad de leer datos de sensores analógicos y digitales.

1
Protocolos de Comunicación

El ESP32 soporta múltiples protocolos: SPI, I2C, UART, entre otros. Para el monitoreo de temperatura, utilizaremos el sensor DS18B20 que se comunica a través del protocolo OneWire.

2
Programación en Arduino IDE

El ESP32 se programa fácilmente a través del Arduino IDE. Las librerías necesarias incluyen WiFi para conectividad, OneWire para el sensor y HTTPClient para comunicación web.

3
Plataforma ThingSpeak

Utilizamos ThingSpeak para recibir y visualizar datos. Esta plataforma permite crear canales para almacenar datos y generar visualizaciones automáticas, conectándose directamente con el ESP32 vía Wi-Fi.

Diagrama de Conexiones
ESP32
Pin GPIO2
DS18B20
Sensor Temperatura
ThingSpeak
Plataforma IoT

Implementación de Código

Implementación completa para enviar datos de temperatura del ESP32 a ThingSpeak:

Arduino C++ - ESP32 + DS18B20 + ThingSpeak
#include <WiFi.h>
#include <Wire.h>
#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

const char* ssid     = "your_SSID";
const char* password = "your_PASSWORD";
const char* host = "api.thingspeak.com";
String apiKey = "your_API_KEY";

void setup() {
  Serial.begin(115200);
  delay(10);
  sensors.begin();

  WiFi.begin(ssid, password);

  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.println("Connecting to WiFi..");
  }
  Serial.println("Connected to the WiFi network");
}

void loop() {
  sensors.requestTemperatures();
  float tempC = sensors.getTempCByIndex(0);
  
  if(WiFi.status()== WL_CONNECTED){ 
    WiFiClient client;
    if (client.connect(host, 80)) {
      String postStr = apiKey;
      postStr += "&field1=";
      postStr += String(tempC);
      postStr += "\r\n\r\n";

      client.print("POST /update HTTP/1.1\n");
      client.print("Host: api.thingspeak.com\n");
      client.print("Connection: close\n");
      client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
      client.print("Content-Type: application/x-www-form-urlencoded\n");
      client.print("Content-Length: ");
      client.print(postStr.length());
      client.print("\n\n");
      client.print(postStr);
    }
    client.stop();
  }
  // Esperar 10 segundos antes del próximo envío
  delay(10000);
}
Explicación del Código
Sensor DS18B20

Sensor digital de temperatura conectado al pin GPIO2 del ESP32

Conexión WiFi

Establece conexión a la red WiFi y muestra la dirección IP asignada

Envío a ThingSpeak

Utiliza HTTP POST para enviar datos al canal de ThingSpeak cada 10 segundos

Ejercicios Prácticos Visuales

1

Conexión del Sensor DS18B20

Básico 30 min

Objetivo: Conectar el sensor DS18B20 al ESP32 y leer la temperatura.

Materiales necesarios:

  • ESP32
  • Sensor DS18B20
  • Resistencia de 4.7k ohms
  • Cables de conexión
2

Conexión WiFi ESP32

Básico 15 min

Objetivo: Conectar el ESP32 a la red Wi-Fi.

Materiales necesarios:

  • ESP32
  • Red Wi-Fi disponible
  • Credenciales de acceso
3

Envío de Datos a ThingSpeak

Intermedio 45 min

Objetivo: Enviar los datos de temperatura leídos por el ESP32 a ThingSpeak.

Materiales necesarios:

  • ESP32
  • Sensor DS18B20
  • Red Wi-Fi
  • Cuenta de ThingSpeak

Proyecto Aplicado

Monitoreo Remoto de Temperatura en Cadena de Frío

Sistema completo de monitoreo de temperatura usando ESP32, sensor DS18B20 y dashboard web para industrias que requieren control de cadena de frío.

Objetivos del Proyecto
  • Integrar ESP32 con sensor DS18B20 para captura de datos de temperatura
  • Establecer conexión WiFi estable y confiable
  • Enviar datos estructurados a plataforma ThingSpeak
  • Crear dashboard web para visualización en tiempo real
  • Implementar alertas automáticas por umbrales críticos
  • Garantizar monitoreo continuo 24/7
ESP32
Microcontrolador principal
DS18B20
Sensor de temperatura
WiFi
Conectividad inalámbrica
ThingSpeak
Plataforma IoT

±0.5°C

Precisión

10 seg

Intervalo de envío

24/7

Monitoreo continuo

Web

Dashboard remoto

Troubleshooting y Solución de Problemas

Problemas de Conexión Wi-Fi
Alto

Síntomas: ESP32 no se conecta a la red WiFi, conexiones intermitentes

Soluciones:

  1. Verificar credenciales SSID y contraseña
  2. Comprobar señal WiFi en la ubicación del ESP32
  3. Reiniciar el router si es necesario
  4. Usar WiFi.status() para diagnosticar estado
Lecturas Incorrectas del Sensor
Medio

Síntomas: Valores de temperatura erróneos o -127°C

Soluciones:

  1. Verificar conexiones físicas del DS18B20
  2. Comprobar resistencia pull-up de 4.7kΩ
  3. Validar alimentación 3.3V estable
  4. Usar múltiples lecturas para promediar
Errores de Conexión ThingSpeak
Bajo

Síntomas: Datos no aparecen en dashboard, errores HTTP

Soluciones:

  1. Verificar API Key de ThingSpeak
  2. Comprobar formato de datos enviados
  3. Respetar límite de 15 segundos entre envíos
  4. Revisar logs del Serial Monitor

Criterios de Evaluación

Conexión Hardware
25%

Correcta conexión del sensor DS18B20 al ESP32

Conectividad WiFi
20%

Establecimiento estable de conexión a red WiFi

Envío de Datos
30%

Transmisión exitosa de datos a ThingSpeak

Visualización
25%

Correcta visualización en dashboard web

Referencias Adicionales

Documentación Oficial