Crea, comparte, aprende y disfruta
Sensor de Humedad DHT11
El sensor DHT11 es un sensor económico, pequeño, fiable y muy útil, que nos permitirá tomar lecturas de la humedad y la temperatura.
Si bien es cierto que su resolución no es muy elevada (20% – 80% de humedad y de 0ºC – 50ºC) nos puede servir para un gran número de propósitos en los que no nos encontremos en condiciones extremas.
Su frecuencia de refresco es de 1Hz, es decir, cómo máximo puede tomar una lectura por segundo. Puede parecer reducida en comparación a las frecuencias de otros sensores, pero la temperatura y la humedad no son valores que suelan cambiar de forma dramática en un corto espacio de tiempo.
En definitiva, si necesitamos un sensor para montar en un diseño que vaya a enfrentarse a climas extremos o condiciones extraordinarias, tendremos que seguir buscando. Pero si lo único que necesitamos son lecturas «de estar por casa», en valores en los que solemos movernos en la mayoría de las latitudes de la tierra, entonces el DHT11 es nuestro ganador.
Por su patilla de datos (la dos) devuelve una lectura de humedad y temperatura que puede ser interpretada por cualquier microcontrolador. Veamos algunos ejemplos de uso.
Montajes
DHT11 y Arduino
El montaje para conectarlo con Arduino es muy simple, únicamente necesitamos una resistencia para tenerlo funcionando:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | //Llamamos a la libreria #include "DHT.h" //Declaramos que el sensor esta en el pin 6 #define DHTPIN 6 //Definimos el modelo del sensor #define DHTTYPE DHT11 //Definimos la variable que utilizaremos para comunicarnos con el sensor DHT dht(DHTPIN, DHTTYPE); void setup() { //Iniciamos la comunicación serial Serial.begin(9600); //Iniciamos el sensor dht.begin(); } void loop() { //Leemos la humedad float h = dht.readHumidity(); //Leemos la temperatura float t = dht.readTemperature(); //Mostramos la información en la consola Serial.println("Humedad: "); Serial.println(h); Serial.println("Temperatura: "); Serial.println(t); Hacemos una pausa de 5 segundos antes de volver a leer. delay(5000); } |
DHT11 y Raspberry Pi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #Llamamos a las librerias que vamos a necesitar import Adafruit_DHT import RPi.GPIO as GPIO import time # Configuramos el tipo de sensor sensor = Adafruit_DHT.DHT11 GPIO.setmode(GPIO.BOARD) # Definimos el pin al que hemos conectado el sensor pino_sensor = 25 # Mostramos los valore leios while(1): #leemos el sensor umid, temp = Adafruit_DHT.read_retry(sensor, pino_sensor); #si la lectura resulta correcta, la mostramos if umid is not None and temp is not None: print ("Temperatura = {0:0.1f} Umidade = {1:0.1f}\n").format(temp, umid); #Esperamos 5 segundos antes de la siguiente lectura time.sleep(5) else: #Si la lectura es incorrecta mostramos un error print("Error de lectura") |
Hola, si quiero almanezar datos en micro-sd y graficar con excel?- Como se puede hacer?
Puedes guardar los datos en la SD usando algún formato que Excel entienda. El más sencillo es el de campos separados por comas. Después lo importas y con los datos le dices a Excel que realice una gráfica.