Platine mit DigitalenPorts für Raspberry Pi ??

  • Hallo,


    ich habe mein Raspberry PI3 im Keller, dort kann er auch nicht weg.


    An ihn hängt mein Strom, Gas und Wasserzähler und er übernimmt die Überwachung des Verbrauchs seit ca 1 Jahr.



    Nun möchte ich das ganze etwas erweitern und benötige im EG und 1 OG jeweils 10 Digitale Ports die ich mit den Raspberry PI Abfragen möchte.


    Problem ist, es liegt bereits in jeden Stockwerk ein Kabel, dies hat aber jeweils nur 4 Adern ( Telefonnleitung die nicht mehr benötigt wird, Analoges Telefon ist ja so 90er ;) )



    Jetzt hatte ich die überlegung an den PI zwei Adern zu nehmen für Masse und 3,3V, die anderen beiden dann für TXD und RXD.


    im EG bzw. OG dann ein Atmega der eben die 10 Eingänge verwaltet und je nach Schaltung eben das ganze über die beiden Adern runter sendet.



    An und für sich nicht das problem, macht nur bisjen Arbeit und vielleicht gibt es für diese Anwendung schon fertige Platinen?


    würde mich freuen wenn ihr euern Senf mal dazu gibt ;)



    lg


    Stefan

  • Hallo Stefan,


    Sollte prinzipiell funktionieren, aber:


    1. Wie lang ist das Kabel vom Keller bis ins Obergeschoß? Speziell RS232 ist nur für kurze Verbindungen von 5 bis 10 Metern ausgelegt, das könnte evtl. knapp werden...


    2. Wie sind die Digitalports im Haus verteilt? Sind die räumlich so nahe zusammen, dass sie zu einem Arduino verdrahtet werden können oder willst/musst Du zwei Arduinos verbauen? Dann bräuchtest Du am RPi zwei serielle Schnittstellen.


    Beide Punkte schreien für mich geradezu nach RS485:

    - größere Distanzen (100m) für Datenübertragung aufgrund differentieller Signalaufbereitung möglich

    - Busbetrieb möglich, d.h. es können mehrere Endstellen (Arduinos) am Master (RPi) hängen


    Für den RPi passende Platinen gibt es für RS232 und RS485. Bei den gängigen Lieferanten (z.B. beim Jörg aus unserem Forum) stolpert man förmlich darüber...


    Peter

  • Also, dass R232 für 5-10 m ausgelegt ist, gilt höchstens für höhere Übertragungsraten. auch mehrere hundert Meter sind in Rahmen der Spezifikation - siehe Wiki. RS485 ist im Zweifel natürlich noch besser - aber für 20 Meter in einem Einfamilienhaus nicht zwingend erforderlich.

    Oh, man kann hier unliebsame Nutzer blockieren. Wie praktisch!

  • Hi Gnom,

    RS485 ist im Zweifel natürlich noch besser - aber für 20 Meter in einem Einfamilienhaus nicht zwingend erforderlich.

    da hast Du natürlich recht.


    Für RS485 sprechen für mich einfach mehrere Punkte:

    1. die Tatsache, dass er vermutlich zwei Arduinos auf zwei Stockwerke (EG und 1. OG) verteilen will, die er über eine serielle Schnittstelle (UART) an den RPi hängen will. RS485 bietet aufgrund der Bustopologie (TriState mit High-Z-Modus) die Möglichkeit, beide Arduinos (wohlgemerkt bei entsprechender Programmierung!) über die eine UART-Schnittstelle des RPi anzubinden.

    2. In den alten Telefonkabeln sind die Datenleitungen idealerweise verdrillt, was für differentielle Signale wie bei RS485 einfach ideal ist.

    3. Beide Varianten (RS232 und RS485) funktionieren auf Basis eines UART, die Programmierung der Arduinos und des RPi ist also unabhängig von der gewählten Topologie nahezu identisch. Softwareseitig muss man immer verhindern, dass beide Arduinos gleichzeitig Daten senden. Wenn die beiden anderen Leitungen der Telefonkabel nicht zur Spannungsversorgung der Arduinos vom Keller aus verwendet wird bzw. werden muss, verwendet man die dritte Leitung als optionale Masse (GND) und die vierte als Select-Signal.

    4. Zur Verlängerung der Signalwege kann man bei beiden Topologien die Datenrate reduzieren. Bei eher statischen Werten der von den Arduinos erfassten Sensordaten(?) ist das vermutlich unproblematisch. RS485 ermöglicht bei einer späteren Erweiterung aber bei gleicher Leitungslänge höhere Übertragungsraten. (Nebenbei: Für Mediendaten wie Musik/Filme wird auch RS485 nicht reichen, aber das will er ja nicht)


    Alternativ kann man natürlich auch mit einem (oder auch zwei) USB-RSxxx-Wandlern mit FTDI-Chips am RPi arbeiten. Dann hat man für jeden Arduino eine eigene Schnittstelle. Auch kenne ich die Erfahrung des Threaderstellers nicht und ob er sich zutraut, von RS232 auf RS485 zu wechseln. Letztlich sind es nur (möglicherweise ein Unwort) die Treiberchips mit ein paar zu beachtenden Feinheiten: MAX232 wird zu SN75176. In der Planungsphase kann er das aber evtl. einfließen lassen.


    Bitte nicht falsch verstehen, ich will ihn zu nix überreden! :stumm:


    schlizbäda