Raspberry Pi Uso básico con DHT11

Raspberry Pi Uso básico con DHT11

julio 03, 2021

Raspberry-Pi-Basic-Usage-with-DHT11-Library
Este artículo le mostrará el uso básico de Raspberry Pi con la biblioteca DHT11, utilizando el módulo Raspberry Pi Zero y Mabee DHT11 para medir la humedad y la temperatura.

Raspberry Pi es una computadora de bajo costo del tamaño de una tarjeta de crédito. Es un pequeño dispositivo capaz que puede implementar proyectos interesantes de tu mente. Planeo usarlo como un desarrollo de hardware para mis proyectos. Ahora te mostraré el uso básico de la DHT11 y Raspberry Pi.

1. Sensor DHT11

DHT11-Sensor
DHT11 es un sensor digital básico y de bajo costo de temperatura y humedad. A menudo se utiliza en algunos proyectos electrónicos. En comparación con otros sensores de temperatura, gastaron a bajo costo y se usaron fácilmente. Aunque no mide con alta precisión, es popular para usar en proyectos. DHT11 es bueno para lecturas de humedad de 5 ~ 95% con una precisión del 5% y lecturas de temperatura de -20 ~ 60 ° C con una precisión de + -2 ° C.

El módulo DHT11 tiene cuatro pines, de los cuales tres se utilizan para VCC, GND y DATA, y el último no está conectado. Utiliza el protocolo de un solo cable para transferir datos que todas las lecturas del sensor se envían utilizando un solo bus. El bus de un solo cable es un bus de comunicaciones de dispositivo que el controlador y el dispositivo se comunican con un cable. El cambio y control de datos se completa a través de esta única línea. Además, reduciría el costo del cable y el uso del GPIO.

Los sensores DHT11 generalmente requieren una resistencia pull-up externa de 10KΩ (R1) entre VCC y el pin de salida para una comunicación adecuada. Cuando el bus está inactivo, el estado de voltaje es Alto.

2. Módulo DHT11 de Mabee_Temperature y humedad

Mabee_Temperature y humedad DHT11es un sensor digital de temperatura y humedad de alta calidad y bajo costo basado en el módulo DHT11, que es el sensor más utilizado para temperatura y humedad, es ampliamente favorecido por los entusiastas del hardware por sus ventajas, como el bajo consumo de energía y la excelente estabilidad a largo plazo.
Mabee-DHT22-EsquemáticoMabee_Temperature-Humedad-DHT11
MakerfabsMabeeserieson módulos con conectores unificados, tanto sensores como actuadores, para que los usuarios los utilicen cómodamente mediante plug&play, sin necesidad de soldadura ni comprobación detallada del propio sensor. Makerfabs proporciona demostraciones de uso básico, para que los principiantes aprendan el uso y se integren rápidamente a otros proyectos.

Todos los Makerfabs Mabee son abiertos, tanto hardware como software, y compatibles con Seeed Groves.
Características y especificaciones:
● Energía: DC3.3V
● Rango de humedad y precisión: 5% ~ 95%, con +/- 5%
● Rango de temperatura: -20 ~ 60 grados, con +/- 2%

3. Raspberry PI

Raspberry pi tiene una gran capacidad para la computación. Para un costo adecuado y bajo, Raspberry pi Zero W es la mejor opción para un proyecto de hardware, que tiene suficiente cálculo y tamaño más pequeño. Usé elSombrero PIdiseñado por Makerfabs que se basa en Raspberry Pi Zero W para desarrollar. Este sombrero Pi tiene unPantalla SPI de 3,2 pulgadascon toque para mostrar algo. También proporciona muchos tipos de puertos, como UART, I2C, ADC, GPIO, que son muy adecuados para que los proyectos integrados se expandan. Además, tiene un altavoz para la salida de audio. Puedo conectar el módulo DHT11 con él por el cable fácilmente.
Raspberry-Pi-Embedded-Pi-HatRaspberry-Pi-Embedded-Pi-Hat-Diagrama
Esta plataforma basada en Raspberry Pi Zero-W, cuenta con una pantalla SPI de 3.2" con pantalla táctil. El "SPI" significa que no utiliza la pantalla HDMI Raspberry PI, que también puede conectarla a una pantalla de PC normal con HDMI, para visualización de doble canal, adecuada para aplicaciones lite / móviles; Hay 2 PC MEMS MIC y altavoz integrados, para aplicaciones que necesitan interfaz de voz; También hay convertidores A/D e interfaces Mabee(Grove) para infinitas aplicaciones, para hacer de esta plataforma una buena opción para la creación de prototipos de proyectos.

