.. note::
¡Hola, bienvenido a la Comunidad de Aficionados a Raspberry Pi, Arduino y ESP32 de SunFounder en Facebook! Profundiza en Raspberry Pi, Arduino y ESP32 con otros entusiastas.
**¿Por qué unirse?**
- **Soporte de expertos**: Resuelve problemas posventa y desafíos técnicos con ayuda de nuestra comunidad y equipo.
- **Aprender y compartir**: Intercambia consejos y tutoriales para mejorar tus habilidades.
- **Vistas previas exclusivas**: Obtén acceso anticipado a anuncios de nuevos productos y avances.
- **Descuentos especiales**: Disfruta de descuentos exclusivos en nuestros productos más nuevos.
- **Promociones festivas y sorteos**: Participa en sorteos y promociones de fiestas.
👉 ¿Listo para explorar y crear con nosotros? Haz clic en [|link_sf_facebook|] y únete hoy!
.. _ar_dht11:
5.13 Temperatura - Humedad
=======================================
El DHT11 es un sensor de temperatura y humedad comúnmente utilizado para mediciones ambientales. Es un sensor digital que se comunica con un microcontrolador para proporcionar lecturas de temperatura y humedad.
En este proyecto, estaremos leyendo el sensor DHT11 e imprimiendo los valores de temperatura y humedad que detecta.
Al leer los datos proporcionados por el sensor, podemos obtener los valores actuales de temperatura y humedad en el ambiente. Estos valores pueden usarse para el monitoreo en tiempo real de condiciones ambientales, observaciones meteorológicas, control del clima interior, informes de humedad y más.
**Componentes Necesarios**
Para este proyecto, necesitamos los siguientes componentes.
Es definitivamente conveniente comprar un kit completo, aquí está el enlace:
.. list-table::
:widths: 20 20 20
:header-rows: 1
* - Nombre
- ELEMENTOS EN ESTE KIT
- ENLACE
* - Kit de Inicio ESP32
- 320+
- |link_esp32_starter_kit|
También puedes comprarlos por separado en los enlaces a continuación.
.. list-table::
:widths: 30 20
:header-rows: 1
* - INTRODUCCIÓN DE COMPONENTES
- ENLACE DE COMPRA
* - :ref:`cpn_esp32_wroom_32e`
- |link_esp32_wroom_32e_buy|
* - :ref:`cpn_esp32_camera_extension`
- |link_esp32_extension_board|
* - :ref:`cpn_breadboard`
- |link_breadboard_buy|
* - :ref:`cpn_wires`
- |link_wires_buy|
* - :ref:`cpn_dht11`
- |link_dht11_buy|
**Pines Disponibles**
* **Pines Disponibles**
Aquí está una lista de los pines disponibles en la placa ESP32 para este proyecto.
.. list-table::
:widths: 5 20
* - Pines Disponibles
- IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23
**Esquemático**
.. image:: ../../img/circuit/circuit_5.13_dht11.png
**Cableado**
.. image:: ../../img/wiring/5.13_dht11_bb.png
**Código**
.. note::
* Abre el archivo ``5.13_dht11.ino`` bajo la ruta de ``esp32-starter-kit-main\c\codes\5.13_dht11``.
* Después de seleccionar la placa (ESP32 Dev Module) y el puerto apropiado, haz clic en el botón **Subir**.
* :ref:`unknown_com_port`
* Se utiliza aquí la biblioteca ``DHT sensor library``, puedes instalarla desde el **Administrador de Bibliotecas**.
.. image:: img/dht_lib.png
.. raw:: html
Recuerda configurar la velocidad de comunicación serial a 115200.
Después de que el código se haya subido con éxito, verás el Monitor Serial imprimiendo continuamente la temperatura y humedad, y a medida que el programa se ejecute de manera estable, estos dos valores se volverán más y más precisos.
**¿Cómo funciona?**
#. Incluye la biblioteca ``DHT.h``, que proporciona funciones para interactuar con los sensores DHT. Luego, establece el pin y tipo para el sensor DHT.
.. code-block:: arduino
#include "DHT.h"
#define DHTPIN 14 // Set the pin connected to the DHT11 data pin
#define DHTTYPE DHT11 // DHT 11
DHT dht(DHTPIN, DHTTYPE);
#. Inicializa la comunicación serial a una tasa de baudios de 115200 e inicializa el sensor DHT.
.. code-block:: arduino
void setup() {
Serial.begin(115200);
Serial.println("DHT11 test!");
dht.begin();
}
#. En la función ``loop()``, lee los valores de temperatura y humedad del sensor DHT11 e imprímelos en el monitor serial.
.. code-block:: arduino
void loop() {
// Wait a few seconds between measurements.
delay(2000);
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (it's a very slow sensor)
float humidity = dht.readHumidity();
// Read temperature as Celsius (the default)
float temperture = dht.readTemperature();
// Check if any reads failed and exit early (to try again).
if (isnan(humidity) || isnan(temperture)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Print the humidity and temperature
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temperture);
Serial.println(" *C");
}
* La función ``dht.readHumidity()`` se llama para leer el valor de humedad del sensor DHT.
* La función ``dht.readTemperature()`` se llama para leer el valor de temperatura del sensor DHT.
* La función ``isnan()`` se usa para verificar si las lecturas son válidas. Si el valor de humedad o temperatura es NaN (no es un número), indica una lectura fallida del sensor, y se imprime un mensaje de error.
**Aprende Más**
También puedes mostrar la temperatura y humedad en el LCD I2C1602.
.. note::
* Puedes abrir el archivo ``5.10_thermistor_lcd.ino`` bajo la ruta de ``euler-kit/arduino/5.10_thermistor_lcd``.
* Después de seleccionar la placa (ESP32 Dev Module) y el puerto apropiado, haz clic en el botón **Subir**.
* :ref:`unknown_com_port`
* Se utilizan aquí las bibliotecas ``LiquidCrystal_I2C`` y ``DHT sensor library``, puedes instalarlas desde el **Administrador de Bibliotecas**.
.. raw:: html