DHT22 liefert keine Daten wenn RST -> GND verbunden wird bzw nach dem Aufwachen von Deep Sleep

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Bei mir laufen ESP8266 mit DHT22 und Deep Sleep ohne Probleme. Die MCU bekommt seine Stromversorgung per USB und der DHT22 haengt an 3.3V Pin von der MCU. Dann dachte ich ESP01S zu nehmen und die mit Batterie zu betreiben. Dazu habe ich den DHT22 entsprechend an GPIO2 angeschlossen. Merkwürdigerweiß habe ich fast nie Werte vom DHT22 bekommen sondern nur nan. Bis ich schliesslich rausfand dass der DHT22 immer dann funktioniert wenn ich 3.3V neuu von meinem Labornetzteil anlegte. Wenn ich aber RST auf GND lege und einen Restart des ESPs dadurch erzeuge - was auch beim Aufwachen vom Deep Sleep passiert - liefert der DHT22 nan :wallbash: .Offensichtlich wird der DHT22 beim Aufwachen nicht richtig initialisiert.

    Daraufhin habe ich verschiedene Threads gefunden wo exakt dasselbe Verhalten beschrieben war. Lösungen waren entweder Vcc vom DHT an einen GPIO zu legen und vor dem Runterfahren in deep sleep den GPIO zu deaktivieren und beim Hochfahren ihn zu aktivieren oder einen DS18B20 zu nehmen.

    Weiss jemand noch eine andere Lösung? Ich habe nun DHT22 und würde die gerne nutzen. Per GPIO DHT ein/ausschalten gefällt mir irgendwie nicht.

  • DHT22 liefert keine Daten wenn RST -> GND verbunden wird bzw nach dem Aufwachen von Deep Sleep? Schau mal ob du hier fündig wirst!

  • Moin framp,

    d.h. der DHT22 hängt immer an 3,3V ?

    Wie schnell wird denn der DHT abgefragt? Hast du mal vor dem Init des DHT's mal eine Pause eingelegt?

    Oder zeige eindach dein Setup()

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Im Deep sleep code wird alle Minute abgefragt. Aber mit dem DHT22 Adruino Beispiel DHTtester kann ich es sehr gut reproduzieren.

    Dann bekomme ich folgende Ausgabe. Erst Strom angelegt, dann RST -> GND. Das kann ich beliebig wiederholen.

  • Moin framp,

    du nutzt diese dht.h: adafruit/DHT-sensors-library ?

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Ja. Ich habe im library Verzeichnis nachgesehen. Ja. Allerdings DHT.h und dht.h. Im Header steht

  • Moin framp,

    tut mir ja leid.

    Dein Sketch macht es bei mir. Siehe Zeiten.

    Habe aber nur einen ESP8266-01. Kein S

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Vielen Dank fuer Dein Nachstellen des Problems. Die Frage ist jetzt ob es am DHT oder am ESP liegt. Ich habe jetzt auch rausbekommen und verifiziert dass GPIO2 auch fuer die interne LED beim ESP01S genutzt wird. Die blinkt sowohl beim RST als auch Vcc anlegen. Kann auch sein dass da irgendwo der Hase im Pfeffer liegt :conf: Weisst Du ob beim ESP01 auch eine LED per GPIO2 angesteuert wird?

  • Moin framp,

    der ESP-01 hat 2 Led's. Eine Power und eine an GPIO2. Die blinkt auch jedesmal wenn auf den DHT zugegriffen wird.

    Was ich aber noch schreiben wollte. Mein DHT22 sitzt auf einer kleinen Platine. Dort sind schon der Widerstand und Kondensator verbaut. Ich kann gerne, morgen, einen "normalen" DHT22 nehmen und ihn mit einem 10KOhm Widerstand versehen.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hast Du einen "nackten" DHT22 oder einen auf einem Breakoutboard? Ich habe hier noch irgendwo einen an einem Rasbpi Zero hängen, der hat gerade keine Aufgabe, und eine Lieferung mit ESP8266-01 soll bald eintreffen (hoffentlich, letztens machte ein CO2-Sensor auch auf der letzten Etappe wieder kehrt :wallbash: ), dann könnte ich mal etwas experimentieren.

    Hast Du das Ganze auch schon mit einem DHT11 ausprobiert? Reagiert der ähnlich?

  • Moin framp,

    so, ich habe nun Typen, die ich habe, ausprobiert.

    - DHT22 auf Platine. R + C sind da drauf

    - DHT22 nackt. Mit und ohne Pullup am Datenpin

    - DHT11 nackt. Mit und ohne pullup am Datenpin

    Und es geht immer.

    Um den Verdacht der störenden Led auszuräumen.

    In der Arduino Ide, unter Werkzeuge gibt es einen Punkt: Builtin Led. Dort steht 2, man kann es aber ändern.

    Bei mir blinkt sie aber immer wenn ein Messvorgang statt findet.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Hast Du einen "nackten" DHT22 oder einen auf einem Breakoutboard?

    Man sieht seine 4 Beinchen - also ist er nackt :lol:

    dann könnte ich mal etwas experimentieren.

    Habe ich auch noch gemacht.

    1) Benutzte Pin1 (Txt) um die DHT22 Daten abzugreifen. Selber Effekt. Power on -> Werte, RST -> nan

    2) Benutzte GPIO2 um Vcc am DHT22 einzuschalten und per Pin1 auszulesen. Da fing der ESP01 wie verrueckt zu blinken an. Ich dachte schon das wars fuer ihn - aber ist nichts passiert :S

    Hast Du das Ganze auch schon mit einem DHT11 ausprobiert?

    Nein. DHT11 habe ich nicht.

    Ja, das ist so

    Ich habe mal nicht BUILTIN sonder 2 als PIN genommen und da konnte ich auch schoen die LED steuern.

    Auf verschiedenen Seiten bin ich immer wieder darauf gestossen dass es wohl am Besten ist einen I2C Sensor zu nehmen. Mit dem sollte es klappen.

  • Und es geht immer.

    Vielen Dank fuer den Test :thumbup: . D.h. es liegt wohl nun wirklich an dem ESP01S denn Du hast zwei verschiedene DHT22 und ein DHT11 genommen. Aber das passt nicht dazu was ich so im Netz gefunden habe wo meistens ESP01 Nutzer von dem Problem berichteten.

    Oder es gibt irgendwelche Settings im Arduino? Kann ich mir nicht vorstellen. Dass Du einen USB Adapter benutzt? Glaube ich weniger. Dass ich bei mir irgendeinen Verkabelungsfehler habe? Es geht weder mit 4.7k noch 10k Widerstand bei RST - bei power on funktioniert es. Somit ist alles korrekt verdrahtet.

    Etwas ist mir eben noch in den Kopf gekommen. Die meisten Kabel zum ESP laufen parallel vom Breadboard weg (Siehe Photo). Kann da ein Leitungsübersprechen die Ursache sein? LInks der Anschluss zum USB-TTL Converter zum Arduino, rechts die 3.3V Stromversorgung vom Labornetzteil.

  • Moin framp,

    Kommunikation mit dem PC findet über einen USB-Serielladapter statt. Verbunden RX,TX und GND

    Spannungsversorgung mit einem Breadboard-Netzteil.

    Ich hoffe man kann was erkennen...

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

  • Sieht aenhlich wie bei mir aus :lol: Erkennen ist nicht so gut. Ich besorge mir jetzt noch mal ein ESP01 und teste ob es daran liegt.

    Ausserdem besorge ich mir noch BME280 die I2C koennen.

    Matsch1 Falls Du Lust und Laune hast mal einen DHT22 an einem ESP01 zu testen ob per RST an GND der DHT22 Daten liefert - wahrscheinlich wird es bei Dir auch funktionieren nur eben bei mir nicht :wallbash:

  • Moin framp,

    denke daran das der ERS01 "nur" 1Mb Flash hat.

    Der BME280 bzw. die Library nimmt sehr viel Speicher. Test das mal vorher.

    73 de Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"
    Vielleicht trifft man sich in der RPi-Plauderecke.
    Linux ist zum Lernen da, je mehr man lernt um so besser versteht man es.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!