Mehrere Sensoren gleichen Typs am i2c-Bus

  • Hallo Leute,


    ich habe mich in den letzten Tagen als absoluter Neuling ein wenig durch Python und das Auslesen von Sensoren am i2c-Bus gekämpft. Ursprünglich wollte ich an jeden Sensor einen Arduino Nano hängen und diesen dann mit dem Raspi kommunizieren lassen. Das stellte sich aber als schwieriger heraus als ich dachte. Die Lösung, den Sensor direkt am Raspi anzuschließen war dann doch leichter umzusetzen. Habe jetzt einen CSS811 CO und VOC-Sensor am Bus, den ich auch auslesen und via UDP die Werte durch das Netzwerk schicken kann. So weit alles gut. Was mache ich aber mit dem zweiten (dritten, vierten, etc.) gleichartigen Sensor. Dieser hat ja die gleiche Adresse am Bus. Kann mir da jemand weiterhelfen oder kann man schlichtweg nur einen gleichen Sensor am Bus betreiben?


    LG

    Pierre

  • Bei I2C kannst Du verschiedene Adressen vergeben. In der Regel sind 5 Bit von der 8-Bit-Adresse feste vergeben. Die 3 Weiteren kann man über Jumper/Lötbrücken vergeben.

    Sollten die 8 Möglichen verschiedenen Adressen nicht reichen gibts ggf. Chips mit gleicher Funktion aber anderer Adresse, oder es gibt I2C-Splitter. Damit baust Du mehrere I2C-Netzwerke am gleichen Port auf.

  • Moin nimmermehr,


    erstmal: Herzlich Willkommen im Forum!


    Abgesehen davon, wieso hängt man mehrere gleiche Sensoren an einem Rechner? Aber egal..


    Der, von der erwähnte CSS811 kann 2 I2C-Adressen 0x5A und 0x5B.


    Das bedeutet 2 von den Dingern kannst du an einem Bus ohne Aufwand betreiben.


    Falls du andere Sensoren betreiben möchtest, dann sieh die Adressiermöglichkeiten an.


    Gruss Bernd

    Ich habe KEINE Ahnung und davon GANZ VIEL!!
    Bei einer Lösung freue ich mich über ein ":thumbup:"

    Vielleicht trifft man sich in der RPi-Plauderecke.

  • 1. nur je ein pullup optimal am Ende der Kette

    2. aber Achtung am PI keine Sensorpullups an 5V


    Der PI hat schon interne pullups von 1,8k die mitgerechnet werden müssen und der Portstrom darf 3mA nicht übersteigen!

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Wow. Vielen Dank für die vielen Antworten, die ein wenig Nacharbeit meinerseits erfordern (verstehe nur die Hälfte :-)).


    Mehrere Sensoren gleichen Typs benötige ich, wenn ich verschiedene Quellen überwachen möchte, also beispielsweise Zuluft und Abluft. Zwei würden also erstmal reichen. Wo finde ich Informationen, wie man die Adressierung bei dem CSS811 ändert?


    LG

  • Zwei würden also erstmal reichen. Wo finde ich Informationen, wie man die Adressierung bei dem CSS811 ändert?

    echt jetzt?


    Wie immer ist das Datenblatt die erste Anlaufstelle

    https://ams.com/eng/content/do…/CCS811_DS000459_4-00.pdf


    Pin Assignment

    Seite 4


    Pin 1

    Single address select bit to allow alternate address to be selected

    • When ADDR is low the 7 bit I²C address is decimal 90 / hex 0x5A

    • When ADDR is high the 7 bit I²C address is decimal 91 / hex 0x5B.


    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Ja, echt jetzt. Totaler Neuling. Danke! Ich meinte eher grundsätzlich, wie man das macht. Scheint aber eher was für Fortgeschrittene zu sein.

  • man legt dann immer den Adress Pin auf 1 oder 0 also (mit Vorwiderstand 1-4,7k) an +VCC für 1 oder an GND für 0

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Moin,

    Quote

    Wo finde ich Informationen, wie man die Adressierung bei dem CSS811 ändert?

    Nur mal als Beispiel bei einem CSS811Modul von Sparkfun



    Edited once, last by ait: Tippfehler ().

  • aber ich glaube dafür reichen meine Lötkenntnisse nicht mehr aus

    wie hattest du sonst vor den anzuschliessen?


    Wie AIT schon schrieb es gibt ja Fertigmodule und dort wird die Wahl auch dem Ungeübten ermöglicht, aber auch dort werden gewisse Kenntnisse und Fähigkeiten vorausgesetzt.

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Angeschlossen habe ich den ja schon, allerdings habe ich ein Modul gekauft, da muss man nicht ganz so filigran löten. An den Chip was dranzulöten traue ich mir nicht zu.

  • Ja, echt jetzt. Totaler Neuling. Danke! Ich meinte eher grundsätzlich, wie man das macht. Scheint aber eher was für Fortgeschrittene zu sein.

    Nix Fortgeschrittene..... ist machbar.

    Poste doch mal ein Bildchen das Deinen Sensor zeigt. Ich vermute Du hast da so ein fertiges Platinchen und nicht das nackte IC.

  • Der unterste Anschluss ADD sollte der Adresspin sein.

    und der pullup scheint schon verbaut zu sein, messe doch einfach ADD


    wenn da VCC anliegt ist die Adresse auf 1 dann genügt für die NULL Wahl den auf GND zu legen

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

  • Hallo Nimmermehr,


    herzlich Willkommen in unserem Forum!



    Dann brauchst Du doch bloß die Steckerleiste anzulöten und den ADD-Pin mal mit GND und mal mit VCC zu verbinden Das geht ganz leicht mit einem Kabel (Buchse-Buchse), die man für die diese Stecker preiswert kaufen oder auch selber herstellen kann. Denke aber an den empfohlenen Widerstand - sonst macht es piff.


    Suche mal nach Dupont-Kabel - dann weißt Du, was ich meine. Und eine Bastelanleitung gibt's hier.


    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Edited 2 times, last by Andreas ().

  • Am ADD-Eingang liegt nichts an, sodass ich davon ausgehe, dass man ihn zur Adressierung nehmen kann. Müssen da dann einfach die 3,3V drauf?

  • Am ADD-Eingang liegt nichts an, sodass ich davon ausgehe, dass man ihn zur Adressierung nehmen kann. Müssen da dann einfach die 3,3V drauf?


    wie wäre es mal mit LESEN statt SCHREIBEN


    ich komme mir irgendwie doof vor wenn ich Antworten gebe und trotzdem weiter gefragt wird, was soll ich da vom Fragesteller halten?

    (ich könnte glatt denken das auch jede weitere Antwort nicht gelesen wird)


    und der pullup scheint schon verbaut zu sein, messe doch einfach ADD


    wenn da VCC anliegt ist die Adresse auf 1 dann genügt für die NULL Wahl den auf GND zu legen

    lasst die PIs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)