Sensor DH-11 en una Raspberry Pi y Arduino

0

Estoy tratando de hacer que mi sensor DH-11 funcione en mi frambuesa pi, pero no lo he logrado después de varios intentos. Seguí el siguiente tutorial de Adafruit:

enlace

Mis intentos no tuvieron éxito. Simplemente no recibo ningún tipo de retroalimentación del sensor. Sé que mis dos sensores DH11 / DH22 funcionan porque leo datos de ellos si hago el mismo circuito con mis arduinos y ejecuto un script. Tampoco creo que los GPIOs de mi frambuesa estén dañados de ninguna manera, ya que probé con Me gusta 5 y no obtuve ningún dato.

No estoy intentando registrar cosas en un documento de Google como lo hace el tutorial, solo estoy tratando de leer datos del sensor utilizando la frambuesa. Tengo planes de registrar los datos en un servidor y acceder a ellos de forma remota. Pero para eso primero tengo que obtener lecturas del sensor.

Ahora, ¿alguien ha logrado esto? ¿Leyendo datos de un DH11 / DH22 en la frambuesa pi? Si es así, ¿podría decirme qué tutorial siguió? He estado buscando algunos por ahí, pero parece que el de Adafruit es el más popular.

¡Gracias por tu ayuda!

¡Salud!

    
pregunta idelara

2 respuestas

3

Adafruit puede ser un tutorial popular, pero la implementación real del software quizás no sea la mejor (advertencia, tengo mi propia solución de software, por lo que no debería considerarse imparcial).

El DHT11 / DHT22 genera un flujo de bits para codificar la lectura. La longitud de cada pulso de tiempo máximo codifica si el bit es cero o uno. La sincronización de estos bits es crucial para obtener una lectura válida.

La mayoría de las implementaciones utilizan el tiempo de espera ocupado para los bits que son susceptibles a los problemas de reprogramación de Linux. Esas implementaciones funcionan pero no son confiables. Es posible que deba tomar tres o cuatro lecturas antes de obtener una que pasa el cálculo de suma de comprobación (esperando varios segundos entre cada una).

Un método confiable es usar el hardware SPI para leer el flujo de bits. Eso hará que las tasas de error sean mejores que 1 en 100,000 lecturas.

El otro método es usar mi pigpio biblioteca que realiza eventos de gpio hasta el nivel de microsegundos. DHT22 Ejemplo de Python aquí . El github tiene un ejemplo de DHT11 .

Para obtener información de antecedentes, consulte publicación

    
respondido por el joan
0

Hay un par de pasos para leer el DHT11 con frambuesa. Primero, si está utilizando la biblioteca wiringPi, está listo para usar, ya existen implementaciones en Internet. Pero si en mi caso quiere hacerlo sin ninguna biblioteca externa, debe asignar la memoria de frambuesa para manipular los pines GPIO. Luego, necesita un temporizador preciso para enviar al DHT11 una señal de inicio, que activará el sensor para comenzar a proporcionarle datos. Puede leer los temporizadores en la hoja de datos del producto. Después de eso el sensor te enviará 5 bits de datos. El primero es la parte entera de la humedad. El segundo es la parte decimal de la humedad. Tercero y cuarto son los valores de temperatura. Y el quinto bit es la suma de verificación. Entonces, si sus temporizadores son correctos cuando suma los primeros cuatro bits, deben ser iguales al quinto bit para tener datos correctos.

Puedes ver mi implementación aquí .

    
respondido por el Aleksander Dashov

Lea otras preguntas en las etiquetas