ESP32 - Sistema de Calefacción

En esta guía, aprenderemos a hacer un sistema de calefacción que controle la temperatura de la habitación utilizando un ESP32, un sensor de temperatura DS18B20 y un elemento calefactor. Es tan simple como esto: cuando la habitación se sienta demasiado fría, encenderemos el elemento calefactor, y cuando se caliente, lo apagaremos. Puedes ajustar el código para que funcione con otros sensores de temperatura como el DHT11, DHT22 o LM35, para que tengas la flexibilidad de elegir el sensor que mejor se adapte a tus preferencias.

Hardware Requerido

1×Módulo de Desarrollo ESP32 ESP-WROOM-32
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×Sensor de Temperatura DS18B20 (con Adaptador)
1×Sensor de Temperatura DS18B20 (sin Adaptador)
1×4.7 kΩ Resistor
1×Relé
1×Elemento Calefactor
1×Adaptador de Corriente 12V
1×(Opcional) Conector de Alimentación DC
1×Protoboard
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP32
1×(Recomendado) Breakout Expansion Board for ESP32
1×(Recomendado) Divisor de Alimentación para ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Buy Note: Many DS18B20 sensors available in the market are unreliable. We strongly recommend buying the sensor from the DIYables brand using the link provided above. We tested it, and it worked reliably.

Acerca del elemento calefactor y del sensor de temperatura DS18B20

El elemento calefactor que estamos usando en este tutorial funciona con una fuente de alimentación de 12 voltios. Cuando se suministra energía al elemento calefactor, genera calor. Para permitir el control del ESP32 sobre el elemento calefactor, necesitamos usar un relé. Este relé actúa como el interruptor que permite al ESP32 encender o apagar el elemento calefactor según sea necesario.

Si no conoces el sensor de temperatura y el elemento calefactor (disposición de pines, cómo funciona, cómo programar ...), aprende sobre ellos en los siguientes tutoriales:

Diagrama de Cableado

  • Diagrama de cableado con placa de pruebas
Diagrama de cableado del sistema de calefacción ESP32

This image is created using Fritzing. Click to enlarge image

Si no sabe c\u00f3mo alimentar ESP32 y otros componentes, encuentre instrucciones en el siguiente tutorial: C\u00f3mo alimentar ESP32.

  • Diagrama de cableado con adaptador (recomendado)
Diagrama de cableado del sistema de calefacción con controles de temperatura para ESP32

This image is created using Fritzing. Click to enlarge image

Cómo funciona el sistema

  • ESP32 lee la temperatura del sensor de temperatura
  • Si la temperatura cae por debajo de un umbral inferior, ESP32 enciende los elementos de calefacción
  • Si la temperatura sube por encima de un umbral superior, ESP32 apaga el elemento de calefacción

El proceso anterior se repite infinitamente en el bucle.

Código ESP32 para sistema de enfriamiento con sensor DS18B20

/* * Este código de ESP32 fue desarrollado por es.newbiely.com * Este código de ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp32/esp32-heating-system */ #include <OneWire.h> #include <DallasTemperature.h> #define TEMP_UPPER_THRESHOLD 30 // upper temperature threshold #define TEMP_LOWER_THRESHOLD 15 // lower temperature threshold #define SENSOR_PIN 23 // ESP32 pin GPIO23 connected to DS18B20 sensor's DQ pin #define RELAY_PIN 18 // ESP32 pin GPIO18 connected to relay OneWire oneWire(SENSOR_PIN); DallasTemperature DS18B20(&oneWire); void setup() { Serial.begin(9600); // initialize serial DS18B20.begin(); // initialize the DS18B20 sensor } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures float temperature = DS18B20.getTempCByIndex(0); // read temperature in Celsius if (temperature > TEMP_UPPER_THRESHOLD) { Serial.println("Turn the heating element on"); digitalWrite(RELAY_PIN, HIGH); // turn on } else if (temperature < TEMP_LOWER_THRESHOLD) { Serial.println("Turn the heating element off"); digitalWrite(RELAY_PIN, LOW); // turn off } delay(500); }

En el código anterior, el ESP32 enciende el elemento calefactor cuando la temperatura cae por debajo de 15 °C y mantiene el elemento calefactor encendido hasta que la temperatura esté por encima de 20 °C.

Pasos R\u00e1pidos

  • Si es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
  • Realiza el cableado tal como se muestra en la imagen anterior.
  • Conecta la placa ESP32 a tu PC mediante un cable micro USB.
  • Abre el Arduino IDE en tu PC.
  • Selecciona la placa ESP32 correcta (p. ej. ESP32 Dev Module) y el puerto COM.
  • Haz clic en el icono Bibliotecas en la barra izquierda del IDE de Arduino.
  • Busca “DallasTemperature” en el cuadro de búsqueda, y luego busca la biblioteca DallasTemperature de Miles Burton.
  • Haz clic en el botón Instalar para instalar la biblioteca DallasTemperature.
Biblioteca de Dallas Temperature para ESP32
  • Se le pedirá que instale la dependencia. Haga clic en el botón Instalar todo para instalar la biblioteca OneWire.
Biblioteca OneWire para ESP32
  • Copia el código anterior y ábrelo con el IDE de Arduino
  • Haz clic en el botón Subir en el IDE de Arduino para cargar el código en el ESP32
  • Haz que el entorno alrededor del sensor esté más caliente o más frío
  • Comprueba la temperatura del elemento calefactor y de tu habitación

Conocimiento avanzado

El método de control anterior es el controlador on-off, también conocido como señalador o controlador 'bang-bang'. Este método es muy sencillo de implementar.

Existe un método alternativo llamado controlador PID. Con el controlador PID, la temperatura deseada es más estable, pero es muy difícil de entender e implementar. Por lo tanto, el controlador PID no es popular en el control de temperatura.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!