ESP32 - DHT11 - Relé

En este tutorial, vamos a aprender cómo usar el ESP32 para controlar el relé según la temperatura leída por el sensor DHT11.

Acerca de Relé y el sensor DHT11

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

Diagrama de Cableado

Diagrama de cableado del sensor DHT11 y del relé para 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.

Cómo funciona el sistema

  • ESP32 lee la temperatura del sensor DHT11
  • Si la temperatura supera un umbral superior, el ESP32 enciende el relé
  • Si la temperatura cae por debajo de un umbral inferior, el ESP32 apaga el relé

El proceso anterior se repite infinitamente en el bucle.

Si quieres encender y apagar el relé cuando la temperatura esté por encima y por debajo de un valor específico, respectivamente, solo necesitas establecer el umbral superior y el umbral inferior al 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-dht11-relay */ #include <DHT.h> #define DHT11_PIN 23 // ESP32 pin GPIO23 connected to DHT11 #define RELAY_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 dht11(DHT11_PIN, DHT_SENSOR_TYPE); void setup() { Serial.begin(9600); // initialize serial dht11.begin(); // initialize the DHT sensor } void loop() { float temperature = dht11.readTemperature();; // read temperature in Celsius if (isnan(temperature)) { Serial.println("Failed to read from DHT11 sensor!"); } else { if (temperature > TEMP_UPPER_THRESHOLD) { Serial.println("Turn the relay on"); digitalWrite(RELAY_PIN, HIGH); // turn on } else if (temperature < TEMP_LOWER_THRESHOLD) { Serial.println("Turn the relay off"); digitalWrite(RELAY_PIN, LOW); // turn off } } // wait a 1 seconds between readings delay(1000); }

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

Pasos R\u00e1pidos

  • Si esta es la primera vez que usas ESP32, consulta cómo configurar el entorno para ESP32 en Arduino IDE.
  • Realiza el cableado como se muestra 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.
  • Busca “DHT”, luego encuentra la biblioteca de sensores DHT de Adafruit
  • Haz clic en el botón Instalar para instalar la biblioteca.
Librería de sensores DHT para ESP32
  • 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 unificada de sensores de Adafruit para ESP32
  • Copia el código anterior correspondiente al sensor que tienes 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 ESP32
  • Haz que el entorno alrededor del sensor esté más caliente o más frío
  • Consulta el estado del relé

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!