Projekt Gewächshaus: I2C Stoppt nach gewisser Zeit

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    ich arbeite derzeit an einem Gewächshausprojekt mit meinem Raspberry Pi 5. Ich empfange I2C-Sensorwerte von allen Sensoren, aber nur für eine bestimmte Zeit – manchmal ein paar Minuten, manchmal ein paar Stunden. Danach stoppt der Bus, und ich erhalte keine Werte mehr. Nach einem Neustart funktioniert der Bus wieder. Außerdem verwende ich einen Onewire- und UART-Sensor, die einwandfrei funktionieren.

    Ich habe bereits folgende Dinge ausprobiert:

    • Installation einer aktiven Kühlung; die CPU-Temperatur liegt jetzt immer unter 50°C.
    • Reduzierung der Baudrate.
    • Verwendung von 4,7 kOhm Pull-Up-Widerständen zwischen 3,3 V und SDA sowie 3,3 V und SCL.
    • Durchführung einzelner Sensortests.
    • Die Verkabelung ist in Ordnung, keine lockere Verbindung.
    • Python-Skripte sollten in Ordnung sein.
    • Alle Sensoren funktioniert alleine.

    Hier sind die Sensoren, die ich verwende:

    Danke im Voraus

    Grüße

  • Projekt Gewächshaus: I2C Stoppt nach gewisser Zeit? Schau mal ob du hier fündig wirst!

  • Kannst du probeweise mal alle Geräte bis auf ein Gerät abstecken und dann beobachten?
    Wenn es länger gut geht wie bisher , dann wieder ein Gerät dran und weiter testen.

    Mir fällt gerade auf , der Lichtsensor hat 5V Betriebsspannung , die anderen sind schon mit 3,3V angegeben.

    Wie hast du das gelöst mit dem I2C Bus ?

    Edited once, last by Bertthias (May 29, 2024 at 8:53 PM).

  • Hallo

    Das habe ich bereits probiert, mit der USV + 1 Sensor funktioniert es aber sobald ein zweiter dazu kommt stoppt der bus nach einer gewissen zeit. Spannend ist auch, dass der Bus Scan dann sehr langsam wird und er kein Gerät mehr findet.

    Hat die Betriebsspannung einen Einfluss? Der I2C ist doch immer auf 3.3V oder?

  • Ja die Fehlermeldungen sind I/O Error, weil er den Sensor nicht mehr findet. Gibt es etwas was man beachten muss wenn man mehrere I2C Sensoren verwendet? Ich verbinde sie parallel mit WAGO klemmen.

  • Dann teste doch bitte mal mit USV +1 Sensor , wobei du bitte immer nach eienr Weile einen anderen Sensor nimmst. Zwischendurch pi runterfahren nicht vergessen.
    Also USV+1 Sensor + Sensor A , eine Weile testen, dann USV+1 Sensor + Sensor B , eine Weile testen, dann USV+1 Sensor + Sensor C , eine Weile testen , usw , wobei Sensor 1 immer derselbe bleibt , bis dann der Fehler auftritt.

    Ich kenne es so , das die I2C Spannung auf SDA /SCL von der Betriebspannung des Sensor abhängig ist , wenn nichts anderes auf dem Sensormodul verbaut ist.

  • Dann teste doch bitte mal mit USV +1 Sensor , wobei du bitte immer nach eienr Weile einen anderen Sensor nimmst. Zwischendurch pi runterfahren nicht vergessen.
    Also USV+1 Sensor + Sensor A , eine Weile testen, dann USV+1 Sensor + Sensor B , eine Weile testen, dann USV+1 Sensor + Sensor C , eine Weile testen , usw , wobei Sensor 1 immer derselbe bleibt , bis dann der Fehler auftritt.

    Ich kenne es so , das die I2C Spannung auf SDA /SCL von der Betriebspannung des Sensor abhängig ist , wenn nichts anderes auf dem Sensormodul verbaut ist.

    Also ich habe das selbe Problem auch mit zwei Sensoren

  • Die Buslänge ist auch von Bedeutung.


    Servus !

    Der Temperatur/feuchte Sensor funktioniert alleine und ist an einem 1.5m Kabel, der Erdfeuchte an 20cm drähten, zusammen funktionieren sie nach paar minuten nicht mehr.

  • Hast du das Problem bei der Kombination von zwei beliebigen Sensoren oder nur wenn ein bestimmter Sensor dabei ist?

    Es geht bei den Versuchen halt darum , heraus zufinden ob es an einen bestimmten Sensor liegt.

    Dann kann man weiter schauen .

  • Eventuell kannst du auch (zum Testen) den 2. I2C-Bus aktivieren und die Sensoren auf die beiden Busse I2C-1 und I2C-0 aufteilen. Wenn das bei deinem Aufbau und der Software so machbar ist.

    Hat wohl schon mal geholfen:

    Danton
    February 18, 2021 at 1:23 PM

    Gruß Martin

  • Wie ist denn das Ganze bzgl. des 1w & I²C Bus verkabelt? Auf dem RPi sollten eigentlich schon Pullup Widerstände verbaut sein, K.A. ob dies beim RPi5 auch so ist. Aber falls jeder Sensor ebenfalls Pullup Widerstände hat und noch weitere verbaut wurden, ist dies vermutl. eher suboptimal. Gleiches trifft auf Sensoren zu, welche mit verschiedenen Spannungen am gleichen Bus hängen.

  • Hallo Zusammen


    Ich habe nun herausgefunden, dass der Lichtsensor und der Erdfeuchtesensor zusammen funktionieren. Meine Idee ist nun den Temperatur und Feuchtesensor auf den zweiten I2C Port des Raspi zu nehmen 23/24. Mittels dem Bus Scan sehe ich den Sensor auch auf dem neuen Bus, so weit so gut. Nun scheitere ich jedoch daran das Skript mit dem Bus3 auslesen zu können. Ich habe im Anhang findet Ihr die ganze library mit dem Sensor Skript \lib\python3.11\site-packages CHT8305C.py kann mit hier jemand weiterhelfen?

    Der Raspberry PI 5 hat auch Pull Up widerstände. Bei den Sensoren hat nur der Temperatur-Feuchte jener (welcher auch nicht funktioniert in Kombination) 4.7kOhm bereits verbaut. Kann ich die Pull UP widerstände vom Raspberry PI5 auch deaktivieren und nur jene vom Sensor verwenden? Das wäre ein neuer Ansatz wie es funktionieren könne.


    Vielen Dank für Eure Unterstützung. Gruss yannick

  • ... Der Raspberry PI 5 hat auch Pull Up widerstände. Bei den Sensoren hat nur der Temperatur-Feuchte jener (welcher auch nicht funktioniert in Kombination) 4.7kOhm bereits verbaut. Kann ich die Pull UP widerstände vom Raspberry PI5 auch deaktivieren und nur jene vom Sensor verwenden? Das wäre ein neuer Ansatz wie es funktionieren könne.

    Wo hast Du denn schon Pull Up Widerstände deaktiviert? Wenn es so wie bei den anderen RPi's bzw. bei vielen Sensoren ist, sind die Widerstände fest verlötet und lassen sich nicht so einfach deaktivieren. Am einfachsten kann man die Widerstände i.d.R. auf den Sensorplatinen entfernen (ablöten bzw. Leiterbahn unterbrechen). Man könnte z.B. auch einen I2C Bus Multiplexer verwenden, aber das wäre in diesem Fall mit nur 4 Sensoren, wohl etwas oversized.

    Zu deinem Problem mit dem Script wird dir vermutlich nur jemand helfen können, wenn du das Problem bzw. den Fehler genau beschreibst.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!