Das ist quasi 1:1 aus der NodeMCU Doku übernommen.
Verkabelt ist der DHT22 wie folgt:
+ DHT22-VCC -> NodeMCU-3.3V
+ DHT22-GND -> NodeMCU-GND
+ DHT22-DATA -> NodeMCU-D0, D1, D2, D3, D4 (habe alle probiert)
Leider bekomme ich immer nur ein "DHT timed out." :-(
Die Spannung (3.3V) liegt am DHT22 an, das habe ich bereits
nachgemessen. Mit dem Wert von "pin" habe ich auch herumgespielt, und
den DHT22 auch schon an andere GPIOs angeschlossen. Alles ohne Erfolg.
Kann mir jemand weiterhelfen?
Pin 4 ist GPIO2 - auf dem ESP-01; wo das auf deinem ESP12 (? ist auf den
meisten NodeMCUs drauf) gemapt ist, weiß ich nicht. Versuche mal, auf
der Platine den Pin zu finden:
http://l0l.org.uk/wp-content/uploads/2014/12/ESP12pinout.jpg . Da muss
Data ran.
Der DHT22 läuft zwar auch ohne, aber gibt schwankende Werte aus, wenn du
keine 100nF über Vcc und GND lötest.
Auslesen dann via
Hi Dirk,
ich habe ebenfalls floating point drauf.
Habe anhand deines Schaltplans noch mal gemessen, und es sieht
eigentlich alles gut aus. Der DHT hängt nun an GPIO2.
Das read habe ich, wie von dir vorgeschlagen, auf readxx geändert.
Leider alles ohne Erfolg :-(
Nach wie vor nur Timeouts...
PS: Einen anderen Sensor habe ich auch ausprobiert, um auszuschließen,
dass es am DHT22 liegt. Der will aber genausowenig.
PPS: An einem Arduino Uno funktioniert der Sensor bei gleichartigem
Anschluss auf Anhieb.
Hast du ein vollständiges NodeMCU-Board oder einen ESP-12?
Ohne NodeMCU-Peripherie wie LDO und Kondensatoren solltest du noch
Kapazität an Vcc gen GND packen. Bei meinen ESP-01 habe ich über Vcc
nach GND: 10+100uF KerKo+100uF Tantal. Damit laufen die dann stabil,
egal, ob ich die aus einem kleinen LDO oder mit einem Schaltregler auf
3,3V aus einer 5V-USB-Wandwarze speise. Die 0,1uF für den DHT22 sind
tatsächlich ein Muss, verbaue die auch mal.
Moin moin,
ich habe eine NodeMCU => Was genau ist denn dann noch an Peripherie
erforderlich?
Die ganzen Bastel-Anleitungen, die man so im Internet findet, kommen
komplett ohne zusätzliche Bauteile aus (manchmal 10k Ohm zwischen DATA
und VCC). Siehe Bild. Daher hätte ich eigentlich erwartet, dass das
ganze ohne Cs und Rs funktioniert...
Wäre ja seltsam, wenn meine NodeMCU anders wäre, als die der anderen
Leute ;-)
Harald schrieb:> Steck mal zwischen rot und gelb einen 4,7 kOhm Widerstand.
Moin, der PullUp macht keinen Unterschied.
Mittlerweile habe ich das Problem aber gelöst :-)
Was es genau war kann ich leider nicht sagen, da ich zu viele Variablen
auf einmal geändert habe:
- Firmware noch mal frisch bauen und flashen. Dabei unbedingt das
DHT-Modul einziehen. Zusätzlich empfiehlt es sich, die floating-point
Variante zu wählen.
- Als Library das original DHT-Modul verwenden. Die anderen Libs die
man so auf GitHub findet wollten (zumindest bei mir) nicht
funktionieren.
- Pinbelegung beachten (ESP8266 vs. NodeMCU vs. Platinenaufdruck),
siehe oben.
Weitere Bauteile habe ich keine in der Schaltung (weder Cs noch Rs).
Trotzdem läuft es nun stabil, und die Messwerte sind recht genau.
Vielen Dank an euch für die Hilfe!
Kabelrolle schrieb:> Muss man die selbst zusammenstellen und compilieren oder kann man die> irgendwo herunterladen?
Das kannst du ganz einfach online machen:
http://nodemcu-build.com/
Da hakst du die Module an, die du brauchst, startest den Build, und
wartest ein bisschen. dann kommt ein paar Minuten später eine E-Mail mit
den Download-Links zu deinem Build (als Integer und FP Version).
Es lebe das Web 2.0 (oder so) ;-)
Boris P. schrieb:> - Als Library das original DHT-Modul verwenden. Die anderen Libs die> man so auf GitHub findet wollten (zumindest bei mir) nicht> funktionieren.
Welche Datei hast du konkret verwendet? Die originale erzeugt bei mir
Fehler...
Hallo,
auch ich hab den DHT22 hier und will damit messen. Mein Problem ist,
dass ich es wie oben dokumentiert ist angeschlossen habe, 4,7K Pullup
ist dran, aber der Sensor schweigt.
Mein Messinterval ist 4 Sekunden, dann ziehe ich für etwa 34ms auf GND,
und der DHT22..... schweigt.
Was ich im Netz gefunden habe, so soll das Startsignal mindestens 18ms
Low sein, dann sollen die Daten sprudeln.
Mit meinem Scope sehe ich die 34ms GND, dann ein High und das wars.
Muss ich länger/kürzer warten?
Sollte doch alles stimmen, man kann maximal alle 2 Sekunden messen.
Mindestens 18ms Low hab ich, warum kommt nix?
Klemm ich den Sensor und Pullup ab, so hab ich 0V auf der leitung, also
mein Pin ist Eingang und der H Pegel kommt vom Pullup.
Hat da jemand einen Tip?
Danke sehr, Gruß
Thomas
Da bin ich nochmal,
die Info mit MINDESTENS 18ms scheint wohl falsch zu sein.
Hab nun etwa 15,6ms und es sprudeln dann Daten.
Also sieht es so aus als wenn man MAXIMAL 18m auf GND darf, dann
reagiert das Teil.
Guten Abend noch..
Thomas
Und noch eine Effekt:
Sollte man zu lang auf Low ziehen so scheint der Sensor "bockig" zu
sein.
Es kommt dann auch nichts mehr wenn man wieder korrekt started.
Es muss mal ausgeschaltet werden, dan klappt es wieder.
Also: Start Low muss zwischen 0,5 und 18ms sein.
Thomas