Failed to read from my DHT sensor

Hello, I’m getting this failed to read from DHT sensor. I already checked the pin as D3 is V0 and I also tried D4 which is V2. I’m using NodeMCU. I already refer the similar problem but most of them are the wiring problems. I also already referred to the Dht datasheet to make sure im pining the correct pin (GND> - and 3.3V > Vcc also D3> S)

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>

char auth[] = "URHaTHZ_E1ufJj4Qc_vT4K8aumNlXCdF"; //Enter the Auth code which was send by Blink
char ssid[] = "Bilik Gerakan";  //Enter your WIFI Name
char pass[] = "smkbg@123";  //Enter your WIFI Password

#define DHTPIN 0          // D3
// Uncomment whatever type you're using!
#define DHTTYPE DHT11     // DHT 11
//#define DHTTYPE DHT22   // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21   // DHT 21, AM2301
BlynkTimer timer;
// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
  float h = dht.readHumidity();
  float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V5, t);
  Blynk.virtualWrite(V6, h);
void setup()
  // Debug console
  Blynk.begin(auth, ssid, pass);
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "", 8442);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8442);
  // Setup a function to be called every second
  timer.setInterval(1000L, sendSensor);
void loop()

It appears from the photos that you are using a DHT11 on a breakout board. The pin connections on these boards are different from the raw DHT11 on its own.

You appear to have 3.3v (black wire) connected to the Data pin, GND (blue wire) connected to the Vcc pin, and D3 (green wire) connected to GND.

You’re also trying to read the sensor too frequently, and you are getting muddled-up with GPIOs and Blynk Virtual pins.

It would also be a good idea if you read this:

and an even better idea if you threw the crappy DHT11 in the bin and bought something like the BME280 instead.


Some nostalgic posts:

1 Like

oh my god, thank you. I didn’t knew DHT Sensor had so much different type that differs their pin location. Thank you for the extra note! XD

They don’t.
Bare DHT11 sensors have four pins, as shown in the documentation. You’ve chosen to use a DHT11 that is mounted on a third party circuit board which has three pins, and which are oriented differently to the bare sensor. At least two of the pins are identified by screen printing on the circuit board (S for signal and - for negative/GND).