NEWS
Wie viele DS18B20 an ESP32?
-
Hallo zusammen!
Ich möchte von meiner alten Pimatic Installation sukzessive auf ioBroker umsteigen. Weitgehend habe ich den Umzug schon vollzogen. Lediglich 10 Stück Temperatursensoren DS18B20 laufen noch auf dem alten System (RPi2). Diese nehmen rund um die Heizung Temperaturwerte auf.
Es gäbe jetzt die Option neben meiner ioBroker-Zentrale noch einen zweiten RPi im ioBroker-Slavebetrieb zu installieren. Der RPi kann 16mA Ausgangsstrom pro GPIO liefern. Die Temperatursensoren brauchen je 1,5mA. Macht zusammen für alle 10 Stück = 15mA. Reicht also aus.
Als weitere Möglichkeit wäre ein ESP8266 mit Tasmota. Dummerweise liefert der ESP8266 nur 12mA als GPIO-Ausgangsstrom. Reicht also nicht für einen sicheren Betrieb.
Aber der ESP32 liefert wohl 20mA pro GPIO. Das sollte reichen. Tasmota supportet in der Standard-Config aber nur 8 dieser Sensoren. Das könnte ich IMHO umgehen, wenn ich mir die Firmware selber compiliere und in der Datei xsns_05_ds18x20.ino die Zeile "#define DS18X20_MAX_SENSORS 8" wie folgt anpasse "#define DS18X20_MAX_SENSORS 10".
Sehe ich das alles richtig? Was wäre eure favorisierte Lösung?
Bin für Ratschläge/Erfahrungen sehr dankbar.
Gruß Josh
-
Habe mich für einen zusätzlichen RPi3B im Slavebetrieb entschieden. Läuft stabil mit 10 Stück DS18B20.
-
An einem Wemos D1 Mini mit ESPEasy habe ich 12Stk. DS18b20 seit ca. 3Jahren ohne ausfälle am laufen. Temperaturen werden ebenfalls an meiner Heizung ziemlich genau ausgelesen.
-
@cvidal Interessant. Hätte ich nicht gedacht. Aber vielleicht teste ich das auch mal. Würde aber dann einen ESP32 nehmen. Der liegt noch hier herum. Und mit ESPEasy hatte ich vor Tasmota auch schon experimentiert.
Danke für Deine Antwort.
-
hört sich interessant an ..... bin gespannt ob du das stabil hinbekommst . Ich scheitere an 8 Stück bzw. habe ca. alle 3 Monate einen Ausfall der sich mit einem Neustart beheben lässt.
-
@theduke An welcher HArdware hast Du die 8 Stück denn dran und welche Software nutzt Du?
Wie gesagt, an einem RPi3B als ioBroker-Slave laufen 10 Stück sehr stabil.
-
an einem ESP8266 mit Tasmota ..... da es ja 3 Monate gut geht habe ich mich nicht um die Fehlersuche gekümmert
-
@cvidal Hey cvidal,
dein Post ist zwar schon länger her.
Ich würde gerne wissen, was für einen Widerstand du bei 12 x DS18B20 gebraucht hast. Ich freue mich auf eine Nachricht von dir. Vielen Dank. Grüße Christoph -
@cbrocker Ich würde einen 4K7 nehmen.
-
@cvidal sagte in Wie viele DS18B20 an ESP32?:
An einem Wemos D1 Mini mit ESPEasy habe ich 12Stk. DS18b20 seit ca. 3Jahren ohne ausfälle am laufen. Temperaturen werden ebenfalls an meiner Heizung ziemlich genau ausgelesen.
Hast du die Grenze von 8 Stück lt. der tasmota Seite erhöht ?
Und wie hast du die Begrenzung des sensor-Protokoll von 11 aufgehoben?
Wird der 12 Sensor trotzdem per mqtt übertragen ? -
-
Habe seit Monaten eine 8 Sensor-Variante mit ESP8266 und ESPEasy mit 7 DS18B20 und einem SHT31 im Probebetrieb.
ESPEasy zeigt ein Beispiel mit 12 Sensoren https://esphome.io/components/sensor/dallas.html
Habe keine Beschränkung zu Anzahl Sensoren gelesen.
Der ESPHome Adapter empfängt die Daten.Die Webseite der ESP sieht so aus:
Die Programmierung basiert auf einem Gerät zur Messung und Ermittlung der Wandfeuchte wie ich es zur Steuerung von Luftentfeuchtern nutze. Daran habe ich noch weitere 6 DS18B20 angebracht, welche künftig die noch zu liefernde Batterie der noch zu liefernden PV Anlage überwachen sollen.
-
@josh
Ich habe an einem ESP8266 (mit EspHome programmiert) 12 Dallas DS18B12 seit Monaten stabil laufen. Ich hae sie aber auf GPIOs verteilt weil ich mal gelesen habe, dass das die Fehleranfälligkeit verringert. Als Widerstand habe ich 47 k genommen. -
@wolfgangfb sagte in Wie viele DS18B20 an ESP32?:
Widerstand habe ich 47 k genommen.
sind 4k7 nicht üblich?
Dein Widerstand ist ein bisschen viel, oder nicht ? -
@bahnuhr sagte in Wie viele DS18B20 an ESP32?:
@wolfgangfb sagte in Wie viele DS18B20 an ESP32?:
Widerstand habe ich 47 k genommen.
sind 4k7 nicht üblich?
Dein Widerstand ist ein bisschen viel, oder nicht ?Tippfehler, Komma vergessen, es sind 4,7 k
Ich probiere es aber mal aus ob es nicht auch mit 47k geht, ist ja nur ein Pull-Up Widerstand und mit 47k müssten auch definierte Pegel erzeugt werden können. -
@wolfgangfb Bleib bei den 4K7. Das Datenblatt empfiehlt ca. 5k und zeichnet 4k7 in die Schaltbilder.
Es geht ja nicht um eine statische Spannung, sondern um das Nachladen der Kapazitäten bei der Signalübertragung. Ein zu großer Pullup führt zu "verschliffenen" Signalflanken.
-
Hallo Zusammen.
Ich wollte kurz nur eine Zwischenmeldung abgeben.aktuell betreibe ich im Testaufbau 20x DS18B20 (Dallas) an eine GPIO (16) am ESP32 D1 mini. Alle 3 Leitungen wurden zu den 20 Sensoren verlegt, als Ring. --> geplant sind 16 pro GPIO als HUB um 2x16Sensoren zu verwalten.
Wenn ich es umgesetzt habe, stell ich noch ein paar Bilder mit ein.
Ich flash den ESP32 D1 mit ESPhome über den HomeAssi --> nutze ich nur zum flashen , so was Feines..
Jetzt kommen die versprochenen Bilder.
die Länge ist ca 1,20m bis dann der Sensorring beginnt. Es ist für meine 16elle LiFePo DIY Speicher. Damit möchte ich die Temperaturen der Zellen im Blick haben.
Der 3D Druck Stift mit TPU Material, ist eine Mega Geniale Sache für mich. Damit stabilisiere ich quasie alle Lötverbindungen und mach es etwas robuster.
Die DS18B20 habe ich bewusst steckbar gestaltet um bei Ausfällen, nicht an der Batterie herum zu löten).
Dieser ESP soll noch den GPIO17 mit auslesen, Testaufbau mit HUB Funktion von ESPhome hat funktioniert, aktuell warte ich noch auf die Sensoren aus China. Dann wird der zweite Kreis gebaut. --> mit einigen Verbesserungen --> dann werden nur noch 8 blaue Verbinder a´ 2 3-fach Stecker Anschlüsse verbaut, eventuell auch nur als Stichleitung.... die JSH haben einen 1.5mm Pinabstand. Die Löterei is eine kleine Fummelei, aber mit dem passenden Werkzeug ....
Der Vorteil der Steckerei... alles mit einem mal anstecken und beim erst init hat man die ID der DS18B20, die kann man dann einfach einpflegen und durch an und abstecken der richtigen Zell zuordnen.
-
@marco-3
Kannst Du bitte auch eine Info zu verwendeten Kabeln und Leitungslängen geben. Bei Positionierung der Sensoren in der ganzen Hütte hatte ich da schon "interessante" Effekte/Probleme.
Da ein ESP ja über WiFi läuft, ist es ggf einfacher mehrere zu verwenden anstatt mit aufwendigeren 1-Wire Netze/Leitungen zu agieren. -
@klassisch said in Wie viele DS18B20 an ESP32?:
Habe seit Monaten eine 8 Sensor-Variante mit ESP8266 und ESPEasy mit 7
Die Webseite der ESP sieht so aus:
Hallo Klassisch, hast zufällig den ESPhome Schnipsel für die Berechnung der Uptime in Tage Stunden Minunten Sekunden zur Hand? ich hab da jetzt herum probiert und es kommt zu Fehlern bei kompilieren...
Danke und Grüsse
-
@marco-3 @marco-3 Ist schon lange her. Die Sensoren laufen schon seit > 1 Jahr im Produktivbetrieb
Ich versuche mal was zusammenzusuchen:
Edit: am Anfang des yaml braucht es die Definitionupdates: 2min updateSlow: 15min #slow for device bound values such as RSSI
Dann
# text_sensor needed for human frindly update sensor # text sensor for update. Part . Part 2 is the update sensor itself at the end of sensors chapter # refer to: https://esphome.io/components/sensor/uptime.html text_sensor: - platform: template name: Uptime id: uptime_human icon: mdi:clock-start ########### End text sensors #############
Dann weiter unten
# uptime sensor. for readable uptime use text sensor in text sensor chapter # refer to: https://esphome.io/components/sensor/uptime.html - platform: uptime name: Uptime Sensor id: uptime_sensor update_interval: ${updates} on_raw_value: then: - text_sensor.template.publish: id: uptime_human state: !lambda |- int seconds = round(id(uptime_sensor).raw_state); int days = seconds / (24 * 3600); seconds = seconds % (24 * 3600); int hours = seconds / 3600; seconds = seconds % 3600; int minutes = seconds / 60; seconds = seconds % 60; return ( (days ? String(days) + "d " : "") + (hours ? String(hours) + "h " : "") + (minutes ? String(minutes) + "m " : "") + (String(seconds) + "s") ).c_str(); # uptime generates the uptime of the ESP, shows it on the web page and transmits it to the server
Und wie man sieht, ich habe es einfach abgeschrieben und die Referenzen in den Quelltext eingefügt.
Ich übersetze das alles von einer ESPHome Installation unter Windows. Die ESPHome Unterstützung auf ioBroker funktioniert bei mir leider nicht, weil ioBroker bei mir unter Win läuft.
Habe dann auch alles auf MQTT umgestellt und das funktioniert.
Yaml ist für mich eine Qual. Fängt schon beim Strukturieren per Einrücken statt mit Klammern an. Ähnlich wie bei Python.
Man hätte auch JSON nehmen können und nichts Neues erfinden.