"Teilweise" falsche Sensorwerte von DHT11.

  • Matthias_ESP8266
  • Autor
  • Offline
  • New Member
  • New Member
Mehr
04 Dez 2017 13:11 #345 von Matthias_ESP8266
Matthias_ESP8266 erstellte das Thema "Teilweise" falsche Sensorwerte von DHT11.
Liebe ESP8266-Gemeinde,

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

Vielen Dank im Vorraus,
Matthias


  #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.  
} 

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
06 Dez 2017 09:08 #346 von gruenezone
"Teilweise" falsche Sensorwerte von DHT11.
Hi Matthias!

Dumme Frage: Hast Du mal einen anderen DHT benutzt? Da die Daten des DHT digital hereinkommen und der Code getestet sein soll könnte das eine Ursache sein.

Haupsache grün ;-)

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Mehr
06 Dez 2017 09:11 #347 von supporter
"Teilweise" falsche Sensorwerte von DHT11.
Herzlich Willkommen im Forum, Matthias,

versuche mal folgendes:
STREICHE: uint8_t temperature, humidity;
SETZE: double temperature, humidity;

Bitte Anmelden oder Registrieren um der Konversation beizutreten.

Powered by Kunena Forum