En el mundo de la electrónica y la programación, los sensores de temperatura y humedad DHT11 y DHT22 son dos de los componentes más populares y ampliamente utilizados. Con la ayuda de un Arduino, en este tutorial aprenderás cómo utilizar estos sensores para medir de manera precisa la temperatura y humedad del ambiente. ¡Sigue leyendo para descubrir cómo implementar estos sensores en tus proyectos de electrónica!
En este tutorial de Arduino, aprenderemos cómo usar el sensor DHT11 o DHT22 para medir la temperatura y la humedad usando la placa Arduino. Para obtener más detalles, vea el vídeo a continuación o el tutorial escrito a continuación.
descripción general
Estos sensores son muy populares entre los aficionados a la electrónica porque son muy asequibles pero ofrecen un rendimiento excelente. Estas son las especificaciones clave y las diferencias entre estos dos sensores:
El DHT22 es la versión más cara y obviamente tiene mejores especificaciones. Su rango de medición de temperatura es de -40 a +125 grados Celsius con una precisión de +-0,5 grados, mientras que el rango de temperatura del DHT11 es de 0 a 50 grados Celsius con una precisión de +-2 grados. Además, el sensor DHT22 tiene un mejor rango de medición de humedad, del 0 al 100% con una precisión del 2-5%, mientras que el rango de humedad del DHT11 es del 20 al 80% con una precisión del 5%.
Hay>
Puede obtener estos componentes en uno de los siguientes sitios web:
- Sensor DHT11……………………………….. Amazon / Banggood / AliExpress
- Sensor DHT22………………………………. Amazon / Banggood / AliExpress
- Placa Arduino……………………………… Amazon / Banggood / AliExpress
- Cables de puente y placa de pruebas………… Amazon / Banggood / AliExpress
Divulgación: estos son enlaces de afiliados. Como asociado de Amazon, gano con compras que califican.
Principio de funcionamiento de DHT11/DHT22
Bien, ahora veamos cómo funcionan realmente estos sensores. Consisten en un componente de sensor de humedad, un sensor de temperatura NTC (o termistor) y un IC en la parte posterior del sensor.
Para>
Para>
Un termistor es en realidad una resistencia variable que cambia de resistencia a medida que cambia la temperatura. Estos sensores se fabrican sinterizando materiales semiconductores como cerámicas o polímeros para permitir cambios mayores en la resistencia con solo pequeños cambios de temperatura.
El>
Diagramas de circuito
Los sensores DHTxx tienen cuatro pines: VCC, GND, pin de datos y un pin desconectado que no se utiliza. Se requiere una resistencia pull-up de 5K a 10K ohmios para mantener alta la línea de datos y permitir la comunicación entre el sensor y la placa Arduino. Algunas versiones de estos sensores vienen con placas de conexión con una resistencia pull-up integrada y tienen solo 3 pines.
Los>biblioteca DHT quien se encarga de todo.
Tutorial relacionado: Aprenda a construir una estación meteorológica inalámbrica basada en Arduino
Código fuente
Primero debemos incluir la biblioteca DHT que se puede encontrar en el sitio web oficial de Arduino, luego definir el número de pin al que está conectado nuestro sensor y crear un objeto DHT. En la sección de configuración necesitamos iniciar la comunicación serial ya que usaremos el monitor serial para imprimir los resultados. Usando la función read22(), leemos los datos del sensor y ponemos los valores de temperatura y humedad en las variables t y h. Si utiliza el sensor DHT11, necesita la función read11(). Al finalizar imprimimos los valores de temperatura y humedad en el monitor de serie.
/* DHT11/ DHT22 Sensor Temperature and Humidity Tutorial
* Program made by Dejan Nedelkovski,
* www.HowToMechatronics.com
*/
/*
* You can find the DHT Library from Arduino official website
* https://playground.arduino.cc/Main/DHTLib
*/
#include <dht.h>
#define dataPin 8 // Defines pin number to which the sensor is connected
dht DHT; // Creats a DHT object
void setup() {
Serial.begin(9600);
}
void loop() {
int readData = DHT.read22(dataPin); // Reads the data from the sensor
float t = DHT.temperature; // Gets the values of the temperature
float h = DHT.humidity; // Gets the values of the humidity
// Printing the results on the serial monitor
Serial.print("Temperature = ");
Serial.print
Serial.print(" *C ");
Serial.print(" Humidity = ");
Serial.print(h);
Serial.println(" % ");
delay(2000); // Delays 2 secods, as the DHT22 sampling rate is 0.5Hz
}
Code language: Arduino (arduino)
Después de cargar este código en la placa Arduino, los resultados de temperatura y humedad del sensor se pueden mostrar en el monitor serie.
También creé un ejemplo en el que muestro los resultados en una pantalla LCD. Aquí está el código fuente de este ejemplo:
/* DHT11/ DHT22 Sensor Temperature and Humidity Tutorial
* Program made by Dejan Nedelkovski,
* www.HowToMechatronics.com
*/
/*
* You can find the DHT Library from Arduino official website
* https://playground.arduino.cc/Main/DHTLib
*/
#include <LiquidCrystal.h> // includes the LiquidCrystal Library
#include <dht.h>
#define dataPin 8
LiquidCrystal lcd(1, 2, 4, 5, 6, 7); // Creates an LCD object. Parameters: (rs, enable, d4, d5, d6, d7)
dht DHT;
void setup() {
lcd.begin(16,2); // Initializes the interface to the LCD screen, and specifies the dimensions (width and height) of the display
}
void loop() {
int readData = DHT.read22(dataPin);
float t = DHT.temperature;
float h = DHT.humidity;
lcd.setCursor(0,0); // Sets the location at which subsequent text written to the LCD will be displayed
lcd.print("Temp.: "); // Prints string "Temp." on the LCD
lcd.print
lcd.print(" C");
lcd.setCursor(0,1);
lcd.print("Humi.: ");
lcd.print(h);
lcd.print(" %");
delay(2000);
}
Code language: Arduino (arduino)
No dude en hacer sus preguntas en la sección de comentarios a continuación.
En este tutorial de Arduino, aprenderemos cómo utilizar los sensores DHT11 o DHT22 para medir la temperatura y la humedad con la placa Arduino. Estos sensores son muy populares entre los aficionados a la electrónica por ser económicos y proporcionar un buen rendimiento. Aquí están las especificaciones principales y las diferencias entre estos dos sensores:
El DHT22 es la versión más cara que, obviamente, tiene mejores especificaciones. Su rango de medición de temperatura es de -40 a +125 grados Celsius con una precisión de +-0.5 grados, mientras que el rango de temperatura del DHT11 es de 0 a 50 grados Celsius con una precisión de +-2 grados. Además, el sensor DHT22 tiene un mejor rango de medición de humedad, de 0 a 100% con una precisión del 2-5%, mientras que el rango de humedad del DHT11 es de 20 a 80% con una precisión del 5%.
Hay dos especificaciones en las que el DHT11 es mejor que el DHT22. Eso es la frecuencia de muestreo, que para el DHT11 es de 1Hz o una lectura cada segundo, mientras que la frecuencia de muestreo del DHT22 es de 0.5Hz o una lectura cada dos segundos y también el DHT11 tiene un tamaño de cuerpo más pequeño. La tensión de funcionamiento de ambos sensores es de 3 a 5 voltios, mientras que la corriente máxima utilizada al medir es de 2.5 mA.
El funcionamiento de los sensores DHT11 y DHT22 se basa en un componente de sensor de humedad, un sensor de temperatura NTC (termistor) y un circuito integrado en la parte posterior del sensor. Para medir la humedad, utilizan el componente de sensor de humedad que tiene dos electrodos con un sustrato que retiene la humedad entre ellos. A medida que cambia la humedad, la conductividad del sustrato cambia o la resistencia entre estos electrodos cambia. Esta variación en la resistencia es medida y procesada por el circuito integrado, que está listo para ser leído por un microcontrolador. Por otro lado, para medir la temperatura, estos sensores utilizan un sensor de temperatura NTC o un termistor. Un termistor es en realidad una resistencia variable que cambia su resistencia con el cambio de la temperatura.
Los sensores DHTxx tienen cuatro pines: VCC, GND, pin de datos y un pin no conectado que no tiene uso. Se requiere una resistencia pull-up de 5K a 10K Ohmios para mantener la línea de datos alta y permitir la comunicación entre el sensor y la placa Arduino. Hay algunas versiones de estos sensores que vienen con placas de expansión con resistencia pull-up incorporada y tienen solo 3 pines. Los sensores DHTXX tienen su propio protocolo de comunicación de un solo cable utilizado para transferir los datos. Este protocolo requiere una sincronización precisa y los diagramas de tiempo para obtener los datos de los sensores se pueden encontrar en las hojas de datos de los sensores. Sin embargo, no tenemos que preocuparnos mucho por estos diagramas de tiempo porque utilizaremos la biblioteca DHT que se encarga de todo.
Para trabajar con los sensores DHT11 y DHT22, primero necesitamos incluir la biblioteca DHT que se puede encontrar en el sitio web oficial de Arduino, luego definir el número de pin al que está conectado nuestro sensor y crear un objeto DHT. En la sección de configuración, debemos iniciar la comunicación serial porque utilizaremos el monitor serial para imprimir los resultados. Usando la función read22(), leeremos los datos del sensor y colocaremos los valores de la temperatura y la humedad en las variables t y h. Si utiliza el sensor DHT11, deberá utilizar la función read11(). Al final, imprimiremos los valores de la temperatura y la humedad en el monitor serial. Después de cargar este código en la placa Arduino, los resultados de temperatura y humedad del sensor se pueden ver en el monitor serial. También hice un ejemplo donde muestro los resultados en un LCD.
Si tiene alguna pregunta, no dude en dejar un comentario a continuación. ¡Espero que este tutorial le haya sido útil!
Referencia:
- Video tutorial: [Tutorial de sensores de temperatura y humedad DHT11 y DHT22 con Arduino](link del video)
- Código fuente: [GitHub – Código fuente del ejemplo](link del código fuente)
- DHT Library: [Página oficial de Arduino](link de la biblioteca DHT)
Muy útil este tutorial, ¡gracias por compartir!