Arduino Nano ESP32 - Sensor de Temperatura y Humedad

Este tutorial proporciona instrucciones sobre cómo usar un Arduino Nano ESP32 para leer los valores de temperatura y humedad de los sensores DHT11 o DHT22, y mostrarlos en el Monitor Serie.

Acerca del sensor de temperatura y humedad DHT11 y DHT22

En resumen, el sensor DHT22 es más preciso, tiene un rango más amplio, pero es más caro que el DHT11. Veamos las similitudes y las diferencias entre ellos.

Los bienes comunes

  • La misma distribución de pines
  • El mismo cableado para Arduino Nano ESP32
  • El código similar para Arduino Nano ESP32

Las diferencias

La tabla siguiente muestra las diferencias detalladas entre el DHT11 y el DHT22:

DHT22 DHT11
The price low cost ultra low cost
The humidity range 0% to 100% 20% to 80%
The humidity accuracy ± 2% to 5% 5%
The temperature range -40°C to 80°C 0°C to 50°C
The temperature accuracy ± 0.5°C ± 2°C
The reading rate 0.5Hz (one time per 2 seconds) 1Hz (one time per second)
Dimension 15.1mm x 25mm x 7.7mm 15.5mm x 12mm x 5.5mm
Operating Voltage3 to 5V 3 to 5V

Pinout de DHT11 y DHT22

El sensor DHT11 y DHT22 incluye 4 pines:

  • Pin GND: conecta este pin a GND (0V)
  • Pin VCC: conecta este pin a VCC (3.3V o 5V)
  • Pin DATA: el pin se utiliza para comunicar entre el sensor y Arduino Nano ESP32
  • Pin NC: No conectado
Pinout del sensor de temperatura y humedad DHT11 y DHT22

Recomendamos encarecidamente usar los módulos de sensores DHT11 y DHT22. Los módulos tienen una resistencia integrada y solo tienen tres pines: VCC, GND y DATA (o, alternativamente: +, -, y OUT).

Pinout del módulo de temperatura y humedad DHT11 y DHT22
image source: diyables.io

El orden de los pines en el módulo puede ser diferente entre fabricantes. Por favor, verifique cuidadosamente las etiquetas de los pines impresas en el módulo.

Diagrama de cableado entre DHT11/DHT22 y Arduino Nano ESP32

El cableado al Arduino Nano ESP32 es el mismo para ambos sensores. En su forma original, se requiere una resistencia de entre 5 kΩ y 10 kΩ para mantener la línea de datos en nivel alto y para habilitar la comunicación entre el sensor y el Arduino Nano ESP32.

Arduino Nano ESP32 - Cableado del sensor DHT11

Diagrama de cableado del sensor DHT11 de temperatura y humedad para Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Arduino Nano ESP32 - Cableado del sensor DHT22

Diagrama de cableado del sensor de temperatura y humedad DHT22 para Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Arduino Nano ESP32 - Cableado del módulo DHT11

La mayoría de los módulos de sensores DHT22 tienen una resistencia integrada, por lo que no es necesario añadirla. Esto nos ahorra algo de cableado o de soldadura.

Diagrama de cableado del módulo DHT11 de temperatura y humedad para Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Arduino Nano ESP32 - Cableado del módulo DHT22

La mayoría de los módulos de sensores DHT22 tienen una resistencia integrada, por lo que no necesitas añadirla. Esto nos ahorra cableado o trabajos de soldadura.

Diagrama de cableado del módulo DHT22 de temperatura y humedad para Arduino Nano ESP32

This image is created using Fritzing. Click to enlarge image

