16 Kanal i2c IO Extender

Hallo zusammen,

bei Aliexpress gibt es eine 16 Kanal Relais Karte für z. Zt. ca. 12 Euro.
https://www.aliexpress.us/item/1005005775051224.html?gatewayAdapt=4itemAdapt


Ich hab das Teil mal bei mir integriert und den passenden Treiber eingestellt (der MCP und PFC funktionieren nicht).
Achtung: das beigefügte Kabel nicht direkt in den Van Pi Core einstecken, denn die Pinbelegung ist anders. Je nachdem ob der gelbe Jumper gesteckt ist, erfolgt die Versorgung über den core oder über die 5V wenn die Versorgung über 5V erfolgt, müsst ihr das rote VCC Kabel auftrennen. Der IC XL9535 kommt mit beiden Pegeln zurecht.

Den Flow habe ich in ein Repository Gesteck, um meine eigenen Änderungen zu
tracken GitHub - isky04/pi at extRelays. Da ich von node-red keine Ahnung habe, habe ich einfach das ganze PI home Verzeichnis dort reingesteckt. Die .node-red/node_modules habe ich rausgelassen. D.h. nach dem clonen erst ein npm install durchführen. Bei den Dateien in pekaway wusste ich nicht, welche gebraucht werden. Die, von denen ich wusste, dass sie automatisch erzeugt werden, habe ich rausgelassen.

Mir wäre es recht, wenn der Flow irgendwo ein Repo bei Euch hätte, da ich mich ungern mit fremden Federn schmücke. Dann kann jeder von Eurem Repo aus nach Lust und Laune branchen und forken.

Viel Spaß damit

/Alexander

Moin Alex
sieht ha nicht verkehr aus. Ich war immer auf der suche nach einem 8. Relay.
Aber was heißt
(der MCP und PFC funktionieren nicht).
Wie ist das in Node red eingebunden?
Kann man da verschiedene Adressen einstellen?
Ich würde dann eventuell auf 2 4er gehen.

Du kannst den Flow ganz einfach exportieren, entweder in die Zwischenablage, und hier hin kopieren ("</>"Schaltfläche nutzen), oder als Datei, und die Datei hier hochladen.
Gruß Arno

Hi Arno,

der MCP und PFC funktionieren nicht.
D.h. die i2c Chips funktionieren anders. Der PCF8575 ist, glaube ich, der älteste da werden die Pins gar nicht “umgeschaltet” high ist dann einfach input oder halt high. Beim MCP23017 und XL9535 (TCA9535) musst du die Pins konfigurieren ob Ein- oder Ausgang der MCP ist die Luxus Variante, bei der du auch interne Pull-Ups und Interrups konfigurieren kannst darum funktionieren die node-red Treiber der beiden nicht für den XL9535. Darum habe ich für den XL9535 selber etwas hochgeladen. Wenn du einen 1- 8 Kanal verwenden willst musst du den TCA9554 nehmen.

Die Relais Bords haben 3 Adresspins. D.h. du kannst bis zu 7 IO Extender einbinden, wobei eine Adresse schon durch den MCU auf dem Core belegt ist.

Falls ich wieder mal was teile, werde ich Dateien hochladen. Wobei ich das Repo trotzdem für mich verwenden werde. Und mir die Idee immer noch gefällt, dass es ein offizielles Repository gibt.

/Alexander

p.s. Meine Ausführungen über die i2c Chips beruhen auf einem kurzen Überfliegen der Datenblätter und von einem Einsatz des PCF vor über 15 Jahren.

1 Like

Hi Arno, hast du mit den I2C Relais experimentiert?

Nee hab mir noch nix organisiert

Hallo zusammen,

da ich per PN danach gefragt wurde hier noch meine Flows.

myFlowsPkw.json (195,1 KB)

viel Spass damit.

/Alexander

Hallo Alex
Erst mal danke für die Vorarbeit!!!
Hast du zufällig auch ein Gehäuse für das 16 Kanal Relais???
Gruß Arno

Hi Alex, woher bekomme ich den Node I2C IO write ?
Gruß, Stefan

Moin Stefan
Schau mal hier, ich glaube das ist richtig, ist wohl vom gleichen Autor :wink:

Hi Arno,

leider nicht. Ich hab mir aus 4mm Sperrholz ein “Zigarren Kistchen” gebaut.

Falls du was findest oder selber designst meld dich.

Viele Grüße
Alexander

Ich bestelle mir mal son Teil,
Dann setze ich meinen Sohn drauf an :joy:

@Alex Hi Alex, hast du mehr Info, oder eine Beschreibung zu dem Relaisboard? Vor allem, wie die I2C Adresse (A0/A1/A2) eingestellt wird?
Da das board nach dem Anstecken an dem I2C BUS einen I2C Ausfall verursacht, gehe ich davon aus dass die Adresse “20” ist und sich mit dem MCP23017 überschneidet.
Für was sit der gelbe Jumper? Trennung VIN und USB-C Buchse?

Kannst du mehr sagen?
Gruß, Stefan

Hi Stefan
hast du das gesehen???

Hi Arno, habe ich gesehen und warte mal auf die Antwort von Alex ab.

Hallo Stefan,

von dem Board habe ich keine Beschreibung. Das Datenblatt von dem IC ist Hier: XINLUDA XL9535 Datasheet
Da ist auch beschrieben wie das mit den Adressen funktioniert.
Kurz: A0 Löten = 0x21, A1 Löten 0x22, A0 und A1 Löten = 0x23 usw.

Ja, der gelbe Jumper verbindet die 5V des Boards mit VIN.

Die Node-RED Node ist wie von Arno und mir verlinkt.

viele Grüsse
Alexander

Anbei direkt die Tabelle:

@Alex irgendwie läuft das bei mir nicht.
BUS Address ist doch die I2C Adresse von dem Modul (0x20 - 0x27, oder ?
PIN = der entsprechnde Ausgang
Aber für was ist "BUS (dev/i2C*) ???

Aber es geht mit "BUS (dev/i2C*) = 1

Hallo Stefan,

das mit dem dev/i2c1 hast du ja schon herrausgefunden. Die 1 kommt daher, dass es ja theoretisch mehrere i2c Master geben kann. Meine aktuellen Flows habe ich hier noch mal reingestellt:

Leider kann ich den ersten Artikel des Threads nicht mehr editieren, da wäre es wohl am besten aufgehoben.

Meine Relais habe ich nicht komplett integriert, da ich z.B. MTTQ nicht brauche. Auch habe ich nur die ersten 4 zu den Timern hinzugefügt. Eigentlich brauche ich gar keine Timer. Von den normalen Relais benutze ich nur 2 Timer, einen für die Wasserpumpe und einen für den Kühlschrank.
Auch aus der App kannst du die Relais nicht steuern, das müsstest du in dem HTTP Reiter integrieren. Das habe ich einmal für zwei Relais gemacht, fliegt aber bei einem Update wieder raus.

Schau dir die neuen Flows an, wenn dir noch etwas unklar ist melde dich gerne.

Viele Grüsse
Alexander

@Alex du speicherst den letzten Relais Status in der Datei extRelay.
Wo list du die Datei nach einem Reset aus und setzt die Relais in dem zu letzt gespeicherten Statusß
Gruß, Stefan