¿Qué es un DHT11 / DHT22?

Todo sobre Arduino sus sensores y los elementos satélites.
Responder
Avatar de Usuario
celica
Bronce 30%
Bronce 30%
Mensajes: 36
Registrado: hace 2 years
x 1
Likes enviados: 0
Likes recibidos: 1 vez

¿Qué es un DHT11 / DHT22?

#1

Mensaje por celica » hace 2 years

Imagen

Es verano, estás sudando mucho y todo lo que realmente quieres saber es por qué el meteorólogo predijo esta mañana que la temperatura relativa de hoy alcanzaría un máximo de 20 ° C, mientras que se siente más como 25 ° C. Ingrese al sensor digital de temperatura y humedad DHT11, DHT22 / AM2302 de AOSONG: ¡la mejor manera de demostrar que el meteorólogo está equivocado!

¡Estos sensores son bastante simples de usar, de bajo costo y son excelentes para los aficionados que desean sentir el mundo que los rodea! Estos sensores están pre calibrados y no requieren componentes adicionales, por lo que puede comenzar a medir la humedad relativa y la temperatura de inmediato.

Una de las mejores características que proporcionan es que tanto la temperatura como la humedad se miden a la décima más cercana; es decir, a un decimal. El único inconveniente de este sensor es que puede obtener nuevos datos una vez cada segundo o dos. Pero, teniendo en cuenta su rendimiento y precio, no puede quejarse.

¡Estos sensores son bastante simples de usar, de bajo costo y son excelentes para los aficionados que desean sentir el mundo que los rodea! Estos sensores están pre calibrados y no requieren componentes adicionales, por lo que puede comenzar a medir la humedad relativa y la temperatura de inmediato.

DHT11 Vs DHT22 / AM2302

Tenemos dos versiones de la serie de sensores DHTxx. Se ven un poco similares y tienen el mismo pinout, pero tienen características diferentes. Aquí están los detalles:

El DHT22 es la versión más cara que obviamente tiene mejores especificaciones. Su rango de medición de temperatura es de -40 ° C a + 125 ° C con una precisión de + -0.5 grados, mientras que el rango de temperatura DHT11 es de 0 ° C a 50 ° C 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 de 2-5%, mientras que el rango de humedad DHT11 es de 20 a 80% con una precisión de 5%.
carateristicas tecnicas

Imagen
Aunque DHT22 / AM2302 es más preciso, más preciso y funciona en un rango más amplio de temperatura y humedad; Hay tres cosas en las que el DHT11 supera a DHT22. Es menos costoso, de menor tamaño y tiene una mayor tasa de muestreo. La frecuencia de muestreo del DHT11 es de 1 Hz, es decir, una lectura cada segundo, mientras que la frecuencia de muestreo de DHT22 es de 0,5 Hz, es decir, una lectura cada dos segundos.

Sin embargo, el voltaje de funcionamiento de ambos sensores es de 3 a 5 voltios, mientras que la corriente máxima utilizada durante la conversión (al solicitar datos) es de 2.5 mA. Y lo mejor es que los sensores DHT11 y DHT22 / AM2302 son 'intercambiables', lo que significa que si construye su proyecto con uno, simplemente puede desconectarlo y usar otro. Es posible que su código tenga que ajustarse un poco, pero al menos el cableado es el mismo.

Para obtener un poco más de información, consulte las hojas de datos a continuación para el sensor DHT11 y DHT22 / AM2302.

Descripción del hardware

Ahora pasemos a las cosas interesantes. Vamos a desmontar los sensores DHT11 y DHT22 / AM2302 y ver qué hay dentro.

La carcasa tiene dos partes, por lo que para entrar es solo cuestión de obtener un cuchillo afilado y separar la carcasa. Dentro de la caja, en el lado de detección, hay un componente de detección de humedad junto con un sensor de temperatura NTC (o termistor)

Imagen

El componente sensor de humedad se usa, por supuesto, para medir la humedad, que tiene dos electrodos con sustrato que retiene la humedad (generalmente una sal o un polímero plástico conductor) intercalado entre ellos. El sustrato libera los iones a medida que el vapor de agua es absorbido por él, lo que a su vez aumenta la conductividad entre los electrodos. El cambio de resistencia entre los dos electrodos es proporcional a la humedad relativa. Una humedad relativa más alta disminuye la resistencia entre los electrodos, mientras que una humedad relativa más baja aumenta la resistencia entre los electrodos.




Además, consisten en un sensor de temperatura NTC / termistor para medir la temperatura. Un termistor es una resistencia térmica, una resistencia que cambia su resistencia con la temperatura. Técnicamente, todas las resistencias son termistores (su resistencia cambia ligeramente con la temperatura), pero el cambio suele ser muy pequeño y difícil de medir.

¡Los termistores están hechos para que la resistencia cambie drásticamente con la temperatura de modo que pueda ser de 100 ohmios o más de cambio por grado! El término "NTC" significa "Coeficiente de temperatura negativo", lo que significa que la resistencia disminuye con el aumento de la temperatura.




Por otro lado, hay una pequeña PCB con un IC empaquetado SOIC-14 de 8 bits. Este IC mide y procesa la señal analógica con coeficientes de calibración almacenados, realiza conversión analógica a digital y escupe una señal digital con la temperatura y la humedad.

Pinout DHT11 y DHT22 / AM2302

Los sensores DHT11, DHT22 / AM2302 son bastante fáciles de conectar. Tienen cuatro pines:

Imagen

