Forum: Mikrocontroller und Digitale Elektronik DHT11 komische WErte


von HDT11 Benutzer (Gast)


Lesenswert?

Hallo,

habe jetzt endlich mal einen DHT11 Sensor in Betrieb genommen, komme 
aber nicht mit der Interpretation der Werte zurecht.

Ich bekomme bspw. vom Sensor folgende Daten (gespeichert in einer 
uint64_t variablen):
0x6a003204a0

Wenn ich wie beschrieben die checksumme berechne indem ich die oberen 4 
bytes aufsummiere bekomme ich auch 0xa0.

Die Luftfeuchtigkeit sollte in den oberen 2 bytes stehen also 0x6a00 
laut Internet ist das untere byte wohl immer 0, könnte also passen.

Die Temperatur sollte dann 0x3204 sein.

Wie müssen die beiden Werte jetzt aber interpretiert werden?
Laut 
https://stackoverflow.com/questions/36664784/dht11-difference-between-integral-and-decimal-data 
sind die Formeln:

Humidity Value = ((float)((integral RH data << 8) + 8bit decimal RH 
data)/(float)10.0)

und

Temperature Value = ((float)((8bit integral T data << 8) + 8bit decimal 
T data)/(float)10.0)

das wären in meinem Fall jeweils die oben angegebenen Werte *0,1, da 
kommt für die RH aber 2713.6 und für die Temperatur 1280.4. Wo liegt bei 
mir der Fehler? Ist es schon beim Einlesen, wobei die Chechsumme ja 
immer stimmt, oder passt bei der Interpretation was nicht?

Danke und Grüße

von G. H. (schufti)


Lesenswert?

nach dem Datenblatt wäre deine Luftfeuchte (in ganzzahlig) 0x6A oder 
106% in dezimal. Der Nachkommateil immer 0 (Auflösung wird ja auch mit 
1% angegeben).

Die ganzzahlige Temperatur 0x32°C oder 50°C. Mit "dezimalteil" lt. 
Datenblatt 50.4°C (Auflösung ist mit 0,1°C angegeben)

Man muss kein Chinesisch können umd das Datenblatt zu interpretieren.
http://www.aosong.com/userfiles/files/media/DHT11-V1_3%E8%AF%B4%E6%98%8E%E4%B9%A6%EF%BC%88%E8%AF%A6%E7%BB%86%E7%89%88%EF%BC%89.pdf

Da bekommt man halt was man bezahlt ...

von zufaulzumanmelden (Gast)


Lesenswert?


von G. H. (schufti)


Lesenswert?

ja, das kenn ich auch. Bloß haben die darin gleich einmal die Anwendung 
des "Dezimalteil" der Temparatur unterschlagen ...
und schreiben bei den Daten etwas von "16bit resolution" im DB für die 
Langnasen steht halt drin was sie gerne lesen ...

von HDT11 Benutzer (Gast)


Lesenswert?

Danke, das Datenblatt kannte ich noch nicht, hatte ein anderes. Die 
Informationen sind aber die gleichen nur etwas ausführlicher.
Hab jetzt auch nochmal mit dem Oszi nachgemessen und die Werte sind wohl 
um 1 Bit verschoben.
Wenn ich das korrigiere und bspw. 0x3500180956 als Ergebnis bekomme 
ergibt das 53%RH und 24°C, das passt besser. Allerdings stimmt jetzt die 
Checksumme nicht immer, damit kann ich aber erst mal leben.
Danke an alle!

G. H. schrieb:
> ja, das kenn ich auch. Bloß haben die darin gleich einmal die
> Anwendung
> des "Dezimalteil" der Temparatur unterschlagen ...

Das habe ich durch ausprobieren herausgefunden, dass die Werte 
tatsächlich nur von 0-9 gehen und daher einfach mit 0.1 multipliziert 
werden müssen, wie schon in der Formel weiter oben beschrieben.

von HDT11 Benutzer (Gast)


Lesenswert?

HDT11 Benutzer schrieb:
> Allerdings stimmt jetzt die
> Checksumme nicht immer, damit kann ich aber erst mal leben.
> Danke an alle!

Kurze Ergänzung dazu: Im Datenblatt steht etwas kryptisch ("Sampling 
period: Secondary Greater than 2 seconds), dass man den Sensor maximal 
alle 2s abfragen darf. Bei mir war es 1s, daher war die Checksumme wohl 
bei jedem zweiten Wert nur korrekt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.