Código de Arduino Nano ESP32 - DHT11

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-temperature-humidity-sensor */ #include <DHT.h> #define DHT_SENSOR_PIN D3 // The Arduino Nano ESP32 pin D31 connected to DHT11 sensor #define DHT_SENSOR_TYPE DHT11 DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { Serial.begin(9600); dht_sensor.begin(); // initialize the DHT sensor } void loop() { // read humidity float humi = dht_sensor.readHumidity(); // read temperature in Celsius float temperature_C = dht_sensor.readTemperature(); // read temperature in Fahrenheit float temperature_F = dht_sensor.readTemperature(true); // check whether the reading is successful or not if ( isnan(temperature_C) || isnan(temperature_F) || isnan(humi)) { Serial.println("Failed to read from DHT sensor!"); } else { Serial.print("Humidity: "); Serial.print(humi); Serial.print("%"); Serial.print(" | "); Serial.print("Temperature: "); Serial.print(temperature_C); Serial.print("°C ~ "); Serial.print(temperature_F); Serial.println("°F"); } // wait a 2 seconds between readings delay(2000); }

Código de Arduino Nano ESP32 - DHT22

/* * Este código de Arduino Nano ESP32 fue desarrollado por es.newbiely.com * Este código de Arduino Nano ESP32 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-temperature-humidity-sensor */ #include <DHT.h> #define DHT_SENSOR_PIN D3 // The Arduino Nano ESP32 pin D31 connected to DHT22 sensor #define DHT_SENSOR_TYPE DHT22 DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { Serial.begin(9600); dht_sensor.begin(); // initialize the DHT sensor } void loop() { // read humidity float humi = dht_sensor.readHumidity(); // read temperature in Celsius float temperature_C = dht_sensor.readTemperature(); // read temperature in Fahrenheit float temperature_F = dht_sensor.readTemperature(true); // check whether the reading is successful or not if ( isnan(temperature_C) || isnan(temperature_F) || isnan(humi)) { Serial.println("Failed to read from DHT sensor!"); } else { Serial.print("Humidity: "); Serial.print(humi); Serial.print("%"); Serial.print(" | "); Serial.print("Temperature: "); Serial.print(temperature_C); Serial.print("°C ~ "); Serial.print(temperature_F); Serial.println("°F"); } // wait a 2 seconds between readings delay(2000); }

Dos de los códigos anteriores tienen solo una línea de diferencia.

Pasos R\u00e1pidos

Para empezar con Arduino Nano ESP32, siga estos pasos:

  • Si eres nuevo en Arduino Nano ESP32, consulta el tutorial sobre cómo configurar el entorno para Arduino Nano ESP32 en el IDE de Arduino.
  • Conecta los componentes de acuerdo con el diagrama proporcionado.
  • Conecta la placa Arduino Nano ESP32 a tu computadora usando un cable USB.
  • Inicia el IDE de Arduino en tu computadora.
  • Selecciona la placa Arduino Nano ESP32 y su puerto COM correspondiente.
  • Abre el Gestor de Bibliotecas haciendo clic en el icono Library Manager en la barra de navegación izquierda del IDE de Arduino
  • Escribe “Adafruit DHT” en la caja de búsqueda, luego busca la biblioteca de sensores DHT de Adafruit
  • Instala la biblioteca haciendo clic en el botón Instalar.
Biblioteca de sensores DHT para Arduino Nano ESP32
  • Puede aparecer una ventana que le pida instalar las dependencias de la biblioteca
  • Instale todas las dependencias de la biblioteca haciendo clic en el botón Instalar todo.
Biblioteca de sensores unificados de Adafruit para Arduino Nano ESP32
  • Copia uno de los códigos anteriores y ábrelo con Arduino IDE
  • Compila y carga el código en la placa Arduino Nano ESP32 haciendo clic en el botón Cargar en Arduino IDE
  • Haz que el sensor esté más frío o más caliente. Por ejemplo, colocando el sensor cerca de una taza de café caliente
  • Consulta el resultado en el Monitor Serial. Se muestra a continuación:
COM6
Send
Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 32.00% | Temperature: 28.00°C ~ 82.40°F Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F Humidity: 32.00% | Temperature: 29.00°C ~ 84.20°F Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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!