Bosch BME 280 bzw 688 Sensor per I2C Bus steuern und Daten in Codesys verarbeiten

marckl
2024-05-22
2025-01-11
  • marckl - 2024-05-22

    Hallo allerseits,

    Ich möchte für mein Projekt einen BME 688 Environmental Sensor benutzen, aber weiss nicht wie ich ihn in Codesys ans Laufen bekommen soll.
    Der Händler hat auf der Website eine Anleitung um ihn in der Kommandozeile des Raspberry Pi´s laufen zu lassen, das funktioniert auch super.
    Der Sensor ist per I2C Bus angeschlossen.
    Wie kann ich jetzt in Codesys die Sensordaten auslesen?
    Ich habe dies schon viel recherchiert und habe gesehen, dass jemand schonmal das Gleiche mit einem BME 280 probiert hat, allerdings konnte ich nicht nachvollziehen wie er den ans laufen gebracht hat.
    Ich hoffe mir kann jemand helfen

     
    • conny-nm - 2025-01-07

      Hallo Markl, gibt von Stefan Dreyer auf Git Hub Biblioteken für BMP280 und BME280, laufen aber nur in 32Bit
      auf dem Raspberry. BME680 kann man mit Node Red auslesen und mit mqtt zu Codesys übertragen.

       
  • andrax

    andrax - 2025-01-11

    Die Geräte Bibliothek von Stefan Dreyer ist dafür gedacht, um Treiber für deine Sensoren zu erstellen, damit sie an einem MUX-Board betrieben werden können. Auch ist ein Betrieb ohne MUX-Board möglich.
    Der Aufbau ist relativ einfach und besteht aus folgenden Komponenten:
    -Initialize (hier wird die .devdesc.xml eingelesen)
    -BeforeWriteOutputs (ruft initDevice auf und ist für ausgehende Signale gedacht)
    -initDevice (initialisiert den Sensor)
    -AfterReadInputs (Selbsterklärend, Werte einlesen und Signalkonversation)

    Bei meinen Sensoren habe ich es immer so gemacht.
    Zuerst habe ich mit die .devdesc.xml gebaut bzw. eine Vorlage umgeschrieben, wobei Parameter 1-10 für ein Mux-Board reserviert sind. In der .devdesc.xml definierst du alle wichtigen Parameter für den Sensor.

    Danach schreibst du die Initialize und liest die Werte ein.

    InitDevice ist Fleißarbeit.
    Für die meisten Sensoren liegt immer ein Pythonscript oder was in C bei.
    Du gehst die Scripte durch und baust es in Codesys nach.

    Im letzten Schritt baust du die AfterReadInputs.
    Signale einlesen und Conversation.

    Du solltest dir auch ein I2C-Logic Analyzer zulegen.
    Da Teil ist sehr hilfreich um die I2C Kommunikation mitzulesen.
    Wenn es irgendwo klemmt, siehst du sofort an welcher Stelle du suchen musst.
    Ich hab hier den AZ-Delivery Logic Analyzer!

    Grüße

    Andre

     

Log in to post a comment.