Ejemplo 4
Medici贸n de temperatura y humedad usando el sensor DTH11 en el ESP32
Descripci贸n
Este ejemplo muestra en el monitor serial se muestran las variables: humedad, temperatura (en 掳C y 掳F) e indice de calor (en 掳C y 掳F) medidas usando el sensor de temperatura y humedad (DTH11). Este ejemplo fue adaptado (copiado y modificado) de la pagina ESP32 with DHT11/DHT22 Temperature and Humidity Sensor using Arduino IDE (link) de Random Nerd Tutorials
Componentes
La siguiente tabla muestra los componentes principales del circuito a montar:
ESP32
1
DYH11 (sensor de temperatura y humedad)
1
Disponible en el modulo kit de Elegoo.
Conexi贸n
La conexi贸n entre el sensor DTH11 se muestra en la siguiente tabla:
GND
GND - (pin 3 - derecha)
3.3V
Vin (pin 2 - centro)
GPIO2
S (pin 1 - izquierda)
Esquematico
La siguiente figura muestra el esquematico:

Conexi贸n
A continuaci贸n se muestra la conexi贸n entre los componentes:

Archivo Fritzing
Pasos previos si se usa platformio
Configurar en Platformio la plataforma a emplear eligiendo como dispositivo el ESP32 tal y como se resume en la siguiente tabla:
Name
Nombre del proyecto (ESP32_Temp-DS18B20 para este ejemplo)
Board
NodeMCU-32S (Board disponible en el laboratorio)
Framework
Arduino (Es el que hemos manejado)
Una vez que se encuentra la libreria se procede a instalarla (Add project dependency).
Finalmente una vez hecho lo anterior, si todo esta bien, el archivo platform.ini se vera de la siguiente forma:
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter
; Upload options: custom upload port, speed and extra flags
; Library options: dependencies, extra library storages
; Advanced options: extra scripting
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
platform = espressif32
board = nodemcu-32s
framework = arduino
lib_deps =
adafruit/DHT sensor library@^1.4.4
adafruit/Adafruit Unified Sensor@^1.1.9
Configurar el monitor serial.
Programa (implementado en el IDE de Arduino)
A continuaci贸n se muestra el programa que se ejecuta en el ESP32, este el cual basicamente es el mismo programa implementado para el Arduino UNO pero empleando otros pines. Si este se hubiese implementado en platformio adicionalmente el main.cpp tendria incluida la libreria al principio:
#include <Arduino.h>
En nuestro ejemplo como la implementaci贸n se hizo en el IDE de Arduino no se incluye esta libreria de modo que queda como se muestra a continuaci贸n.
/* Librerias*/
#include "DHT.h"
/**
Hardware Connections:
ESP32 | DHT11
-------------------
3.3V | S (pin 1 - izquierda)
2 | Vin (pin 2 - centro)
GND | GND (pin 3 - derecha)
*/
// Pines
#define DHTPIN 2
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#define DHTTYPE DHT21 // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println(F("DHTxx test!"));
dht.begin();
}
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' (its a very slow 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.println(F("Failed to read from DHT sensor!"));
return;
}
// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, false);
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F("掳C "));
Serial.print(f);
Serial.print(F("掳F Heat index: "));
Serial.print(hic);
Serial.print(F("掳C "));
Serial.print(hif);
Serial.println(F("掳F"));
}
La documentaci贸n de la libreria empleada puede ser consultada en el suguiente repositorio (link).
Prueba de funcionamiento
Una vez que la aplicaci贸n ha sido correctamente compilada y descargada a la ESP32 se puede proceder a verificar su correcto funcionamiento. En nuestro caso, si todo esta bien, la salida que se mostrara en el monitor serial tendra la siguiente forma:

Simulaci贸n
Para comprender el funcionamiento del programa, puede seguir el siguiente link. Tenga en cuenta que en la simulaci贸n el sensor empleado es el DTH22 (y no el DTH11) por lo que tanto el c贸digo como la conexi贸n del simulador se adapto para este sensor. A continuaci贸n se muestra la figura asociada a la simulaci贸n:

Last updated