DHT22 no transmite a NodeMCU V0.9

Estoy desarrollando para NodeMCU V0.9 con NonOS SDK y no puedo hacer que se comunique con un sensor DHT22.

Cableado: 3,3 V en NodeMCU -> + en DHT22, Tierra a - y pin D1 a la señal, hay una resistencia pull up de 6,8 k en la línea de datos.

De acuerdo con la hoja de datos de DHT22, la MCU debe comenzar bajando la línea de datos durante un poco más de 1 ms después de tenerla en alto durante 1 ms y luego debe escuchar lo que envía DHT22.

Mi código para hacer esto es el siguiente:

gpio_output_set(_pinNumber, 0, _pinNumber, 0);
os_delay_us(START_SET_HIGH_TIME_US);
gpio_output_set(0, _pinNumber, _pinNumber, 0);
os_delay_us(START_SET_LOW_TIME_US);
gpio_output_set(0, 0, 0, _pinNumber);

Pude verificar que el NodeMCU se comporta como se esperaba usando un analizador lógico (ver imagen)pulso bajo durante 1,1 ms

Descarté un DHT22 defectuoso probando 3 diferentes. El DHT22 no responde con los datos como se esperaba.

¿Alguien ha encontrado este comportamiento?

No, porque no están disponibles para NonOs SDK
Tengo mi información de esta biblioteca y copié cómo funciona el código. También leí el tutorial de adafruit.
La hoja de datos indica que entre 3,3 V y 6 V está bien. Estoy usando 3.3V, pero también probé la salida de 5V de NodeMCU
@vicatcu ¿Desea formular su comentario sobre el uso de una biblioteca para verificar qué funciona, como respuesta para que pueda aceptarlo? Probé la biblioteca de adafruit con un arduino y pude descubrir que mi vendedor me vendió un DHT11 en lugar de un DHT22, por lo que mi tiempo no fue el correcto. Tu comentario me llevó a mi respuesta.

Respuestas (1)

¿Ha intentado usar una de las innumerables bibliotecas de Arduino que hablan con el DHT22? Por ejemplo, lea learn.adafruit.com/dht? Su código fuente es abierto y puedes emular lo que hacen de la manera que quieras.

Le recomiendo que ejecute el código de alguna biblioteca y observe que realmente funciona, y luego use su analizador lógico para ver qué está haciendo realmente ese código, en lugar de contar con su inspección/lectura del código. Es probable que te hayas perdido algunos matices de lo que está haciendo la biblioteca que estás usando como referencia.

Ejecutar una biblioteca de trabajo me ayudó a encontrar mi problema, gracias.