El pin VCC suministra energía para el sensor. Aunque el voltaje de suministro varía de 3.3V a 5.5V, se recomienda el suministro de 5V. En el caso de una fuente de alimentación de 5V, puede mantener el sensor hasta 20 metros. Sin embargo, con un voltaje de suministro de 3.3V, la longitud del cable no debe ser mayor a 1 metro. De lo contrario, la caída de voltaje en la línea conducirá a errores en la medición.

El pin de datos se usa para la comunicación entre el sensor y el microcontrolador.

Cableado: conexión de DHT11 y DHT22 / AM2302 a Arduino UNO

Imagen

¡Ahora que tenemos una comprensión completa de cómo funcionan los sensores DHT, podemos comenzar a conectarlo a nuestro Arduino!

Afortunadamente, es trivial conectar los sensores DHT11, DHT22 / AM2302 a Arduino. Tienen pines bastante largos de 0.1 ″ para que pueda enchufarlos fácilmente en cualquier placa de pruebas. Alimente el sensor con 5V y conecte tierra a tierra. Finalmente, conecte el pin de datos a un pin digital # 2.

Recuerde, como se discutió anteriormente en este tutorial, necesitamos colocar una resistencia pull-up de 10KΩ entre VCC y la línea de datos para mantenerla ALTA para una comunicación adecuada entre el sensor y la MCU. Si tiene una placa de conexión del sensor, no necesita agregar ningún pull-up externo. Viene con una resistencia pull-up incorporada.

Como se discutió anteriormente en este tutorial, los sensores DHT11, DHT22 / AM2302 tienen su propio protocolo de un solo cable utilizado para transferir los datos. Este protocolo requiere una sincronización precisa. Afortunadamente, no tenemos que preocuparnos mucho por esto porque vamos a usar la biblioteca DHT que se encarga de casi todo.

Descargue la biblioteca primero, visitando el GitHub o, simplemente haga clic en este botón para descargar el zip:

https://lastminuteengineers.com/libraries/DHTlib.zip


Para instalarlo, abra el IDE de Arduino, vaya a Boceto> Incluir biblioteca> Agregar biblioteca .ZIP y luego seleccione el archivo ZIP DHTlib que acaba de descargar. Si necesita más detalles sobre la instalación de una biblioteca, visite este tutorial sobre la instalación de una biblioteca Arduino .





Una vez que tenga la biblioteca instalada, puede copiar este boceto en el IDE de Arduino. El siguiente boceto de prueba imprimirá los valores de temperatura y humedad relativa en el monitor en serie. Prueba el boceto; y luego lo explicaremos con cierto detalle.

Código: Seleccionar todo

#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() 
{
	//Uncomment whatever type you're using!
	int readData = DHT.read22(dataPin); // DHT22/AM2302
	//int readData = DHT.read11(dataPin); // DHT11

	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(t);
	Serial.print(" ");
	Serial.print((char)176);//shows degrees character
	Serial.print("C | ");
	Serial.print((t * 9.0) / 5.0 + 32.0);//print the temperature in Fahrenheit
	Serial.print(" ");
	Serial.print((char)176);//shows degrees character
	Serial.println("F ");
	Serial.print("Humidity = ");
	Serial.print(h);
	Serial.println(" % ");
	Serial.println("");

	delay(2000); // Delays 2 secods
}
El boceto comienza al incluir la biblioteca DHT. A continuación, debemos definir el número de pin Arduino al que está conectado el pin de datos de nuestro sensor y crear un objeto DHT. Entonces, podemos acceder a funciones especiales relacionadas con la biblioteca.

Código: Seleccionar todo

#include <dht.h>
#define dataPin 8 // Defines pin number to which the sensor is connected
dht DHT; // Creats a DHT object
En la función 'configuración'; necesitamos iniciar la comunicación en serie ya que utilizaremos el monitor en serie para imprimir los resultados.

Código: Seleccionar todo

void setup() {
  Serial.begin(9600);
}
En la función 'loop'; Utilizaremos la función read22 () que lee los datos del DHT22 / AM2302. Toma el número de pin de datos del sensor como parámetro. Si está jugando con DHT11, debe usar la función read11() . Puede hacerlo descomentando la segunda línea.

Código: Seleccionar todo

//Uncomment whatever type you're using!
int readData = DHT.read22(dataPin); // DHT22/AM2302
//int readData = DHT.read11(dataPin); // DHT11

Una vez que se calculan los valores de humedad y temperatura, podemos acceder a ellos mediante:

Código: Seleccionar todo

float t = DHT.temperature; // Gets the values of the temperature
float h = DHT.humidity; // Gets the values of the humidity
El objeto DHT devuelve el valor de temperatura en grados Celsius (° C). Se puede convertir a Fahrenheit (° F) usando una fórmula simple:

T (° F) = T (° C) × 9/5 + 3

Código: Seleccionar todo

//print the temperature in Fahrenheit
Serial.print((t * 9.0) / 5.0 + 32.0);


Al final imprimiremos los valores de temperatura y humedad en el monitor en serie.


Imagen
0 Me gusta
labotecno.cl cumple tus metas !
cacabkn
Bronce 30%
Bronce 30%
Mensajes: 32
Registrado: hace 1 year
x 1
x 2
Likes enviados: 12 veces
Likes recibidos: 2 veces

#2

Mensaje por cacabkn » hace 8 meses

hola, tu conoces el funcionamiento de lso controladores de potencia en los arduinos.
esos que se usan para los servomotiores :)
0 Me gusta
Responder

Medios Sociales

     

Volver a “Arduino”