Hallo, ich plane 5 DHT Sensoren an einem ESP32 Development Board zu betreiben. Die DHT Sensoren sind jeweils in den Zimmern im Haus verteilt. Der ESP32 sitzt zentral. Die Kabelverbindung läuft über 1.5 mm2 Kabel. Soweit ich verstanden habe sind die GPIOs des ESP32 für 3.3V ausgelegt sind. Jetzt habe ich im Datenblatt zum DHT 22 gelesen, dass der mit einer Spannung von 3.3V - 6V betrieben werden kann, wobei 5V empfohlen sind und ein Pullup Widerstand (10K) zwischen DATA und VCC sitzen sollte. Aber liegen dann nicht 5V am GPIO des ESP32? Ich habe schon eine ähnliche Konstellation laufen: - Wemos D1 Mini mit einem Powershield - AM2301 Die AM2301 werden mit 5V versorgt. Messe ich am GPIO sehe ich ca. 4.9V. Ich wäre jetzt davon ausgegangen, dass der Wemos auch nur 3.3V am GPIO verträgt. Warum ist der noch nicht gestorben? Gruß bjoern_w803
Bjoern schrieb: > Die DHT Sensoren sind jeweils in den Zimmern im Haus verteilt. Der ESP32 > sitzt zentral. Das wird kaum stabil funktionieren. Bjoern schrieb: > Aber liegen dann nicht 5V am GPIO des ESP32? Der ESP32 hat 3.3V I/O.
MaWin schrieb: > Bjoern schrieb: >> Die DHT Sensoren sind jeweils in den Zimmern im Haus verteilt. Der ESP32 >> sitzt zentral. > > Das wird kaum stabil funktionieren. > Warum nicht?
Bjoern schrieb: > Warum nicht? Eine asymmetrische Schnittstelle, die für geräteinternen Gebrauch vorgesehen ist, fängt sich mit Sicherheit irgendwelche Störungen ein.
STK500-Besitzer schrieb: > Eine asymmetrische Schnittstelle, die für geräteinternen Gebrauch > vorgesehen ist, fängt sich mit Sicherheit irgendwelche Störungen ein. Das sollte dann aber beim Wemos D1 Mini mit dem AM2301 ähnlich sein? Das Setup betreibe ich im Erdgeschoss seit über einem Jahr. Was wäre ein alternativer Temperatur / Humi. Sensor? Sollte man dabei auf I2C Sensoren ausweichen?
Hallo, über wie viel Meter reden wir bei dem weit entfertesten Sensor? I2C ist auch nur als Kommunikation auf einer PCB gedacht. Das weiteste was ich mal zu laufem bekommen hab waren 1,5-2m. (also nicht zu empfehlen) Must wohl auf RS232 oder RS485 nehmen. Vier Adrige Leitung (+,sig,sig,-) µC <-> RS485 <-> Leitung <-> RD485 <-> µC <-> Sensor Sonst kannst dir auch mal Temperaturdraht(typ k) angucken, dort wird die Auswertung ein bisschen schwieriger ;) Gruß Michael
Michael M. schrieb: > über wie viel Meter reden wir bei dem weit entfertesten Sensor? Ich kann es dir ehrlich gesagt nicht genau sagen - vielleicht maximal 25m - gehe aber von weniger aus. Aber wie gesagt betreibe ich ein ähnliches Setup (siehe oben). Mal angenommen ich würde es jetzt so testen wollen, stehe ich noch immer vor dem eigentlichen Problem, dass ich bei der Kabellänge 5V brauche und die GPIOs und für 3.3V ausgelegt sind. Da scheint sich das 'Internet' aber auch nicht einige zu sein, welche PINs in der Praxis mit 5v funktionieren ohne das Board zu schmoren. Meine Idee wäre jetzt ein Bi-Direktionaler Level Shifter (3.3V <-> 5V). PS: Die Datenblätter vom DHT22 sind sich bzgl. Entfernung auch nicht ganz einig. Hier spricht man von 100m: https://cdn-shop.adafruit.com/datasheets/Digital+humidity+and+temperature+sensor+AM2302.pdf hier spricht man von 20m: https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf
Bjoern schrieb: > Aber liegen dann nicht 5V am GPIO des ESP32? Die Frage kann die das Ohmsche Gesetz beantworten. Der Spannungsabfall am Widerstand berechnet sich aus Widerstandswert und fließendem Strom. Bjoern schrieb: > Warum ist der noch nicht gestorben? Miss die Spannung am GPIO einfach einmal nach. Es werden keine 5V sein. Der Strom wird durch die Eingangsschutzdioden fließen.
> Bjoern schrieb: >> Warum ist der noch nicht gestorben? > > Miss die Spannung am GPIO einfach einmal nach. Es werden keine 5V sein. Danke - ich habe es bei meinem Wemos Setup nachgemessen. Da liegen ca. 4.9V an. > Der Strom wird durch die Eingangsschutzdioden fließen. Wenn auf dem ESP32 eine Schutzdiode am Eingang ist, sollte er mit den ~5V klar kommen. Oder doch lieber auf Sicherheit gehen und einen Level Shifter verwenden? Kosten ja nix...
:
Bearbeitet durch User
nimm den Levelsifter auf jedenfall ! Dann kannste ja ausprobieren wie weit du kommst. Gruß
Bjoern schrieb: > Das Setup betreibe ich im Erdgeschoss seit über einem Jahr. Ja und wie viele Bitfehler hast du da so? 90%? Und die restlichen 9% sind geraten?
Bjoern schrieb: > Ich wäre jetzt davon ausgegangen, dass der Wemos auch nur > 3.3V am GPIO verträgt. Gängig wäre, daß das Datenblatt Vcc+0,3V als absolutes Maximum erlaubt; d.h. bis max. 3,6V dürfte er noch nicht sterben. > Warum ist der noch nicht gestorben? Weil Dir auch das Überschreiten der maximal zulässigen Werte nicht garantiert, daß der Chip stirbt; aber es könnte jederzeit passieren.
MaWin schrieb: > Ja und wie viele Bitfehler hast du da so? 90%? Und die restlichen 9% > sind geraten? Was würde denn bei Bitfehlern passieren? Ich bekomme falsche oder überhaupt keine Werte. Die falschen Werte wären aber mit Sicherheit nicht konstant. Erstens habe ich natürlich (zumindest am Anfang) die Messergebnisse mit einem anderen Thermometer überprüft. Zweitens - auf dem Wemos läuft Tasmota. Der schickt alles an NodeRed und NodeRed schiebt alles in InfluxDB. Ich habe mir gerade die Messergebnisse der letzten 24h angeschaut. Alle 4min wird ein Wert in die DB geschrieben. Die Werte liegen alle sehr nah beieinander - Abweichung max. 0.1°C. Das würde ja der Messgenauigkeit entsprechen. Was mich wundert ist, dass jeder 5te Wert leer ist. Das muss ich noch mal untersuchen. Stört mich aber nicht, da die Fussbodenheizung relativ träge reagiert.
Ich habe es noch einmal geprüft. Der Test oben basierte auf einem Chronograf Export. Tasmota schickt die Messungen alle 5 Minuten. Die Werte in der DB sind alle vorhanden und sehen gut aus.
:
Bearbeitet durch User
Michael M. schrieb: > Hallo, > > über wie viel Meter reden wir bei dem weit entfertesten Sensor? > > I2C ist auch nur als Kommunikation auf einer PCB gedacht. Das weiteste > was ich mal zu laufem bekommen hab waren 1,5-2m. (also nicht zu > empfehlen) > > Must wohl auf RS232 oder RS485 nehmen. Der DHT22 benutzt doch so‘n Pseudo-1-Wire Protokoll… Wenn es läuft, warum nicht. Meine Heizung würde ich damit nicht steuern, aber so als Informationsquelle für Temperatur & Luftfeuchtigkeit…
Uwe D. schrieb: > Meine Heizung würde ich damit nicht steuern, aber so als > Informationsquelle für Temperatur & Luftfeuchtigkeit… Vielleicht habe ich mich da etwas falsch ausgedrückt - die Heizung wird damit nicht gesteuert. Aber die Thermostaten. Und was machen die Busch-Jäger Dinger anders? Bei den 'billigen' für 60€ sieht man nicht mal die Temperatur ;-)
Bjoern schrieb: > Die Werte liegen alle sehr nah beieinander - Abweichung max. 0.1°C. > Das würde ja der Messgenauigkeit entsprechen. Bestimmt nicht. Nur weil irgendetwas 100 Mal wiederholt wird, muss es nicht die Wahrheit sein. Die Messgenauigkeit kannst du nur durch Vergleich mit einem kalibrierten Referenzthermometer bestimmen.
Bjoern schrieb: > Was wäre ein alternativer Temperatur / Humi. Sensor? Sollte man dabei > auf I2C Sensoren ausweichen? Uwe D. schrieb: >> I2C ist auch nur als Kommunikation auf einer PCB gedacht. Das weiteste >> was ich mal zu laufem bekommen hab waren 1,5-2m. (also nicht zu >> empfehlen) >> > > Der DHT22 benutzt doch so‘n Pseudo-1-Wire Protokoll… Wenn es läuft, > warum nicht. Meine Heizung würde ich damit nicht steuern, aber so als > Informationsquelle für Temperatur & Luftfeuchtigkeit… hä ? hab doch nur auf seine Frage zu I2C geantwortet ... Gruß
Michael M. schrieb: > Bjoern schrieb: >> Was wäre ein alternativer Temperatur / Humi. Sensor? Sollte man >> Der DHT22 benutzt doch so‘n Pseudo-1-Wire Protokoll… Wenn es läuft, >> warum nicht. Meine Heizung würde ich damit nicht steuern, aber so als >> Informationsquelle für Temperatur & Luftfeuchtigkeit… > > hä ? hab doch nur auf seine Frage zu I2C geantwortet ... > > Gruß Ja, das habe ich schon verstanden und war keine Kritik an Deinen Ausführungen. Mir ging es darum, dass dieses spezielle Protokoll ja laut Hersteller für dies Leitungslänge besser geeignet scheint als I2C. Hätte ich schreiben sollen als es nur zu denken…
So, Testaufbau ist im Screenshot enthalten, wobei die Leitungslänge darin nicht zu erkennen ist. Der Pullup-Widerstand ist direkt beim DHT22. Zwischen DHT22 und Lvl-Shifter sind ein paar Meter. Es gibt schon ein paar Fehler: 11:40:36.830 DHT: Pin27 read 01F700F6EE 11:40:40.831 DHT: Pin27 read 01F700F6EE 11:40:44.876 DHT: Pin27 timeout waiting for high pulse 11:40:48.841 DHT: Pin27 read 01F700F6EE 11:40:52.843 DHT: Pin27 read 01F700F6EE Die erfolgreichen Reads sind ok. Die timeouts kommen regelmäßig. Ich habe spaßeshalber mal eine Tasmota ESP32 mit einer geringeren CPU Taktung (80MHz anstatt 240MHz) und da gibt es weniger timeouts. Also insgesamt noch nicht schön. cu
Bjoern schrieb: > Also insgesamt noch nicht schön. Wer Mikrokontroller-Schaltungen ohne Abblock-Kondensatoren aufbaut, nachmacht oder verfälscht, insbesondere bei existierenden Schaltungen die Abblock-Kondensatoren weglässt oder falsch verschaltet oder selbst solche Schaltungen entwirft, in Verkehr bringt und/oder aufbaut ohne Abblock-Kondensatoren nach Hersteller- Empfehlungen zu verwenden, wird mit Zugangs-Ausschluss vom Mikrokontroller-Forum nicht unter zwei Jahren bestraft.
Danke - kann ich noch nicht viel mit Anfangen, werde ich mir aber anlesen. Habe den 10K Widerstand jetzt direkt hinter den Level Shifter auf die LV Seite gesetzt und siehe da, keine Timeouts mehr. Vielleicht kann jemand etwas mit den Ergebnissen anfangen.
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.