Problem mit DHT22

Ein freundliches Hallo in die Runde :slight_smile:

Ich habe da ein kleines Problem mit dem DHT22-Sensor. Und zwar habe ich ja meine Terrarien automatisiert, und im Falle eines Stromausfalls sollten sie wieder normal starten, sobald die Sicherung wieder drin ist. Mir ist aber aufgefallen, dass der DHT22 keine Daten sendet, wenn man die Versorgung kappt und wieder einschaltet. Folge: der Arduino denkt, im Terrarium seien 0Grad, und er regelt die Lampen auf volle Beleuchtung. (ungünstig im Sommer....)
Erst wenn ich dann den Reset-Taster am Arduino betätige sendet der DHT22 die Daten so, wie er soll.
Dachte schon, der Sensor braucht etwas Zeit, um zu "starten".... aber ein 50ms-Delay vor dem dht.setup bewirkt nichts....
Was übersehe ich? :-[

dht22.begin();

Ich denke mal, diese Zeile hier in void setup, initialisiert den DHT.
Wenn null Grad, dann Init, wenn Init 3x fehlgeschlagen, dann Sensor kaputt oder wirklich null Grad.
Oder du verbaust noch einen DS18B20 und guckst, was der macht. Wenn beide null, dann wirklich null, wenn der DS18B20 nicht antwortet, dann sinds, glaube ich, 89°C, wenn das Datenpaket nicht lesbar ist, dann sinds 127°C... So in der Art dann ein Ausschlussverfahren. Wenn beide das Gleiche liefern in einem gewissen Toleranzfenster, dann ist der gemessene Wert plausibel, wenn einer der oben genannten Werte kommt, und der andere was anderes zeigt, dann den unlogischen Wert verwerfen...
Wird aufwendiger, aber so lassen sich Fehler abfangen.

Hallo,
ich kann mir nicht vorstellen, das man einen DHT nach einem Spannungsverlust des Arduino nur durch
Reset wieder zum laufen bekommt.

Für diesen Sensor gibt es doch ganz einfache Beispiele zur Lib.
Nimm doch einmal nur Deinen Sensor und so ein Beispiel, funktioniert das?
Gruß und Spaß
Andreas

Wenn beide null, dann wirklich null

-->in einem Tropenterrarium bei 30Grad, Zimmertemperatur 25 Grad, und nach nem Neustart dann wieder 30? Wohl kaum^^
Die Temperatur wird mir ja die ganze Zeit angezeigt, nur halt falsch, wenn der Arduino durch Spannungsversorgung gestartet wird.

ich kann mir nicht vorstellen, das man einen DHT nach einem Spannungsverlust des Arduino nur durch
Reset wieder zum laufen bekommt.

-->Ich verstehe es halt auch nicht.

Für diesen Sensor gibt es doch ganz einfache Beispiele zur Lib.
Nimm doch einmal nur Deinen Sensor und so ein Beispiel, funktioniert das?

-->Gleiche Symptomatik: habe den ganz normalen Beispielcode genommen, und dann noch hinzugefügt, dass die LED bei Pin13 leuchtet, sobald die Temperatur unter 10Grad ist. Stöpsel ich den Versorgungsstecker ab und wieder dran, dann leuchtet die LED (also übermittelt er wieder 0 Grad). Drücke ich den Resettaster, leuchtet sie nicht mehr, also funktioniert die Datenübertragung wieder. Das Ganze kann ich wiederholen wie ich lustig bin, das Ergebnis wiederholt sich immer wieder. Macht mich irgendwie fuchsig >:(

Tu dir selber einen Gefallen, schmeiß die Arduinoplatine raus! Als Entwicklungswerkzeug ist sie ganz praktisch, aber für ein fertiges Projekt ist sie "suboptimal", um das man vorsichtig auszudrücken. Zum einen kann der Bootloader Nebenwirkungen haben, dann ist die Stromversorgung unglücklich gelöst, so das man 5V nicht einfach von einem Steckernetzteil bereitstellen kann, dann scheint der Power on Reset auch nicht optimal zu sein. Lege einen 10K Widerstand vom Reset (Pin 1) nach + und einen 100n KerKo auf Masse. Nach dem Einschalten zieht der Kondensator Reset kurz nach Masse, so das er definiert gestartet wird. Das Ganze läuft dann auch stabiler.