"Teilweise" falsche Sensorwerte von DHT11 und Darstellung auf Thingspeak

Hallo Zusammen,

ich arbeite an einem Projekt, wo ich Temperatur von einem DHT11-Sensor mit einem NodeMCU einlesen und auf Thingspeaks darstellen möchte.

Teilweise bekomme ich die richtigen Werte für Termperatur & Luftfeuchte und teilweise liegt der Wert bei 255.
Kann mir einer von euch sagen, aus welchem Grund dieser Wert teilwese angezeigt wird?
Zumindest werden auf Thingspeak die gleichen Werte angezeigt wie im Monitor der Arduino-IDE. Also Enweder 16°C oder 255°C.
Für den Code, hab ich mich an folgendem Bsp. orientiert:

embeddedlaboratory.blogspot.de/2016/10/p...s-to-thingspeak.html

#include <DHT.h>  
#include <ESP8266WiFi.h>  
#include <WiFiClient.h>  
#include <ThingSpeak.h>  
#define DHTPIN D3
#define DHTTYPE DHT11  
DHT dht(DHTPIN, DHTTYPE);  
const char* ssid = "???WLAN???";  
const char* password = "????";  
WiFiClient client;  
unsigned long myChannelNumber = ?????;  
const char * myWriteAPIKey = "????";  
uint8_t temperature, humidity;  
void setup()  
{  
  Serial.begin(115200);  
  dht.begin();  
  delay(10);  
  // Connect to WiFi network  
  Serial.println();  
  Serial.println();  
  Serial.print("Connecting to ");  
  Serial.println(ssid);  
  WiFi.begin(ssid, password);  
  while (WiFi.status() != WL_CONNECTED)  
  {  
   delay(500);  
   Serial.print(".");  
  }  
  Serial.println("");  
  Serial.println("WiFi connected");  
  // Print the IP address  
  Serial.println(WiFi.localIP());  
  ThingSpeak.begin(client);  
}  
void loop()   
{  
  static boolean data_state = false;  
  temperature = dht.readTemperature();  
  humidity = dht.readHumidity();  
  Serial.print("Temperature Value is :");  
  Serial.print(temperature);  
  Serial.println("C");  
  Serial.print("Humidity Value is :");  
  Serial.print(humidity);  
  Serial.println("%");  
  // Write to ThingSpeak. There are up to 8 fields in a channel, allowing you to store up to 8 different  
  // pieces of information in a channel. Here, we write to field 1.  
  if( data_state )  
  {  
   ThingSpeak.writeField(myChannelNumber, 1, temperature, myWriteAPIKey);  
   ThingSpeak.writeField(myChannelNumber, 2, humidity, myWriteAPIKey);  
   data_state = false;  
  }  
  else  
  {  
   ThingSpeak.writeField(myChannelNumber, 2, humidity, myWriteAPIKey);  
   data_state = true;  
  }  
  delay(15000); // ThingSpeak will only accept updates every 15 seconds.  
}

Vielen Dank im Vorraus,

Wie versorgst Du den DHT11? Der hat eine untere Grenze der Versorgungsspannung von 3,5V.
Wie lang ist die Zuleitung? Bei 3,5V nicht größer als 20 cm.
Hast Du einen Pullup an der Datenleitung oder hat das Modul einen (messen)?

Gruß Tommy

Du solltest mal einen Test nur mit dem Sensor und dem Beispielsketch für den Sensor aufbauen.
Dann kommst du einfacher an den Fehler ran.
Wenn das dann funktioniert, das nötige auch in dem Hauptsketch übertragen.

Danke für eure schnellen Antworten.
Da der ESP8266 nur mit 3,3 V arbeitet habe ich die verwendet. Eben wie in dem Beispiel. Falls diese 3,3 V nicht ausreichen, wäre ein regelmäßig auftretender falscher Wert eine Folge? Die Jumper-Kabel sind ca. 20 cm lang. Ich probiere das Ganze mal mit Kürzeren aus.
Ansonsten hat der Sensor mit einem anderen Code / Beispielsketch 1a funktioniert.

Ansonsten nimm einen SHT21, da hast Du über I2C Temperatur und Luftfeuchte oder einen BME280, da kommt der Druck noch dazu.
Beide passen zu 3,3V.

Gruß Tommy