Arduino DHT22和ESP32-湿度不工作,温度错误

Arduino DHT22和ESP32-湿度不工作,温度错误,arduino,esp32,Arduino,Esp32,我试图从DHT22传感器()中获取一个值,它连接到我的ESP32板,但即使从示例程序中,我也从湿度函数和-3200 C左右的温度中获取NaN 这是代码 #include "DHT.h" #define DHTPIN 4 #define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(9600); Serial.println("DHTxx test!"); dht.begin(); } voi

我试图从DHT22传感器()中获取一个值,它连接到我的ESP32板,但即使从示例程序中,我也从湿度函数和-3200 C左右的温度中获取NaN

这是代码

#include "DHT.h"
#define DHTPIN 4
#define DHTTYPE DHT22 

DHT dht(DHTPIN, DHTTYPE);

void setup() {
 Serial.begin(9600);
 Serial.println("DHTxx test!");

 dht.begin();
}

void loop() {
 delay(2000);
 float h = dht.readHumidity();
 float t = dht.readTemperature();

 Serial.print("Humidity: ");
 Serial.print(h);
 Serial.print(" %\t");
 Serial.print("Temperature: ");
 Serial.print(t);
 Serial.println(" *C");
}
你知道为什么会这样吗?我是不是弄错了?
谢谢你的建议。

这可能不是正确答案,但我会解释,你可以测试一下。我身上没有DHT22,但如果我之前在Arduino上使用DHT22时记忆正确,那么DHT22是一个获取温度数据的非常慢的传感器(需要250毫秒)。因此,我建议您稍微修改一下程序:

void loop() {
 float h = dht.readHumidity();
 float t = dht.readTemperature();

 // Check if any reads failed and exit to try again
 if (isnan(h) || isnan(t)) {
   delay(10);   // you can fine tune this delay
   return;
 }

 Serial.print("Humidity: ");
 Serial.print(h);
 Serial.print(" %\t");
 Serial.print("Temperature: ");
 Serial.print(t);
 Serial.println(" *C");
 delay(2000);
}

你们在输入引脚和Vcc之间有上拉电阻器吗?我认为那个电阻器应该焊接在电路板上。这有点帮助,有点。。。湿度现在起作用了,但函数返回了疯狂的数字。。。(-3200摄氏度和6500%)