ich wollte 12x Bodenfeuchtesensoren und einen Distanzsensor über die I2C Schnittstelle auslesen. Die Sensoren haben alle eine Kabellänge von 2 bis 3 m. Mein erster Versuch war die Sensoren direkt an den ESP32 anzuschließen. Dafür habe ich ein einfaches Steuerkabel benutzt. Das hat natürlich nicht funktioniert. Die Gründe habe ich dann in diversen Foren und Tutorials nachgelesen und zumindest halbwegs verstanden. Jetzt habe ich das System umgebaut mit und folgende Komponente verwendet:
Bis jetzt habe ich lediglich den I2C Scan durchgeführt und bekomme schon da keine vernünftigen Ergebnisse. Im ersten Schritt war nur ein Sensor angeschlossen, um Adressenkonflikte zu beseitigen. Um auszuschließen, dass es an den Sonoren liegt, habe ich auch getestet, ob sie bei kurzen Kabeln funktionieren. Da dies der Fall ist, sollte es nicht an den Sensoren liegen.
Jetzt habe ich in anderen Forenbeiträgen gelesen, dass der I2C-Bus nicht wirklich für sowas ausgelegt ist. Ich habe jetzt aber schon alle Sensoren für dieses System und habe ein wenig Zeitdruck auf dem Projekt. Hat von euch vielleicht jemand eine Idee was ich falsch gemacht haben könnte / was ich noch probieren kann, um die Sensoren so auslesen zu können?
Ich hoffe, ich habe keinen essenziellen Informationen vergessen, ihr könnt mein Anliegen verstehen und mir hoffentlich helfen. So langsam bin ich der Verzweiflung nahe.
Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.
Zeichne mal einen Schaltplan wie du die p82B715 genau in den BUS eingeschliffen hast. Fig 9 100%ig eingehalten? Ja? Bitte dennoch einen Schaltplan von DEINEM Aufbau mit mindestens 2 Sensoren zeigen.
Mach ein Echtbild.
Verkabelung hast durchgemessen?
Wenn ich mir überlege Sensor->RJ45->Patchkabel->[Wanddose->WandkabelKabel->]Patchpanel->Patchkabel->RJ45->ESP32
da gibts auch reichlich Fehlerpotential für Kabeldreher.
P.S.: Statt 12+1 P82B715 hätt' ich vermutlich einfach 12 ESP genommen (reichen ja auch kleine nackte ESP8266 12E) und mir dieses ganze Kabelgedöns gespart...
Hier hast du vermutlich schon einen Fehler gemacht.
Bei richtigem, sauberem Aufbau funktioniert I2C auch bei 3m Kabel.
Da muss aber auch alles stimmen, Kabel, Pullups usw. alles was das Datenblatt vorgibt.
Aber nicht als Endlösung, sondern nur für einen Test.
Und genau da solltest du noch mal ansetzen. Wenn das funktioniert, kannst du darauf aufbauen und deine Bus-Extender einsetzen. Danach den zweiten Sensor einbauen. Usw.
Du brauchst schon 2 x PB82B715 am jedem Kabel. Bei mir mit CAT5 habe bis 30m probiert funktionierte Einwandfrei. Die gebrauchte Länge ist 10m drauf sind 2Sensoren. Was auch angeblich wichtig ist, man soll die verdrillte adern nehmen wie auf dem Bild. Mittlerweile gibt es bessere IC vom NXP, typ habe vergessen
Ich habe das leider anders gemacht. Ich dachte, es wäre besser, wenn ich aus jedem "twisted pair" eine Ader nehme. Die benutzten Leitungen sind also mit keiner anderen benutzten Leitung verdrillt.
Wenn ich deinen Kommentar richtig deute, kann das schon zu Fehlern führen.
Das versuche ich mal gerade und melde mich, wie das Ergebnis dann aussieht.
Das habe ich gemacht.
Im ersten Schritt habe ich jetzt deine Informationen verarbeitet. Der Sensor funktioniert an einer Kabellänge von ca. 3 m.
Ich habe in unmittelbarer Nähe zum ESP32 2 4,7K Pull-Ups eingesetzt und den Sensor einzeln ohne Patchpanel angeschlossen. Dabei auch den von mir überlesenen Hinweis eingearbeitet und zwei twisted Adern verwendet. Ich bekomme im Scan die richtige Adresse angezeigt und auch der Sensor gibt vernünftige Werte aus.
Da das schonmal funktioniert hat, versuche ich jetzt den Extender da sauber einzubauen.
Ok, prima...wenn das funktioniert, ist es ja der erste Schritt. Und bei 3,3V Spannung (ESP32) kannst du auch besser 3k3 Widerstände als Pullups verwenden.
Persönlich habe mein ESP32 mit 5V an den Pins kaputt gemacht, ist doch nicht so wie mansche schreiben, habe mein Lehrgeld bezahlt für I2C gibt's Pegelwandler, Level Shifter