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
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 ...
http://www.produktinfo.conrad.com/datenblaetter/1400000-1499999/001405544-da-01-en-TEMP_UND_FEUCHTESENSOR_DHT11.pdf … auf englisch scheint’s mir viel einfacher verständlich …
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 ...
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.