ESP32 - DHT22 - Relé

En este tutorial, aprenderemos a usar ESP32 para controlar el relé basado en la temperatura leída por el sensor DHT22.

Acerca del relé y del sensor DHT22

Si no conoces el sensor de temperatura DHT22 y el relé (pinout, cómo funciona, cómo programarlo ...), aprende sobre ellos en los siguientes tutoriales:

Diagrama de Cableado

Diagrama de cableado del ESP32, sensor DHT22 y relé

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

  • El ESP32 lee la temperatura del sensor DHT22.
  • 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 indefinidamente en el bucle.

Si quieres encender el relé cuando la temperatura esté por encima de 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 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-dht22-relay */ #include <DHT.h> #define DHT22_PIN 23 // ESP32 pin GPIO23 connected to DHT22 #define RELAY_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 dht22(DHT22_PIN, DHT_SENSOR_TYPE); void setup() { Serial.begin(9600); // initialize serial dht22.begin(); // initialize the DHT sensor } void loop() { float temperature = dht22.readTemperature();; // read temperature in Celsius if (isnan(temperature)) { Serial.println("Failed to read from DHT22 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 sea inferior a 20 °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 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 Bibliotecas en la barra izquierda de Arduino IDE.
  • Busca “DHT”, luego encuentra la biblioteca del sensor DHT de Adafruit
  • Haz clic en el botón Instalar para instalar la biblioteca.
Biblioteca de sensores DHT para ESP32
  • Se le pedirá instalar algunas otras dependencias de la biblioteca.
  • Haga clic en el botón Instalar todo para instalar todas las dependencias de la biblioteca.
Biblioteca de sensores unificados de Adafruit para ESP32
  • Copia el código anterior correspondiente al sensor que tienes y ábrelo con Arduino IDE
  • 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
  • Observa 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!