Temperatura y humedad con ESP32
Introducción
Vamos a realizar un simple ejemplo de la lectura de un sensor de temperatura y humedad, en este caso el DHT11 y un ESP32 WROOM 32D y mostrarlo en el monitor serial.
Materiales necesarios
- ESP32 WROOM 32D
- DHT11
- cables Dupoint
- protoboard
Esp32

En la siguiente imagen tenemos un resumen de las caracteristicas y pines de nuestro esp32
DHT11
Sensor de temperatura y humedad de bajo costo y rápida respuesta de medición, cuenta con un microcontrolador de 8 bits para asegurar su fiablidad a lo largo del tiempo, puede medir la humedad desde 20% a 95% y la temperatura desde 0º a 50º. Su protocolo de comunicación es a través de un solo cable. lo que nos hace muy facíl la integración.

Especificaciones del sensor:
| Caracteristica | Rango |
|---|---|
| Voltaje | 3,5 v a 5v |
| Medición humedad | 20% a 95% |
| Medición temperatura | 0ºc a 50ºc |
| Precisión humedad | +/- 4% HR |
| Precisión temperatura | +/- 2ºc |
| Periodo de medición | 2 segundos |
| Dimensiones | 23 x17x20 mm |
| Peso | 2,2 gramos |
La trama de datos es de 40 bits corrrespondeientes a l a información de humedad y temperatura del DHT11

Para poder interpretar la informacion deberemos instalar la libreria Dht sensor library que dependiendo de nuestra version del IDE arduino, para ello buscamos en el gestor de librerias y la instalamos

o podemos descargarla del siguiente enlace y descomprimimos su contenido en:
Documentos-> Arduino-> Libraries
https://github.com/adafruit/DHT-sensor-library
Conexionado
Una vez que sabemos mas información de nuestros dispositivos, vamos a realizar la conexiones para que pongamos en funcionamiento nuestro sensor de temperatura en primer lugar debemos conectar el positivo y el negativo de nuestra protoboard
En nuestro caso tenemos un Sensor KY-015-dht11 con la siguiente configuración de pines:
Visto de frente segun la imagen de conexionado:
- VCC : Lo podemos conectar a 3.3v o 5v
- DATA: Lo conectamos a una entrada digital del esp32 en nuestro caso la 4
- GND: al pin gnd del esp32


Una vez conectado y verificado que las conexiones estén bien, vamos con la programación del ESP32, para ello abrimos nuestro IDE Arduino en el ordenador y creamos el software para leer los datos del sensor
/*
This code reads the temperature and humidity values from
a DTH11 sensor conected to pin 4 and prints them to the serial
monitor.
It also calculates and prints the heat index value in both
Celsius and Fahrenheit
Board: ESP32 Development Board
Component: Temperature and humidiy module ( DHT11)
Library: https: // github.com/adafruit/DHT-sensor-library ()
*/
#include <DHT.h>
#define DHTPIN 4 // Define the pin used to connect the sensor DTH11
#define DHTTYPE DHT11 // Define the sendor type
DHT dht(DHTPIN, DHTTYPE); // Create a DHT object
void setup() {
// initialize the serial comunication
Serial.begin(9600);
Serial.println("DHT11 test¡");
dht.begin(); // Initialize the DHT sensor
}
void loop() {;
// Wait a few seconds between measuremets
delay(2000);
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' ( its a very sensor)
float h = dht.readHumidity();
// Read temperature as Celsius ( the default)
float t = dht.readTemperature();
//Read temperature as Fahrenheit ( isFahrenheit = true)
float f = dht.readTemperature(true);
// Check if any reads failed and exit early ( to try again)
if(isnan(h) || isnan(t) || isnan(f)) {
Serial.print("Failed to read from DHT sensor!");
}
// compute heat index in Fahrenheit ( the default)
float hif = dht.computeHeatIndex(f, h);
// compute heat index in Celsius( isFahrenheit = false)
float hic = dht.computeHeatIndex(t, h, false);
// Print the humidity, temperature, and heat index values to the serial monitor
Serial.print("Humidity: ");
Serial.print(h);
Serial.println("%");
Serial.print("Temperature: ");
Serial.print(t);
Serial.print("ºC ");
}
como resultado de la lectura del sensor obtendremos la temperatura y la humedad que tenemos en lugar donde instalemos nuestro diseño

