I2C Relais-Steuerung

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo,

    nachdem ich mich jetzt einige Wochen mit dem Pi2 beschäftigt und eine Testschaltung für eine Relais-Steuerung nebst Software-Durchstich auf einem Breadboard aufgebaut habe, geht es ans Platine machen. Bevor ich diese fertigen lasse, würde ich mich über Feedback, Tipps, Hinweise auf Fehler etc. zum Schaltplan und der Platine bzw. (Auto-)Routing freuen.

    Ziel des Ganzen:

    • Steuerung von Licht (230V Stromstoßschalter) und Rollladen (mit Trennrelais; alle Schaltkontakte [parallel zu den Taster] in den Schaltschrank geführt)
    • Steuerung durch Relais die wiederum über den Pi2 I2C Bus angesteuert werden. Auf dem Breadboard funktionieren schon 3x MCP23017
    • Software selbst geschrieben in PHP (via I2C Command-Line Tools). Z.Zt. noch mehr als Alpha Stadium. Aber vom Handy aus kann ich schon 2 Relais schalten :)
    • Später irgendwann noch mit Sensoren entweder auch über I2C oder GPIOs direkt am Pi2


    Infos zur Schaltung:

    • Die 0 Ohm Widerstände sind nur um Netze zu trennen und damit beim Layout/Routing verschiedene Leiterbahnstärken zu erreichen. Ich will die Relaisboards (8fach mit Optokoppler aus Fernost...) direkt über die Platine speisen und benöte daher etwas dickere Leiterbahnen
    • Der Pi2 soll über 5V über die GPIO-Leiste gespeist werden. Darum auch eine Polyfuse von 1A. Die Umsetzung der 3V -> 5V erfolgt über einen Level-Shifter
    • Die ganze Schaltung wird über ein 5V/5A Schaltnetzteil betrieben
    • Alles Andere sollte Standard sein

    Update 18.06.2015: Habe nun am Schaltplan und vor allem am Layout weitergearbeitet und sollte eigentlich fertig für die Platinenbeauftragung sein. Wenn jemanden etwas auffällt bitte ich um Feedback. Neu sind die real verwendeten Stiftleisten und Schraubklemmen sowie Bohrungen um den Pi2 huckepack zu nehmen.

    Freue mich auf Feedback.

    Update 29.10.2016: Aktualisierten Schaltplan und Boardlayout sowie Bild vom fertigen Modul angefügt.
    Update 23.11.2016: Bilder nach Umbau auf 3 mm GFK Trägermaterial inkl. GFK Sicherheitsbox für USV LiPo-Akku wg. Brandschutz.

    Update 22.05.2019: Habe nun die Eagle-Layout- und -Schaltplan-Dateien hier als Anhang angefügt. Es sind zwei Zip’s. Eines original wie damals bei https://www.multi-circuit-boards.eu/index.html bestellt (Board_Ordered.zip). Von dort sind auch die Design Rules https://www.multi-circuit-boards.eu/support/leiter…aten/eagle.html. Die andere Datei (Board_Current.zip) enthält korrigierte Beschriftungen. Diese wurde aber so nie bestellt. Also sicherheitshalber alles prüfen und am besten mit Eagle auch noch einmal Auto-Routen. Eingesetzte Eagle Version bei der Bestellung war V7.3.0 (Windows).

    Grüße
    mdrmdr

  • So eine Idee hatte ich auch, bin dann aber letzlich in der Praxis gescheitert. Also prüfe es, bevor Du Geld ausgiebst. Auf meinem Breadboard ging alles perfekt. Auf meinem Leiterplattenprototypen war es alles noch gut. im Schaltschrank im Hutschienengehäuse war es zum heulen. Hier die Punkte, warum ich mein Projekt aufgegeben habe:

    der Bus funktioniert nur auf wenige cm störungsfrei, ab 15cm ist er nicht mehr kontrollierbar einzusetzen
    der Bus reagiert auf elektromagnetische Felder äußerts empfindlich
    der Bus reagiert auf Änderungen der Kabelwege
    der Bus reagiert auf ein- und ausschalten von Verbrauchern am gleichen Stromkreis

    Wenn Ihr Lösungen habt, wäre ich sehr interessiert! Bitte jede Behauptung auch hinterlegen, es hat keinen Zweck z.B. zu behaupten das die Kabel länger sein können, wenn wir nicht erfahren wie


  • ...Wenn Ihr Lösungen habt, wäre ich sehr interessiert! Bitte jede Behauptung auch hinterlegen, es hat keinen Zweck z.B. zu behaupten das die Kabel länger sein können, wenn wir nicht erfahren wie

    Schau Dir mal das hier  an. Ich hab schon zwei Adapter von der Art gebaut, wenn Du etwas geschickt bist, bekommst Du Alles in einen 9 pol. SUB-D Stecker.

  • In Dem Fall habe ich es nicht getestet, aber aus Erfahrung bei anderen Projekten mit "versauter" Umgebung hat sich die Übertragung per Differenzsignal (RS422/485) als optimal erwiesen. Die Treiberchips gibt es für 5V und 3.3V für kleines Geld (um 1€).

    Dale

    Geht nicht, gibts nicht. Reine Preisfrage....

  • Die Lösungen sind gut, lösen aber das eigentliche Problem nicht. Ansinnen ist es ja, den I²C-Bus vom Raspberry Pi direkt mit einer I²C Portexpanderkarte zu verbinden, ohne noch andere Systeme nutzen zu müssen.
    Aktuell wird bei mir an einer 1wire Lösung gearbeitet, die den Praxistest auch schon bestanden hat. Allerdings gibt es 8fach 1w Portextender nur noch als SMD, die Krux ist, dass wir Bausätze entwickeln. Bisschen schwierig mit dem Chip, weil nicht sehr viele Bastler das gerne machen werden. Uns bleibt nur übrig, den Chip schon auf die Platine zu bringen, da ist der halbe Spaß aber schon weg, oder? Werden ja auch Sachen als Bausatz bezeichnet, wo man nur noch das Gehäuse zusammenbaut, das wollten wir eigentlich nicht.
    Aber wieder zum Thema, wir haben auch versucht eine Art I²C Booster zu bauen, aber die MCP reagieren so empfindlich auf unsaubere Flanken, da sind wir nicht weitergekommen.

  • Mit einem Booster verstärkt man vermutl. auch die Störungen auf dem Bus. Vielleicht würde ein PCA9515A eine Verbesserung bringen, od. man baut den Bus wie eine Stromschnittstelle auf, aber damit hat man auch gleich wieder die Hardware oversized.

  • An die Störanfälligkeit des I2C Bus habe ich noch gar nicht gedacht. Danke für den Hinweis. Da ich den Pi2 in unmittelbarer Nähe zur Relais Controller Platine platzieren werden bin ich hoffentlich vorerst auf der sicheren Seite. Ev. kann ich auch geschirmte Leitungen und/oder abschirmende Gehäuse verwenden. Wenn ich mal den Bedarf an längeren Strecken habe, werde ich mir ev. so etwas genauer ansehen: http://www.horter.de/i2c/i2c-extender/i2c_extender_1.html.


  • Wenn ich mal den Bedarf an längeren Strecken habe, werde ich mir ev. so etwas genauer ansehen: http://www.horter.de/i2c/i2c-extender/i2c_extender_1.html.

    Da habe ich auch schon draufgeschaut, leider gibt es die im Shop nicht zu kaufen. Aber ich habe mein Projekt wieder aufgenommen und werde die Platine mit einem P82B715 ausstatten, der wahlweise aktiviert werden kann und für den RasPi eine Platine zum aufstecken entwickeln. Dann ist das Thema gegessen. War gar nicht so leicht einen (günstigen) P82B715 als DIL zu bekommen. Aber einer meiner Lieferanten hatte noch welche. Werden nächste Woche unter 2 Euro im Shop sein.

  • Cool, mit dem Baustein scheinen wohl auch 25m kein Problem zu sein:

    Externer Inhalt www.youtube.com
    Inhalte von externen Seiten werden ohne deine Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklärst du dich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.

  • Das bestätigt mich den P82B715 mindestens auszuprobieren. Die Schaltung ist einfach, die Leiterplatte bzw. der Platzbedarf auf der Leiterplatte ist klein. Ich denke mal so ein Bausatz für den Raspi sollte nicht über 7 Euro kosten. Auf einer Portextenderplatine wird das insgesamt vielleicht um 2 Euro teurer, dafür kann man aber alles sicher betreiben, hoffe ich zumindest.
    Ich werde das nutzen, um den RasPi über ca. 1m mit einem MCP23017 zu verbinden, weil wir gerade an einem Gerät arbeiten, dass durch verschiedene Aufsätze unterschiedliche Schaltvorgänge aufnehmen und auslösen soll. Dabei sitzt die Platine mit dem MCP23017 im Aufsatz, der RasPi steckt im Grundgerät und sorgt für Auswertung, Ansteuerung und Anzeige. Das Gerät ist fertig, hat aber nur 6 Steckkontakte für die Aufsätze, so das der I²C-Bus ideal wäre. 1wire war untauglich, wegen der Geschwindigkeit beim Erfassen der Schaltsignale. Jetzt geht es wieder voran.


  • So, Platine erhalten, bestückt und es ging auf Anhieb :)
    Jetzt dann bald Einbau in den Schaltsschrank und Programmieren...

    <Hier> in Action

    Hallo .
    Sieht prima aus ??
    Kann man die Platine bestellen ?
    Oder muss man die selber machen ..?

    Wenn wo könnte ich sie erwerben .

    Danke

  • Hallo. Kann man die Platine bestellen ? Oder muss man die selber machen ..? Wenn wo könnte ich sie erwerben.

    Wenn als fertige Platine dann nur als Nachbestellung bei http://www.multi-circuit-boards.eu. Leider hatte ich dort aber einige Beschriftungen auf einem Layer den MCB nicht druckt. Und einige falsche Beschriftungen bei den Steckern zu den Relais. Könnte anfragen ob sie eine Nachbestellung mit geänderten Druckdaten akzeptieren. Wenn nicht, ist es wieder der volle Preis. Elektrisch ist die Platine 100% ok. Musste nichts nachbessern.

    Alternative ist, dass ich die Eagle Dateien zur Verfügung stelle. Komme nur z.Zt. nicht dazu die Fehler in der Beschriftung zu beheben. Dann kann man die Platine bei jedem beliebigen Dienstleister erstellen lassen.

    Servus
    Manfred

  • mir fällt auf das es auf der 5V Seite keine I2C pullups gibt.

    Wenn deine I2C ICs integrierte pullups haben will ich nix gesagt haben aber wenn die oc open collector sind wie normalerweise dann ist da nix "pegelzuwandeln"

    LG jar

    lasst die PIs & ESPs 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)

  • Du hast recht jar. Der MCP23017 hat keine Pullups und braucht diese auch nicht. Der Pegelwandler ist also auf alle Fälle überflüssig, da die Pullups des Raspberry dafür sorgen, dass der Pegel schön bei 3,3V bleibt. Das mit dem Pegelwandler kommt wohl noch aus der Zeit, wo der Raspberry Pi noch sehr vorsichtig angefasst wurde und die Bussysteme 1wire und I²C für viele Neuland waren.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!