Hallo zusammen, bin gestern auf den Artikel “Rohr Temperaturen mit Home Assistant überwachen (Heizung Vor- & Rücklauf)” gestoßen, hab mir dann nen ESP32-WROOM-32 von nem bekannten geholt und wollte das gleich testen. Aber ich scheitere schon dran die pin nummer anzugeben, egal was ich Eintrag er sagt immer “Cannot resolve pin name ‘D4’ for board esp32dev.” Es gibt aber die D4 so beschriftet am Board, auch wenn ich eine andere D Nummer verwende, identischer Fehler. Sicher nur ne Kleinigkeit, wäre super wenn wir jemand auf die Sprünge helfen würde, bin was ESP angeht totaler newbie.
wenn ich GPIO4 oder 2 verwende kann ich den ersten Part aufspielen, aber beim boot erhalte ich dann “[W][gpio.one_wire:078]: Found no devices!” hab aktuell 2 DS18B20 angeschlossen. Mit Aderendhülsen und WAGOs, also Kontaktprobleme sollte es keine geben. Was mache ich falsch?
Das die D-Angabe nicht funktioniert liegt wahrscheinlich an der Einstellung „board: esp32dev“. Das ist eine allgemeine Einstellung für mehrere ESP32 Board-Typen. Wenn du unter PlatformIO Registry eine genauer Boardangabe findest, welche speziell zu Deinem Developementboard passt (z.B. „board:nodemcu-32s“), dann ist die D-Angabe vielleicht möglich. Wenn man es nicht genau weiß, dann nimmt man „board: esp32dev“ (Ich hab bei meinen zwei Projekten mit “board: esp32dev” auch nur GPIO-Angaben verwendet).
Ich würde auf jeden Fall den 4,7k Widerstand einbauen. Der interne Pull-Up Widerstand ist soweit ich mich erinnern kann 10K Ohm oder höher. In mehreren Dokumenten wird darauf hingewiesen, dass der interne Pull-Up Widerstand normalerweise nicht ausreicht. Hinzu kommt, nicht alle ESP32 Pins und nicht alle Developementboards unterstützen Pull-Ups.
Ein Mitglied hier im Forum (hab den Namen leider nicht mehr) hat bei sich folgende Werte für den Widerstand ermittelt beim Anschluss von mehreren Sensoren:
5VDC
1x Sensor = 4,7kOhm
2x Sensor = 4,7kOhm
3x Sensor = 3,3kOhm
4x Sensor = 3,3kOhm
5x Sensor = 2,7kOhm
6x Sensor = 2,7kOhm
7x Sensor = 1,0kOhm
8x Sensor = 1,0kOhm
9x Sensor = 0.680kOhm
10x Sensor = 0.680kOhm
Und die Sensoren nicht an den 3,3V Pin des ESP anschliessen.
Hier aus dem Datenblatt rauskopiert " Obwohl die Stromversorgung
zwischen 3,3V und 5,5V liegen kann, wird eine 5V-Versorgung empfohlen."
Die 3,3 V auf dem ESP sind nicht sonderlich leistungstark und wenn längere Kabel am Sensor hängen wir das mit Signalpegeln ein Problem
( max 1m Kabel wird empfohlen und bei mehreren Sensoren wird das eh ein Problem )
Bei den GPIO’s muss du schauen, wenn Pin vom ESP als I/O oder Sonderfunktion genutzt werden - Blick in Datenblatt empfohlen.
Einige Pins haben Sonderfunktionen.
Ich verwende meist alte 5V USB Ladegeräte für die Versorgung. Ich schneide von einem alten Kabel den Stecker auf der einen Seite ab (oder baue eine Buchse ein) und verbinde die 5V mit dem VIN(5V) Eingang des ESP Developmentboard. Diese Boards haben einen internen Spannungswander, welcher die benötigten 3,3V für den ESP erzeugt.
Parallel schließe ich an die 5V Leitung alle Verbraucher an, die 5V benötigen. So kann man z.B. auch LED-Stripes versorgen, ohne den ESP zu grillen. Wichtig ist, dass die Versorgung nicht über das ESP-Board geführt wird (z.B. im USB Port rein und bei 5V oder 3,3V raus). Das Board verträgt nur sehr geringe Ströme (OK zwei DS18B20 wird es höchstwahrscheinlich überleben), also zur Sicherheit außen rum versorgen.
hab jetzt mal nen Widerstand rein, leider unverändert. auch wenn die Spannungsversorgung über das Expansion Board mit 5V läuft.
2 Sensoren mit 3m Kabel hängen zum Testen dran.
sensor:
- platform: dallas_temp
address: 0xRICHTIGEADRESSE
name: temperature
update_interval: 120s
auch in deinem Code? Ich würde auch das “pullup: true” weglassen, wenn ein externer Widerstand dran hängt. Der Sensor-Teil wird zusätzlich zum one_wire-Teil auch benötigt.
Ich habe mal eben eine kleine Schaltung aufgebaut mit einem DS18B20 Sensor.
Haben den Sensor an 3,3V Versorgungsspannung und mit einen 4,7kOhm Widerstand zwischen Datenleitung und 3,3V betrieben (als D1-Mini PIN: D6).
Den DS18B20 an 5V anzuschließen hat nicht funktioniert, dadurch wurde D6 auch auf 5V hochgezogen. Wahrscheinlich sollte man dafür einen Levelschifter dazwischen schalten. Irgendwo hatte ich zwar gelesen, das D1-Mini 5V fest sein sollen (OK, meiner ist bei dem Test auch nicht abgeraucht) aber irgendwie hat es bei mir nicht funktioniert (die Stromanzeige am Labornetzteil ist auch hoch und runter gelaufen dabei).
Das verdrehen von GND und VCC am DS18D20 hat übrigens sofort zu einem Einbrechen der Versorgungsspannung geführt und sehr viel Strom gezogen (war am Labornetzteil glücklicherweise begrenzt), also besser nicht verdrehen…
Die Adresse wurde wie erhofft auch ohne den “sensor” Teil im Logging angezeigt, allerdings nur, wenn der Sensor hardwaremäßig korrekt angeschlossen und versorgt ist. Stimmt irgendetwas mit der Datenleitung, Versorgung oder Masse nicht, dann gibt es keine Adressangabe im Logging.