Cómo usar el DHT11/DHT22 con las Raspberry Pi Pico

Las Raspberry Pi Pico es una placa de desarrollo con buenas características y muchas funciones. Entre ellas la entrada de datos. Como ejemplo esta vez aprenderemos a leer los datos obtenidos del sensor DHT11 y DHT22.

También te invito a ver el tutorial anterior si es la primera vez que usas esta placa:

Conociendo la Raspberry Pi Pico y programando con MicroPython – TodoMaker

Conectar el DHT a la Raspberry Pi Pico

Empieza guiándote de este gráfico. Si tu DHT viene con una PCB puedes conectar su pin de datos directamente al GPIO 4 de la Raspberry Pi Pico. La alimentación va al pin de 3.3V de salida y GND con el pin del mismo nombre en la tarjeta.

En cambio, si no tiene una PCB debes usar una resistencia pull-up en el pin de datos del DHT. Revisa el datasheet de tu sensor para evitar problemas.

También puedes guiarte de este gráfico para localizar los pines.

Programando lectura de DHT11 en la Raspberry Pi Pico

Usa este código en Thonny.

import dht
import machine
import time

global temp
global hum

d = dht.DHT11(machine.Pin(4))

while(True):
    time.sleep(2)
    d.measure()
    temp = d.temperature()
    hum = d.humidity()
    print(f"Temperatura: {temp}")
    print(f"Humedad: {hum}")

Empezamos añadiendo las librerías que usaremos.

La librería dht es para controlar las funciones del sensor dht de una forma más rápida. Machine es para usar partes del hardware de la tarjeta, usaremos su módulo Pin.

Y time, en esta ocasión, es para pausar el programa.

import dht
import machine
import time

Después creamos dos variables globales en las que se almacenarán las lecturas del DHT.

global temp
global hum

Instanciamos el sensor en una variable llamada d. Se llama a la librería dht y se indica el tipo de sensor que puede ser DHT11() o DHT22().

Dentro de los paréntesis va el pin que se va a utilizar para los datos. En este caso lo agregamos llamando a la librería machine y usando el modulo Pin(). Se usa como argumento el pin del GPIO, esta vez el 4.

d = dht.DHT11(machine.Pin(4))

Creamos un ciclo while True para que el código dentro del mismo se repita constantemente.

while(True):

Con la función sleep de la librería time el programa se pone en pausa la cantidad de segundos que indiquemos entre los paréntesis.

time.sleep(2)

Luego se llama a la variable en la que se instanció el sensor y usamos las funciones para leer los datos.

Con measure() empiezan las medidas. Con temperature() se obtiene el valor de la temperatura que se leyó, este dato se guardará en temp.

Sucede lo mismo con humidity().

    d.measure()
    temp = d.temperature()
    hum = d.humidity()

Para finalizar se imprimen los valores obtenidos en la consola. Se usa la función print() dentro de la cual irá la cadena de texto entre comillas.

Antes de eso agregamos la letra f para indicar la forma en la que vamos a concatenas los valores. Una vez dentro de las comillas escribimos el texto que queramos y ponemos entre llaves {} la variable cuyo valor queremos mostrar.

    print(f"Temperatura: {temp}")
    print(f"Humedad: {hum}")

Conclusiones

En este tutorial aprendiste a utilizar la librería dht y a usarla con un sensor. Además de las conexiones necesarias entre el sensor DHT y las Raspberry Pi Pico.

Comparte este tutorial con tus amigos. Gracias por leernos.

Te invitamos a tomar el curso de Introducción al ESP32: Introducción al ESP32 | TodoMaker’s School

Previous Post
Next Post