Lectura de datos del sensor DHT11 con Arduino
En este tutorial aprenderás cómo leer los datos del sensor DHT11 utilizando un Arduino y mostrarlos en el monitor serie.
Lista de Materiales
- Arduino
- Sensor DHT11
- Resistencia de 10kΩ
- Breadboard
- Cables jumper
Diagrama de Conexión
Pin | Conexión |
---|---|
VCC | 5V |
GND | GND |
Data | Pin digital 2 |
Resistencia | Entre VCC y el pin Data |
Código del programa
#include <Adafruit_Sensor.h> #include <DHT.h> #define DHTPIN 2 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); dht.begin(); } void loop() { float temp = dht.readTemperature(); float hum = dht.readHumidity(); Serial.print("Temperatura: "); Serial.print(temp); Serial.print(" °C\t"); Serial.print("Humedad: "); Serial.print(hum); Serial.println(" %"); delay(2000); }
Explicación Paso a Paso del Código
Empezamos incluyendo las librerías necesarias para trabajar con el sensor DHT11: Adafruit_Sensor.h y DHT.h.
#include <Adafruit_Sensor.h> #include <DHT.h>
Definimos el pin que conectamos del sensor DHT11 a nuestro Arduino (DHTPIN) y el tipo de sensor que estamos usando (DHTTYPE).
#define DHTPIN 2 #define DHTTYPE DHT11
Después creamos un objeto de la clase DHT con los parámetros anteriores.
DHT dht(DHTPIN, DHTTYPE);
En la función setup() inicializamos la comunicación serial y el sensor DHT11.
void setup() { Serial.begin(9600); dht.begin(); }
En la función loop() leemos los valores de temperatura y humedad del sensor DHT11 y los mostramos en el monitor serie.
void loop() { float temp = dht.readTemperature(); float hum = dht.readHumidity(); Serial.print("Temperatura: "); Serial.print(temp); Serial.print(" °C\t"); Serial.print("Humedad: "); Serial.print(hum); Serial.println(" %"); delay(2000); }
Primero leemos la temperatura y la humedad usando las funciones readTemperature() y readHumidity() del objeto DHT. Luego imprimimos los valores obtenidos en el monitor serie utilizando la función print() de la clase Serial.
Finalmente, añadimos un retardo de 2 segundos usando la función delay() antes de volver a leer los valores del sensor.