ช่วยด้วยครับ dht11 อ่านค่าไม่ได้ครับ

#define BLYNK_TEMPLATE_ID ""
#define BLYNK_DEVICE_NAME ""
#define BLYNK_AUTH_TOKEN ""
#define BLYNK_PRINT Serial

#include <SimpleTimer.h>
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <Blynk.h>
#include <SPI.h>

#include "DHT.h"
#define DHTPIN 14 
#define DHTTYPE DHT11 

DHT dht(DHTPIN, DHTTYPE);

char auth[] = "";
char ssid[] = "";
char pass[] = "";
char server[] = "oasiskit.com";
int port = 8080;

int analogPin = 2; 


SimpleTimer timer;

float h,t,t2,val,val2;
void setup()
{
  // Debug console
  Serial.begin(9600);
  /*Serial.println("กำลังเชื่อมต่อไปที่ Blynk Server");
  WiFi.begin(ssid, pass); //เชื่อมต่อ WiFi
   while (WiFi.status() != WL_CONNECTED){
    delay(100);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected.");
  Blynk.config(auth, server, port); //กำหนด Token key , ชื่อ Server และ port
  Blynk.connect(); //เชื่อมต่อไปยัง Blynk
  Blynk.begin(auth, ssid, pass, "sgp1.blynk.cloud", 8080); */
  dht.begin();
  delay(2000);
  pinMode(16, OUTPUT);//water
  pinMode(17, OUTPUT);//fan
}
/*
BLYNK_CONNECTED() {  // ฟังก์ชันนี้ทำงานเมื่อต่อ Blynk ได้ 
  Serial.println("App Blynk ทำงาน!");
} */

int x_time = 0;
bool _x_time = false;

void countCharger(){

if(_x_time == true){ // ถ้ามีการกดปุ่มปั๊ม 1 ครั้ง 
  x_time++; // นับไปครั้งละ 1 วิ แต่ยังจะไม่เข้า loop 5 วิ เพราะยังนับไม่ถึง
  if (x_time > 600) { //นับไปจนกว่า x_time มากกว่า 5
    digitalWrite(16, LOW);
    digitalWrite(17, LOW);
    _x_time = false;
}
}

}

void buttonauto() {
  if (val < 20){
            x_time = 0;
            _x_time = true;
            digitalWrite(16, HIGH);  
          } else if (val >= 80){
            _x_time = false;
            digitalWrite(16, LOW);
          }

        if (t > 25){
            x_time = 0;
            _x_time = true;
            digitalWrite(17, HIGH);    
          } else {
            _x_time = false;
            digitalWrite(17, LOW);
          }
  
}
 //auto 
BLYNK_WRITE(V6){ 
   Serial.println(param.asInt()); 
     if (param.asInt()){         
         timer.setInterval(3600000L, buttonauto);
        }                 
}
//fan 
BLYNK_WRITE(V3){ 
          Serial.println(param.asInt()); 
           if (param.asInt()){ 
              digitalWrite(17, HIGH); 
           } else {
              digitalWrite(17, LOW); 
           }
}
//water    
BLYNK_WRITE(V4){ 
           Serial.println(param.asInt()); 
            if (param.asInt()){ 
               digitalWrite(16, HIGH); 
            } else {
               digitalWrite(16, LOW); 
            }
}

  
void loop()
{
  //Blynk.run();
  delay(5000);
  int chk = dht.read(DHTPIN);
  h = dht.readHumidity();
  t = dht.readTemperature();
  delay(10);
  val = analogRead(analogPin);
  val2 = val * 0.09765625;
  delay(2000);
  if (isnan(h) || isnan(t)) { 
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  delay(2000);
  
  Serial.print(F("Humidity: "));
  Serial.print(h);
  Serial.print(F("%  Temperature: "));
  Serial.print(t);
  Serial.print(F(" C "));
  Serial.print("\n");
  Serial.print("soil_moisture = ");
  Serial.println(val); 
  Blynk.virtualWrite(V0, t);
  Blynk.virtualWrite(V1, h);
  Blynk.virtualWrite(V2, val);  
}

ขึ้น Failed to read from DHT sensor!
ถ้าเสียบแค่โมดูลวัดอุณภูมิตัวเดียวกลับอ่านค่าได้ตอนนี้ผมทำโปรเจค smartfarm ใช้ตัววัดความชื้นในดินด้วยพอมาต่อรวมกันกลับอ่านค่าไม่ได้ขึ้น error

น่าจะได้แล้วลบให้ทีครับขอบคุณครับ

อาจทราบว่าแก้ไขอะไรไปถึงได้ครับ แชร์ความรู้กันดีกว่าทิ้งไปเฉยๆ