ESP32 - Sistema de enfriamiento con sensor DHT

Este tutorial te enseña cómo hacer un sistema de enfriamiento utilizando ESP32, sensor de temperatura DHT11/DHT22 y un ventilador. En detalle:

Acerca del ventilador de enfriamiento y del sensor DHT

Tenemos tutoriales específicos sobre un sensor de temperatura y un ventilador. Cada tutorial contiene información detallada e instrucciones paso a paso sobre el pinout del hardware, el principio de funcionamiento, la conexión de cableado al ESP32 y el código para ESP32... Obtenga más información sobre ellos en los siguientes enlaces:

Diagrama de Cableado

  • Diagrama de cableado con el módulo DHT11
Diagrama de cableado del sistema de enfriamiento del 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 el módulo DHT22
Diagrama de cableado del sistema de enfriamiento con ventilador ESP32

This image is created using Fritzing. Click to enlarge image

Cómo funciona el sistema

  • El ESP32 lee la temperatura del sensor DHT11 o DHT22.
  • Si la temperatura está por encima de un umbral superior, el ESP32 enciende automáticamente el ventilador.
  • Si la temperatura está por debajo de un umbral inferior, el ESP32 apaga automáticamente el ventilador.

ESP32 sigue comprobando la temperatura indefinidamente.

El umbral inferior y el umbral superior pueden tener el mismo valor.

Código ESP32

Código ESP32 para el sensor DHT11

/* * 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-cooling-system-using-dht-sensor */ #include <DHT.h> #define DHT_SENSOR_PIN 23 // ESP32 pin GPIO23 connected to DHT11 #define RELAY_FAN_PIN 18 // ESP32 pin GPIO18 connected to relay #define DHT_SENSOR_TYPE DHT11 #define TEMP_UPPER_THRESHOLD 30 // upper temperature threshold #define TEMP_LOWER_THRESHOLD 15 // lower temperature threshold DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { Serial.begin(9600); // initialize serial dht_sensor.begin(); // initialize the DHT sensor } void loop() { float temperature = dht_sensor.readTemperature();; // read temperature in Celsius if (isnan(temperature)) { Serial.println("Failed to read from DHT sensor!"); } else { if (temperature > TEMP_UPPER_THRESHOLD) { Serial.println("Turn the fan on"); digitalWrite(RELAY_FAN_PIN, HIGH); // turn on } else if (temperature < TEMP_LOWER_THRESHOLD) { Serial.println("Turn the fan off"); digitalWrite(RELAY_FAN_PIN, LOW); // turn off } } // wait a 2 seconds between readings delay(2000); }

Código ESP32 para sensor DHT22

/* * 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-cooling-system-using-dht-sensor */ #include <DHT.h> #define DHT_SENSOR_PIN 23 // ESP32 pin GPIO23 connected to DHT22 #define RELAY_FAN_PIN 18 // ESP32 pin GPIO18 connected to relay #define DHT_SENSOR_TYPE DHT22 #define TEMP_UPPER_THRESHOLD 30 // upper temperature threshold #define TEMP_LOWER_THRESHOLD 15 // lower temperature threshold DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { Serial.begin(9600); // initialize serial dht_sensor.begin(); // initialize the DHT sensor } void loop() { float temperature = dht_sensor.readTemperature();; // read temperature in Celsius if (isnan(temperature)) { Serial.println("Failed to read from DHT sensor!"); } else { if (temperature > TEMP_UPPER_THRESHOLD) { Serial.println("Turn the fan on"); digitalWrite(RELAY_FAN_PIN, HIGH); // turn on } else if (temperature < TEMP_LOWER_THRESHOLD) { Serial.println("Turn the fan off"); digitalWrite(RELAY_FAN_PIN, LOW); // turn off } } // wait a 2 seconds between readings delay(2000); }

Los códigos de ESP32 anteriores encienden automáticamente el ventilador si la temperatura es superior a 30 °C y mantienen el ventilador encendido hasta que la temperatura esté por debajo de 15 °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 como en la imagen de arriba.
  • Conecta la placa ESP32 a tu PC mediante un cable micro USB.
  • Abre el IDE de Arduino 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.
  • Escribe “DHT” en la caja de búsqueda, luego busca la biblioteca de sensores DHT de Adafruit
  • Instala la biblioteca haciendo clic en el botón Instalar.
Biblioteca de sensores DHT para ESP32
  • Una ventana aparece para pedirle que instale las dependencias de la biblioteca.
  • Instale todas las dependencias de la biblioteca haciendo clic en el botón Instalar todo.
Biblioteca de sensores unificados de Adafruit para ESP32
  • Copia uno de los códigos anteriores y ábrelo con Arduino IDE
  • Compila y sube el código a la placa ESP32 haciendo clic en el botón Subir en Arduino IDE
  • Haz que el sensor esté más frío o más caliente. Por ejemplo, coloca el sensor cerca de una taza de café caliente
  • Verifica el estado del ventilador

Conocimiento Avanzado

  • El algoritmo utilizado en el tutorial anterior para controlar la temperatura se llama el controlador on-off (también conocido como el controlador 'bang-bang' o el señalador). Este algoritmo es simple de implementar y funciona bien en el control de temperatura.
  • Una alternativa al algoritmo anterior es el controlador PID. El controlador PID hace que la temperatura deseada sea más estable. Sin embargo, es muy difícil de entender e implementar. Por lo tanto, el controlador PID no se utiliza mucho en el control de la temperatura.

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ 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!