>

DHT11, DHT22 + Raspberry pi en Python leer temperatura y humedad 2024

Hoy realizaremos un proyecto muy sencillo leyendo temperatura y humedad con un sensor DHT11 desde nuestra raspberry pi, aunque en la red ya hay miles de tutoriales de este tipo no todos son muy claros, parte de este pequeño proyecto ha sido llevado en conjunto con David Saldarriaga Velasquez, sin más que decir empecemos.



DESARROLLO COMPLETO DEL PROYECTO

Mira un vídeo de este ligero proyecto


Veremos todo lo necesario desde código, diagrama de conexión, instalaciones de herramientas extra y demás para que nada quede en el aire y sea fácil de desarrollar.

1. Materiales y componentes

Para este sencillo proyecto será necesario:

- x1 Raspberry pi (Nosotros usaremos la versión 3b+).
- Raspbian montado en micro SD (Tutorial aquí).
- x1 Adaptador de corriente 5v - 2.5A.
- x1 Sensor DHT11 o DHT22.
- x3 Cables jumpers para conexión del sensor a la raspberry.
- Software IDLE python 3.0 para programar en dicho lenguaje. 

¡Listo! ya podemos empezar.

2. Configuración y entorno raspberry 

Instalaremos el IDLE de python 3.0 en nuestro sistema raspbian (si ya lo tienes puedes omitir este paso).

2.1. Abrimos el LXTerminal y ejecutamos el siguiente comando: 
sudo apt-get install idle3

Luego de ejecutar el comando en cierto punto de la instalación nos preguntará algo pondremos que sí solo dejando la "S" y la descarga continuará.

2.2. Una vez hecho lo anterior iremos al menú de raspberry > Programación > Python 3 (IDLE) por ahora lo podemos dejar abierto:



3. Montaje y conexiones

Este será el diagrama de conexión para el sensor DHT11 a la raspberry pi dentro de la imagen se pueden ver los pines correspondientes:

Clic para ampliar

4. Instalación de librería DHT11 y comprobación del sensor

Ahora será necesario instalar la librería de nuestro sensor para que sea compatible con Python que ya se instaló previamente en el paso 2.1. necesitamos ejecutar una serie de comandos, para ello se debe hacer todo el proceso y no habrán errores.

4.1. Abrimos LXTerminal y ejecutamos el siguiente comando:
git clone https://github.com/adafruit/Adafruit_python_DHT.git

Si todo sale bien debería verse algo así: 



4.2. Hecho lo anterior, inmediatamente en las carpetas de nuestra raspberry veremos una llamada "Adafruti_python_DHT":


Vamos de nuevo al LXTerminal y escribiremos lo siguiente para acceder a la carpeta:
cd Adafruit_python_DHT

Luego el siguiente, para ejecutar el archivo necesario en python:
sudo python3 setup.py install

Si todo sale bien debería verse algo así en consola:


4.3. Vamos de nuevo a la carpeta "Adafruit_python_DHT" vista en la imagen del paso anterior, luego abrimos la carpeta examples y abrimos el archivo llamado "AdafruitDHT.py":


Este archivo tendrá todo el código para que nuestro sensor funcione, podemos referenciar que trabajamos en python tres colocando el número "3"en la línea 1:
#!usr/bin/python3


Guardamos el archivo y lo cerramos.

4.4. Ahora vamos a comprobar que el sensor esté funcionando ejecutando los ejemplos de Adafruit, escribimos en el terminal:
cd examples

Luego:
sudo ./AdafruitDHT.py 11 4 

Donde el 11 es el sensor DHT11 y el 4 el pin donde se está conectando en la raspberry, ahora en el terminal debería verse la temperatura y humedad de nuestro sensor con las siguientes variables Temp y Humidity así:


Lo que nos dice que la librería reconoce el sensor y muestra sus datos sin problema.

 5. Creando nuestro propio código en Python

Finalmente vamos a crear un archivo .py propio para trabajar sobre el mismo como código base del proyecto que se quiera desarrollar, vamos al programa Python 3(IDLE) que dejamos abierto en el paso 2.2. y pegaremos el siguiente código: 
import Adafruit_DHT  
import time  

while True:
  sensor = Adafruit_DHT.DHT11 #Cambia por DHT22 y si usas dicho sensor
  pin = 4 #Pin en la raspberry donde conectamos el sensor
  humedad, temperatura = Adafruit_DHT.read_retry(sensor, pin)

  print ('Humedad: ' , humedad)
  print ('Temperatura: ' , temperatura)
 
  time.sleep(1) #Cada segundo se evalúa el sensor

5.1. Guardamos el código con cualquier nombre y la extensión .py, ahora presionamos la tecla "F5" para ejecutarlo y ver el sensor:


Finalmente el sensor debería variar si le ponemos algo de calor, dicha variación se hará cada segundo y eso sería todo en este post.

¿Alguna duda? comenta, 📢
Compartir:

17 comentarios:

  1. gracias nene me sirvio mucho tu aporte saludos de gt

    ResponderEliminar
  2. Hola amigo. Tengo un problema. Sigo todos los pasos pero me muestra el siguiente error cuando lo ejecuto como en el paso 4.4.
    Failed to get reading. Try again!

    ResponderEliminar
    Respuestas
    1. Es muy probable que no tengas el sensor bien configurado como se explicó con anterioridad

      Eliminar
    2. Hola, yo tengo el mismo problema y ya revise todo y todo parece estar bien configurado

      Eliminar
    3. Puedes probar con otro sensor un DHT22

      Me comentas,

      Eliminar
  3. Buenas tardes, soy novato en el tema y estoy ensayando con el codigo y he visto muchos ejemplos pero siempre me sale este error y no he podido sabe porque, le será posible colaborarme?

    file "/home/pi/Downloads/temperatura.py" este es el error que me sale

    ResponderEliminar
    Respuestas
    1. Hola es porque no estás enrutando bien el archivo debes identificar bien el archivo a buscar en la ruta.

      Saludos,

      Eliminar
  4. Buenas tardes, todos los pasos me salieron bien pero cuando voy a ejecutar me sale un error en la funcion de print

    ResponderEliminar
  5. Buen día el mismo codigo en python pero orientado a objetos

    ResponderEliminar
  6. Las conexiones al DHT11 están equivocadas. Tal cual está la imagen, los pines tensión y datos están intercambiados entre sí. El de datos es el primero de la izquierda y la tensión el central.

    ResponderEliminar
  7. muy buenas
    hice todo correcto pero
    me sale el siguiente error:
    Traceback (most recent call last):
    File "/home/luis3/Adafruit_python_DHT/examples/./AdafruitDHT.py", line 24, in
    import Adafruit_DHT
    ModuleNotFoundError: No module named 'Adafruit_DHT'

    ResponderEliminar
  8. finalmente pude hacerlo, pero como las versiones de python estan cambiando o actualizando a nuevas versiones, en teste caso en el editor puse en ve de python 3 , cambie por python "3.9".
    gracias Andres Felipe.

    ResponderEliminar
    Respuestas
    1. Hola, gracias por poner como lo solucionaste. Esperamos que le sirva a otros usuarios de internet.

      Saludos,

      Eliminar

SkullTrapers

Posts más vistos

 

CLICK AQUI PARA IR A NUESTRA TIENDA ON LINE ARDUINO, ELECTRÓNICA, COMPONENTES