Arduino - Sistema de enfriamiento utilizando el sensor de temperatura DS18B20

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

Hardware Requerido

1×Arduino Uno R3
1×Cable USB 2.0 tipo A/B (para PC USB-A)
1×Cable USB 2.0 tipo C/B (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×12V DC Ventilador de Refrigeración
1×(Alternativo) 5V DC Ventilador de Refrigeración
1×Adaptador de Corriente 12V
1×Conector de Alimentación DC
1×Cables Puente
1×(Recomendado) Shield de Bloque de Terminales de Tornillo para Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Carcasa para Arduino Uno
1×(Recomendado) Placa Base de Prototipado y Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino 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 ventilador de enfriamiento y del sensor de temperatura DS18B20

El ventilador de enfriamiento utilizado en este tutorial funciona con una fuente de alimentación de 12 V. Si se suministra energía al ventilador, éste se enciende; si no, permanece apagado. Para controlarlo con Arduino, necesitamos usar un relé entre Arduino y el ventilador.

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

Diagrama de Cableado

  • Diagrama de cableado con una placa de pruebas
Diagrama de cableado del sistema de enfriamiento con ventilador para Arduino

This image is created using Fritzing. Click to enlarge image

  • Diagrama de cableado con adaptador (recomendado)
Diagrama de cableado del sistema de ventiladores controlado por sensor de temperatura de Arduino

This image is created using Fritzing. Click to enlarge image

Sugerimos comprar sensor DS18B20 que viene con un adaptador de cableado para una conexión sencilla. El adaptador tiene una resistencia integrada, lo que elimina la necesidad de una resistencia adicional en el cableado.

Cómo funciona el sistema

  • Arduino lee la temperatura del sensor de temperatura
  • Si la temperatura supera 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 esté por encima de un valor específico y apagarlo cuando esté por debajo de ese mismo valor, solo necesitas fijar el umbral superior y el umbral inferior al mismo valor.

Código de Arduino para un sistema de enfriamiento con sensor DS18B20

/* * 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-ds18b20-temperature-sensor */ #include <OneWire.h> #include <DallasTemperature.h> 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 const int SENSOR_PIN = 2; // Arduino pin connected to DS18B20 sensor's DQ pin const int RELAY_FAN_PIN = A5; // Arduino pin connected to relay which connected to fan OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature sensors(&oneWire); // pass oneWire to DallasTemperature library float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // initialize serial sensors.begin(); // initialize the sensor pinMode(RELAY_FAN_PIN, OUTPUT); // initialize digital pin as an output } void loop() { sensors.requestTemperatures(); // send the command to get temperatures temperature = sensors.getTempCByIndex(0); // read temperature in Celsius 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 } delay(500); }

En el código anterior, 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 a la PC mediante un cable USB
  • Abre Arduino IDE, selecciona la placa y el puerto correctos
  • Navega hasta el icono Bibliotecas en la barra izquierda del IDE de Arduino.
  • Busca “DallasTemperature”, luego encuentra la biblioteca DallasTemperature de Miles Burton.
  • Haz clic en el botón Instalar para instalar la biblioteca DallasTemperature.
Librería Dallas Temperature para Arduino
  • Se le pedirá que instale la dependencia de la biblioteca
  • Haga clic en el botón Instalar Todo para instalar la biblioteca OneWire
Biblioteca OneWire para Arduino
  • 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 subir el código al Arduino
  • Haz que el entorno alrededor del sensor esté más caliente o más frío
  • Mira el estado del ventilador

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.

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!