DHT22 Luftfeuchtigkeit

Ich habe ein DHT22 Sensor an einem ESP8266. Temperaturwert wird richtig angezeigt, Luftfeuchtigkeit bleibt immer bei 1%.

Hatte vorher ein DHT11 benutzt, da lief alles perfekt.

Hat jmd. eine Idee woran es liegen kann?

Hast du die Konfiguration der Library an den DHT22 angepasst?

Ja, ich habe DHT22 als DHTTYPE genommen.

define DHTTYPE DHT22

User543210:
Ja, ich habe DHT22 als DHTTYPE genommen.

#define DHTTYPE DHT22

Dann zeige mal deinen Sketch.
Poste ihn bitte in Code-Tags (Schaltfläche </>)

Ja mache ich später, bin gerade auf der Arbeit und habe ihn nicht dabei.

hier mein Sketch

// www.arduinesp.com 
//
// Plot DTH11 data on thingspeak.com using an ESP8266 
// April 11 2015
// Author: Jeroen Beemster
// Website: www.arduinesp.com
 
 
#include <DHT.h>
#include <ESP8266WiFi.h>
 
// replace with your channel's thingspeak API key, 
String apiKey = "fddsjsjjsgjgfsjf";
const char* ssid = "NETGEAR54";
const char* password = "fdshsj6djgf";
 
const char* server = "api.thingspeak.com";
#define DHTPIN 2 // what pin we're connected to
 
DHT dht(DHTPIN, DHT22,15);
WiFiClient client;
   
 
void setup() {                
  Serial.begin(115200);
  delay(10);
  dht.begin();
  
  WiFi.begin(ssid, password);
 
  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");
  
}
 
 
void loop() {
   
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
 
  if (client.connect(server,80)) {  //   "184.106.153.149" or api.thingspeak.com
    String postStr = apiKey;
           postStr +="&field1=";
           postStr += String(t);
           postStr +="&field2=";
           postStr += String(h);
           postStr += "\r\n\r\n";
 
     client.print("POST /update HTTP/1.1\n"); 
     client.print("Host: api.thingspeak.com\n"); 
     client.print("Connection: close\n"); 
     client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n"); 
     client.print("Content-Type: application/x-www-form-urlencoded\n"); 
     client.print("Content-Length: "); 
     client.print(postStr.length()); 
     client.print("\n\n"); 
     client.print(postStr);
           
 
     Serial.print("Temperature: ");
     Serial.print(t);
     Serial.print(" degrees Celcius Humidity: "); 
     Serial.print(h);
     Serial.println("% send to Thingspeak");    
  }
  client.stop();
   
  Serial.println("Waiting...");    
  // thingspeak needs minimum 15 sec delay between updates
  delay(20000);  
}

Du hast es nicht per "#define" eingestellt. Geht aber auch so.

Nur was soll hier am Ende die "15" ?

DHT dht(DHTPIN, DHT22,15);

Edit:

ich habe gerade bei mir getestet, geht auch mit der 15 am Ende. Soweit kann ich keinen Fehler feststellen.

Was zeigt denn der serielle Monitor an ?

Was die 15 bedeutet weiß ich leider auch nicht.

Im seriellen Monitor zeigt es auch nur 1% an.

also bei mir läuft es auf einem esp, aber ich habe es so initalisiert

#define DHTPIN 2     // what digital pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321

DHT dht(DHTPIN, DHTTYPE);

also, im Prinzip gleich nur ohne dein ,15

Grüße

Ich vermute einen Fehler in der Beschaltung oder ein Defekt des Sensors. Bei mir funktioniert der Sensor auch mit der Konfiguration des TO.

Ich werde es nochmal mit

#define DHTPIN 2     // what digital pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321

DHT dht(DHTPIN, DHTTYPE);

ausprobieren. Benötige ja eigentlich nur die Temperatur.

User543210: Ich werde es nochmal mit

#define DHTPIN 2     // what digital pin we're connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321

DHT dht(DHTPIN, DHTTYPE);




ausprobieren. Benötige ja eigentlich nur die Temperatur.

Dann versteh ich die ganze Aufregung nicht. ;)

Da die Temperatur angezeigt wird, liegt es wohl eher am Sensor. Die obige Definition ist nicht Schuld daran. Bei mir funktioniert es ja auch mit der "15" dahinter.