Hallo Tom,
Das nächste Projekt mit dem Pi ist eine DIY-Wetterstation. Einige Sensoren per I²C und One-Wire,
Das läuft bei mir z. Zt. mit einem Sensor unter Sensor. Bei OneWire ist aber die Kabellänge sehr begrenzt. Ich habe die besten Erfahrungen mit hochwertigem (Low Noise) symmetrischem Mikrofonkabel gemacht. Damit habe ich 15m geschafft.
ich setze da für I²C eher auf Twisted Pair, also z.B. herkömmliches Telefonkabel (je eine Doppelader für SCL, SDA und 3.3V DC), wobei eine Abschirmung zusätzlich sicher kein Fehler ist. Dann wäre ich z.B. bei CAT5-Kabeln.
Ursprünglich hatte ich auch einen anderen Sensor im Visier, den DHT22. Der kann aber nur Temperatur und Luftfeuchte, für den Luftdruck hätte ich dann noch einen separaten Sensor gebraucht.
Übrigens hat mir ein erfahrener Elektroniker erklärt, dass One-Wire weniger problematisch sei als I²C, wenn es um lange Leitungen geht. Er meint, 20m sei mit One-Wire gar kein Problem, aber man muss die Übertragungsrate dann schon recht niedrig halten (wenige kbit/s).
Im Forum von microcontroller.net habe ich einige Beiträge gefunden, die I²C als "Hausbus" propagieren und auch da von enormen Bus-Ausdehnungen berichten.
Ich denke, ich fange mal sachte an; vielleicht komme ich mit etwa 10m Länge schon aus. Die Übertragungsrate kann ich ja z.B. auf 10kbit/s drosseln. Um etwa einmal pro Minute drei Messwerte zu übertragen, reicht das allemal.
Aber ich sehe noch ein anderes Problem. Zumindest mit dem Außensensor gehe ich ja nicht nur "einen weiten Weg", sondern auch hinaus in die böse Welt. Atmosphärische Effekte (von Blitzen möchte ich gar nicht erst reden) könnten mir dann recht schnell den Pi töten. Ich brauche also eine galvanische Trennung und Isolation für den I²C.Bus.
Dazu geht mir schon lange eine Frage im Kopf rum. Zur Zeit sitzt der Pullup-Resistor am Kabelende direkt am Pi. Wäre es nicht besser, je einen Widerstand mit 2xR an jedem Kabelende zu platzieren? Ich habs noch nicht ausprobiert, da ich im Moment sowieso keine zusätzliche Mikrofonleitung mehr habe.
Der Gedanke scheint plausibel - Abschlusswiderstände bei Bus-Systemen mit definierter Impedanz setzt man ja auch an beide Leitungsenden.
Mir fehlt jetzt noch ein A/D-Modul für den Raspi, damit ich die anfallenden analogen Werte auch übertragen kann.
Ungefähr sowas?
Da hab ich nur auch noch ein Denkproblem mit der Spannungsbasis, da ich in Ketten von Solarzellen jeweils Strom und Spannung ermitteln muss. Gegenüber Nullpotential können da 4x39V=156V am Kettenendpunkt auftreten. Ein Spannungsteiler würde aber auf die Auflösung Auswirkung haben.
Du brauchst also eine potentialfreie Strommessung. Ein Hallsensor wäre das erste, was mir dazu einfällt. Wenn's Wechselstrom wäre, ginge auch ein induktiver Stromwandler, ähnlich wie die Strommesszangen. Aber Solarzellen mit Wechselstrom ...?
Schönen Abend noch,
Martin
Kunst beginnt da, wo bei den meisten das Können aufhört.