C语言 DHT11 传感器在连接到ESP8266时保持打印 255 的温度和湿度



我正在尝试通过我的ESP8266将我的 DHT11 数据放在 AdafruitIO 上,但它不起作用,它一直像这样打印出来:

Read failFailed to read from DHT
Humidity: 255.00 %  Temperature: 255.00 *C
Humidity: 255.00 %  Temperature: 255.00 *C
Humidity: 255.00 %  Temperature: 255.00 *C
Read failFailed to read from DHT
Humidity: 255.00 %  Temperature: 255.00 *C
Humidity: 255.00 %  Temperature: 255.00 *C
Humidity: 255.00 %  Temperature: 255.00 *C
Read failFailed to read from DHT
Humidity: 255.00 %  Temperature: 255.00 *C
Humidity: 255.00 %  Temperature: 255.00 *C
Humidity: 255.00 %  Temperature: 255.00 *C

这是我的代码

#include "DHT.h"
#include "Arduino.h"
#define DHTPIN 5   
#define DHTTYPE DHT11   

DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600); 
Serial.println("DHTxx test!");
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(t) || isnan(h)) {
Serial.println("Failed to read from DHT");
} else {
Serial.print("Humidity: "); 
Serial.print(h);
Serial.print(" %t");
Serial.print("Temperature: "); 
Serial.print(t);
Serial.println(" *C");
}
}

它在与ESP8266一起工作时失败,但是当我用Arduino MEGA2560测试它时,它运行良好。

虽然这取决于确切的型号,但大多数 ESP8266 的输出电源引脚都是 3.3V。 大多数传感器(包括DHT11(更喜欢接近5V的输入(它声称它可以需要3.5V - 5.5V(

这在过去一直困扰着我,我偷偷怀疑这就是你遇到的。

这是哪ESP8266?是一些开发板还是 ESP-01 或类似产品?请提供更多的信息,这些ESP8266板太多了......

由于没有关于接线的图片,因此不能肯定地说,但是引脚号是否正确?我的arduino Uno克隆也有类似的问题,但原因是连接/接线不良。

RandomNerd 有很好的例子:ESP8266 DHT11/DHT22 溫度和湿度 Web Server with Arduino IDE

最新更新