ESP32 - Sistema de enfriamiento con sensor de temperatura DS18B20

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

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×12V DC Ventilador de Refrigeración
1×(Alternativo) 5V DC Ventilador de Refrigeración
1×Adaptador de Corriente 12V
1×Protoboard
1×Cables Puente
1×(Opcional) Conector de Alimentación DC
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 ventilador de enfriamiento y del sensor de temperatura DS18B20

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

Diagrama de Cableado

  • Diagrama de cableado con protoboard
Diagrama de cableado del sensor de temperatura del ESP32 para el sistema de enfriamiento

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 ventilador ESP32 DS18B20

This image is created using Fritzing. Click to enlarge image

Para facilitar la conexión, es recomendable adquirir un sensor DS18B20 que viene con un adaptador de cableado equipado con una resistencia integrada, eliminando la necesidad de una resistencia adicional en el cableado.

Cómo funciona el sistema

  • El ESP32 lee la temperatura desde el sensor de temperatura DS18B20
  • Si la temperatura supera 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

El ESP32 sigue comprobando la temperatura indefinidamente.

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

Código ESP32

/* * 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-ds18b20-temperature-sensor */ #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_FAN_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 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 } delay(500); }

El código de ESP32 anterior enciende automáticamente el ventilador si la temperatura es superior a 30 °C y mantiene 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 tal como en la imagen anterior.
  • Conecta la placa ESP32 a tu PC mediante un cable micro USB.
  • Abre Arduino IDE en tu PC.
  • Selecciona la placa ESP32 correcta (p. ej. ESP32 Dev Module) y el puerto COM.
  • Haz clic en el icono de Bibliotecas en la barra izquierda del IDE de Arduino.
  • Busca “DallasTemperature” en la caja de búsqueda, luego busca la biblioteca DallasTemperature de Miles Burton.
  • Haz clic en el botón Instalar para instalar la biblioteca DallasTemperature.
Biblioteca 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
  • Copie el código anterior y péguelo en el IDE de Arduino.
  • Compile y cargue el código en la placa ESP32 haciendo clic en el botón Subir en el IDE de Arduino.
  • Haga que el sensor esté más frío o más caliente. Por ejemplo, coloque el sensor cerca de una taza de café caliente.
  • Verifique 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 'bang-bang' o el señalador). Este algoritmo es sencillo de implementar y funciona bien en el control de la 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 ampliamente 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!