4. Biblioteca DHT11

Raspberry Pi Zero se comunica con DHT11 ejecutando la biblioteca especialDHT11.py. ¿Cómo DHT11.py realizar la comunicación? Centrémonos en el código:

Primero, el Pi Zero transmite la señal iniciada al módulo DHT11. Configure el GPIO que el pin conectado con el bus de un cable para emitir, y establezca el nivel de voltaje del GPIO en 50 ms altos para la preparación, luego configúrelos en 20 ms bajos para transmitir la señal de inicio.
RPi.GPIO.setup(self.__pin, RPi.GPIO.OUT)

# enviar alta inicial
        self.__send_and_sleep(RPi.GPIO.HIGH, 0.05)

# bajan a bajo
        self.__send_and_sleep(RPi.GPIO.LOW, 0.02)
Raspberry-Pi-Zero-Comunica-con-DHT11

A continuación, Pi zero libera el permiso de control del GPIO que configura el GPIO en modo de entrada. Después de que el módulo DHT11 recibiera la señal de inicio. El módulo DHT11 establecerá el estado del bus en 83us bajo y lo establecerá en High 87us para responder a la señal iniciada. Luego, el módulo DHT11 comenzaría a transmitir los datos de 40 bits uno por uno.
# cambia a entrada usando pull up
        RPi.GPIO.setup(self.__pin, RPi.GPIO.IN, RPi.GPIO.PUD_UP)

# recopila datos en un arreglo de discos
        datos = self.__collect_input()
Raspberry-Pi-Zero-W-Communicates-with-DHT11

Como puede ver, los datos recopilados incluyen la señal Responsive, y tiene que calcular la segunda vez.
# analiza las longitudes de todos los períodos de extracción de datos
        pull_up_lengths = self.__parse_data_pull_up_lengths(datos)

# si el recuento de bits no coincide, devuelve un error (datos de 4 bytes + suma de comprobación de 1 byte)
        si len(pull_up_lengths) != 40:
            return DHT11Result(DHT11Result.ERR_MISSING_DATA, 0, 0)
Los datos de 40 bits incluyen los datos de humedad, los datos de temperatura y la suma de comprobación: el 1 ~ 8 bits es la parte entera de la humedad, el 9 ~ 16 bits es la parte decimal de la humedad, el 17 ~ 24 bits es la parte entera de la temperatura, los 25 ~ 32 bits son la parte decimal de la temperatura, los 33 ~ 40 bits son la parte de suma de verificación. Como:

Los datos de 40 bits que obtuve del osciloscopio son 01000011 00000000 00011010 00000100 01100001. El de humedad es 01000011 00000000, lo que significa 67.0% de humedad. La temperatura es 00011010 00000100, lo que significa 26.6 ° C.

Suma de comprobación: 01100001 = 01000011 + 000000000 + 00011010 + 00000100

Si la suma de comprobación no es igual a la suma de otros, los datos son incorrectos.
# calcula bits a partir de longitudes de los períodos de extracción
        bits = self.__calculate_bits(pull_up_lengths)

# tenemos los bits, calcular bytes
        the_bytes = self.__bits_to_bytes(bits)

# calcular suma de comprobación y comprobar
        suma de comprobación = self.__calculate_checksum(the_bytes)
        if the_bytes[4] != suma de comprobación:
            return DHT11Result(DHT11Result.ERR_CRC, 0, 0)

# ok, tenemos datos válidos, devuélvelos
        return DHT11Result(DHT11Result.ERR_NO_ERROR, the_bytes[2], the_bytes[0])

5. Código de carga y resultado

Raspberry-Pi-Embedded-System-with-DHT11

Conecte el Pi Hat y el módulo Mabee DH11, cargando el código, verá el resultado como muestra la foto: eltemperatura es 29°C, y elLa humedad es del 75%.
Mostrar los datos de humedad-temperatura-en-Raspberry-Pi

Todo el código se puede obtener deGithub. Ejecute el código predeterminado y opere, obtendría las lecturas de DHT11 y las mostraría en la pantalla LCD.

Si tiene más preguntas para este artículo sobre el uso básico de Raspberry Pi con la biblioteca DH11, o necesitaServicio PCBA llave en mano, no dude en ponerse en contactoservice@makerfabs.com.guiño

Contáctenos