Arduino - Sistema de enfriamiento con sensor DHT

En este tutorial, vamos a controlar la temperatura utilizando un ventilador y un sensor DHT11 o DHT22. Cuando la temperatura sea demasiado alta, encienda el ventilador de enfriamiento. Cuando la temperatura sea fría, apague el ventilador de enfriamiento. Si desea usar un sensor DS18B20 en lugar del sensor DHT, consulte Arduino - Sistema de enfriamiento usando Sensor DS18B20.

Acerca del ventilador de enfriamiento y del sensor DHT

El ventilador de enfriamiento utilizado en este tutorial utiliza una fuente de alimentación de 12 V. Si se suministra energía al ventilador, este se enciende, y viceversa. Para controlarlo con Arduino, necesitamos usar un relé intermedio.

Si no sabes sobre el sensor de temperatura y el ventilador (conexiones de pines, cómo funcionan, cómo programarlos ...), aprende sobre ellos en los siguientes tutoriales:

Diagrama de Cableado

  • Diagrama de cableado con módulo DHT11
Diagrama de cableado del sistema de enfriamiento con Arduino

This image is created using Fritzing. Click to enlarge image

  • Diagrama de cableado con el módulo DHT22
Diagrama de cableado del sistema de ventilador de enfriamiento para Arduino

This image is created using Fritzing. Click to enlarge image

Cómo funciona el sistema

  • Arduino lee la temperatura del sensor de temperatura
  • Si la temperatura excede un umbral superior, Arduino enciende el ventilador
  • Si la temperatura cae por debajo de un umbral inferior, Arduino apaga el ventilador

El proceso anterior se repite infinitamente en el bucle.

Si quieres encender el ventilador cuando la temperatura supere un valor específico y apagarlo cuando esté por debajo de ese mismo valor, solo necesitas establecer el umbral superior y el umbral inferior al mismo valor.

Código de Arduino

Código de Arduino para el sistema de enfriamiento con sensor DHT11

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-cooling-system-using-dht-sensor */ #include "DHT.h" #define RELAY_FAN_PIN A5 // Arduino pin connected to relay which connected to fan #define DHTPIN 12 // Arduino pin connected to relay which connected to DHT sensor #define DHTTYPE DHT11 const int TEMP_THRESHOLD_UPPER = 25; // upper threshold of temperature, change to your desire value const int TEMP_THRESHOLD_LOWER = 20; // lower threshold of temperature, change to your desire value DHT dht(DHTPIN, DHTTYPE); float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // initialize serial dht.begin(); // initialize the sensor pinMode(RELAY_FAN_PIN, OUTPUT); // initialize digital pin as an output } void loop() { // wait a few seconds between measurements. delay(2000); temperature = dht.readTemperature();; // read temperature in Celsius if (isnan(temperature)) { Serial.println("Failed to read from DHT sensor!"); } else { if(temperature > TEMP_THRESHOLD_UPPER){ Serial.println("The fan is turned on"); digitalWrite(RELAY_FAN_PIN, HIGH); // turn on } else if(temperature < TEMP_THRESHOLD_LOWER){ Serial.println("The fan is turned off"); digitalWrite(RELAY_FAN_PIN, LOW); // turn on } } }

Código de Arduino para el sistema de enfriamiento con sensor DHT22

/* * Este código de Arduino fue desarrollado por es.newbiely.com * Este código de Arduino se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino/arduino-cooling-system-using-dht-sensor */ #include "DHT.h" #define RELAY_FAN_PIN A5 // Arduino pin connected to relay which connected to fan #define DHTPIN 12 // Arduino pin connected to relay which connected to DHT sensor #define DHTTYPE DHT22 const int TEMP_THRESHOLD_UPPER = 25; // upper threshold of temperature, change to your desire value const int TEMP_THRESHOLD_LOWER = 20; // lower threshold of temperature, change to your desire value DHT dht(DHTPIN, DHTTYPE); float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // initialize serial dht.begin(); // initialize the sensor pinMode(RELAY_FAN_PIN, OUTPUT); // initialize digital pin as an output } void loop() { // wait a few seconds between measurements. delay(2000); temperature = dht.readTemperature();; // read temperature in Celsius if (isnan(temperature)) { Serial.println("Failed to read from DHT sensor!"); } else { if(temperature > TEMP_THRESHOLD_UPPER){ Serial.println("The fan is turned on"); digitalWrite(RELAY_FAN_PIN, HIGH); // turn on } else if(temperature < TEMP_THRESHOLD_LOWER){ Serial.println("The fan is turned off"); digitalWrite(RELAY_FAN_PIN, LOW); // turn on } } }

En los códigos anteriores, el Arduino enciende el ventilador cuando la temperatura supera los 25 °C y mantiene el ventilador encendido hasta que la temperatura esté por debajo de los 20 °C.

Pasos R\u00e1pidos

  • Conecta Arduino al PC mediante un cable USB
  • Abre el IDE de Arduino, selecciona la placa y el puerto correctos
  • Navega hasta el icono de Bibliotecas en la barra izquierda del IDE de Arduino.
  • Busca “DHT”, luego encuentra la biblioteca de sensores DHT de Adafruit
  • Haz clic en el botón Instalar para instalar la biblioteca.
Biblioteca de sensores DHT para Arduino
  • Se le pedirá instalar algunas otras dependencias de la biblioteca
  • Haga clic en el botón Instalar todo para todas las dependencias de la biblioteca.
Biblioteca de sensores unificados de Adafruit para Arduino
  • Copie el código anterior correspondiente al sensor que tiene y ábralo con Arduino IDE
  • Haga clic en el botón Subir en Arduino IDE para subir el código a Arduino
  • Haga que el entorno alrededor del sensor esté más caliente o más frío
  • Vea el estado del ventilador

Conocimientos Avanzados

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 el 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.

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!