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.
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.
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.
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 GPIO2DS18B20
Sensor TemperaturaThingSpeak
Plataforma IoTImplementación de Código
Implementación completa para enviar datos de temperatura del ESP32 a 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
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
Objetivo: Conectar el ESP32 a la red Wi-Fi.
Materiales necesarios:
- ESP32
- Red Wi-Fi disponible
- Credenciales de acceso
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 principalDS18B20
Sensor de temperaturaWiFi
Conectividad inalámbricaThingSpeak
Plataforma IoT±0.5°C
Precisión10 seg
Intervalo de envío24/7
Monitoreo continuoWeb
Dashboard remotoTroubleshooting y Solución de Problemas
Problemas de Conexión Wi-Fi
AltoSíntomas: ESP32 no se conecta a la red WiFi, conexiones intermitentes
Soluciones:
- Verificar credenciales SSID y contraseña
- Comprobar señal WiFi en la ubicación del ESP32
- Reiniciar el router si es necesario
- Usar WiFi.status() para diagnosticar estado
Lecturas Incorrectas del Sensor
MedioSíntomas: Valores de temperatura erróneos o -127°C
Soluciones:
- Verificar conexiones físicas del DS18B20
- Comprobar resistencia pull-up de 4.7kΩ
- Validar alimentación 3.3V estable
- Usar múltiples lecturas para promediar
Errores de Conexión ThingSpeak
BajoSíntomas: Datos no aparecen en dashboard, errores HTTP
Soluciones:
- Verificar API Key de ThingSpeak
- Comprobar formato de datos enviados
- Respetar límite de 15 segundos entre envíos
- Revisar logs del Serial Monitor
Criterios de Evaluación
Conexión Hardware
Correcta conexión del sensor DS18B20 al ESP32
Conectividad WiFi
Establecimiento estable de conexión a red WiFi
Envío de Datos
Transmisión exitosa de datos a ThingSpeak
Visualización
Correcta visualización en dashboard web