PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Feuchtemessung DHT 11



oderlachs
01.03.2014, 13:41
Hallo ich möchte mal hier die erfahrenen Nutzer nach Ihrer Meinung/Erkenntnis fragen.

Es geht darum ich habe in zwei verschiedenen Räumen jeweils ein DHT11-Sensor von DFRobot installiert und möchte durch Umluft zwischen beiden Räumen, die Räume jeweils auf eine etwa gleiche Feuchtigkeit halten.
Doch sind die Abweichungen der beiden Sensoren im Test erschreckend, so das es für meine Anwendung gar nicht erst mal in Frage kommen kann...Ich habe mich nicht um 2..3..5° Grad beim Temperaturunterschied der Räume, aber wenn ich beide Sensoren auf dem Testplatz an einer Stelle habe und es sind ca 20% Unterschied in der Feuchtemessung, so ist das lediglich Pi mal Daumen, da kann ich auch die Feuchte, mittels Widerstandsmessung, von 2 Blatt Löschpapier messen, ich glaub das wäre genauer.
Hier erst mal mein Code:


// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain, // etwas geändert

#include "DHT.h"

#define DHTPIN1 14 // what pin we're connected to
#define DHTPIN2 15
// Uncomment whatever type you're using!
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
//#define DHTTYPE DHT21 // DHT 21 (AM2301)

DHT dht1(DHTPIN1, DHTTYPE);
DHT dht2(DHTPIN2, DHTTYPE);

void setup() {
Serial.begin(9600);
Serial.println("DHT - Test!");

dht1.begin();
dht2.begin();
}

void loop() {
// Reading temperature or humidity takes about 250 milliseconds!
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
float h1 = dht1.readHumidity();
float t1 = dht1.readTemperature();
int feuchte1 =(int)(h1 +.5);
int termo1 =(int)(t1+.5);
float h2 = dht2.readHumidity();
float t2 = dht2.readTemperature();
int feuchte2 =(int)(h2 +.5);
int termo2 =(int)(t2+.5);



// check if returns are valid, if they are NaN (not a number) then something went wrong!
if (isnan(t1) || isnan(h1)) {
Serial.println("Failed to read from DHT1");
} else {
Serial.println(" ");
Serial.print("Feuchte1 : ");
Serial.print(feuchte1);
Serial.print(" %\t");
Serial.print("Temperatur1 : ");
Serial.print(termo1);
Serial.println(" *C");

//*****************************

Serial.println(" ");
Serial.print("Feuchte2 : ");
Serial.print(feuchte2);
Serial.print(" %\t");
Serial.print("Temperatur2 : ");
Serial.print(termo2);
Serial.println(" *C");
delay(1500);
}
}


Im Anhang die serielle Ausgabe der Werte, beide Sensoren liegen nebeneinander auf dem Arbeitsplatz im Zimmer.

Ich würde mich freuen wenn jemand dazu etwas sagen könnte, um mir da ein wenig Klarheit oder die Fehlerursache ans tageslicht zu bringen.

Vielen Dank und Gruss
Gerhard
27639

Rofo88
01.03.2014, 22:03
Hallo Gerhard,

die DHT11 sind für 2 Sachen bekannt : billig und ungenau

Die Unterschiede bei dir sind aber schon ganz schön groß, vielleicht einen schlechten Sensor erwicht?
Mann könnte sind ja mal 5 von denen Bestellen (gibts beim Ebay-Chinamann schon für 1,30€ je Stück) und die dann vergleichen und 2 nehmen die sich ähnlich sind.

Der DHT22 soll besser sein, ist aber auch teuerer, sollte man aber auch mal testen.


MfG
RoFo88

oderlachs
02.03.2014, 09:34
Danke Rofo !
Ja Masse statt Klasse, 100 neue Bauteile sind billiger für den Produzenten, als ein Prüfer... ;) Ich habe noch DHT22 da, diese kommen ja auch zum Einsatz dann. Die DF-Robot DHT11 hatte ich auf dem Testplatz verwendet wegen der auf der Platine schon vorhandenen Umschaltung und der JST Buchse zum schnellen Verkabeln....
Ich werde mal heute die DHT 22 testen auf nem Steckboard, mal sehen was die sagen. Ich weiss jetzt auch nicht aus dem Stehgreif, ob die DHT11 auch die Minusgrade mitmachen, bei denen sie noch arbeiten müssen.
Denn das Klima im Einsatz kann zwischen -25° und +40° C betragen...

Danke und Gruss
Gerhard

Nachtrag :

hattest recht...hier die Ergebnisse mit DHT22:
27649

Das Foto vom Messaufbau ist oben(1.Posting von mir) im Anhang gelandet, weiss auch nicht warum ??