Hallo zusammen,
ich habe eine Frage zur Thematik DHT22 Sensor an einem ESP8266.
Der Sensor ist mit 3,3V versorgt, 1m Leitungslänge und am Sensor ist ein 1µF Kondensator , sowie der 4,7k Pull Up. Die 3,3 V kommen sauber am DHT22 an.
Nun breche ich mal auf das wesentliches zusammen.
Sagen wir der Einfachheit, ich habe ein Skript mit nur einem DHT22, mehr nicht.
Im Setup nur den DHT und im Loop mit 2 Sek. Delay die Sensorabfrage.
Das funktioniert sehr gut, aber 1 bis 2x von 100 oder so bringt der Wert "nan" in der Anzeige oder auf dem Serial Monitor und nicht den Sensorwert.
Das scheint auch im gewissen Maße normal zu sein.
Meine Frage ist, wie kann ich das "nan" einfangen zum auswerten ?
Der DHT22 Wert ist als Float definiert.
Dabei erscheint dann ab und zu "nan" statt der Wert.
Ich hab vieles probiert den "nan" einzufangen, auch mit char usw.
Leider bisher alles erfolglos.
Also die Frage lautet:
Wie kann ich ein "nan" eines DHT22 als "Variable" einfangen und weiterverarbeiten um
einen Fehlercounter o.ä. damit bedienen.
ich weiß nicht was du mit einfangen meinst. Aber nan bedeutet "not a number". Das heißt deine Variable wird vermutlich durch irgendeine Rechnung mit einem ungültigen Wert beschrieben. Aus eigener Erfahrung kann ich sagen das es bei mir eine Division durch 0 war die zu "nan" führte.
Ja so ist es.
"einfangen" =nan als Wert in eine Varibale zu bekommen.
Und die Berechnung ist irgendwo in der Lib des DHT22 , ich ruf nur die Funktion auf.
Das Isnan oben scheint der richtige Weg zu sein, aber ich verstehe es noch nicht so ganz.
Wirf das delay() raus und stad dessen millis()
such hach delay() ersetzen loswerden
danach ist das nan Geschichte, oder Du hast irgendwo losen Kontakt
Grüße
hi egal ob milli oder delay... das nan kommt trotzdem.
Wo sehe ich die Version der Lib des DHT 22 den genau ?
--> "isnan" ist das das ganze Geheimniss ?
Das wäre ja ganz einfach, ich werde es probieren und euch berichten
Hallo ,
die entsprechenden Variablen habe ich vor dem Void Setup deklariert.
Die T5 Abfrage ist innerhalb der Void loop.
Der Wert des Sensors wird auch zu 99% sauber angezeigt. ( an einem SPI Display ... )
... gleiches gilt bei "nan" auch das wird angezeigt....
T5 als float
Error T5 als INT
Das "nan" kann ich jetzt durch einfaches abstecken des DHT22 Sensors auslösen.
Also, wenn der Sensor nicht angeschlossen ist kommt auch das "nan".
Was genau meinst du mit Geltungsbereich ?
Ich habe jetzt kurz so probiert, das der Zähler nach jeder Messung hochzählt, das geht.
Dann scheint es nicht wegen der "Erfassung" des "nan" zu liegen , oder ?