Kommunikation zwischen 2 Mikrocontroller

Gast #5072039
Lesenswert?

Hallo,

ich habe 2 Arduino Mega 2560 und einen Raspberry.

Der Raspberry soll zu beiden Arduinos Steuerbefehle senden können bzw. 
aktuellen Status empfangen können.

Arduinos untereinander kommunizieren nicht miteinander.

1 Arduino ist vom Raspberry etwa 50cm entfernt, der andere etwa 10Meter.

Es werden in der Sekunde maximal 30-40 Bytes übertragen.

Eine Möglichkeit wäre nun, ich hänge an beide Arduinos ein enj28j60 und 
verkabel diese über das Netzwerkkabel. Zusätzlich benötige ich aber auch 
noch einen Switch, um im Falle eines Stromausfalles benötige ich durch 
die Netzwerkverkabelung wesentlich mehr Strom, um den Ausfall 
überbrücken zu können.

Gibt es alternative kostengünstige Möglichkeiten, eine Kommunikation 
zwischen Arduino und Raspberry herzustellen.
Direkt über das RX/TX Interface? Stelle ich mir bei der Reichweite 
problematisch vor? Vorallem, müsste ich sicherstellen, dass alle Daten 
auch im Ziel ankommen.

Gibt es Vorschläge?

Danke!
Gast #5072049
Lesenswert?

der nahe Arduino über I2C, der andere über RS485 an den R-PI 
anschliessen.
Hat den Vorteil, du kannst sowohl über I2C und RS485 später noch viel 
mehr Arduinos anschliessen, wenn du auf einmal Lust dazu bekommst.
Für I2C brauchst du nur ein bisschen Draht, für RS485 gibts fertige 
Shields
Gast #5072084
Lesenswert?

Captain Obvious schrieb:
> der nahe Arduino über I2C, der andere über RS485 an den R-PI
> anschliessen.

Warum nicht beide über RS-485? Oder gar beide über RS-232. Bei 300Baud 
ist auch RS232 durchaus machbar.

Thomas schrieb:
> senden können bzw.
> aktuellen Status empfangen können.

Das mit dem Status lässt isch mit mit Aufforderung Status 
bewerkstelligen, gibt dann keine Kollision.

rgds
#5072096
Lesenswert?

Thomas schrieb:
> Vorallem, müsste ich sicherstellen, dass alle Daten
> auch im Ziel ankommen.

dazu kannst du dir ja ein geeignetes Kommunikations-Protokoll ausdenken, 
z.B. die einzelnen Datenpakete mit einer Sequenz-Nummer auszustatten 
(braucht ja vermutlich bei der lahmen Übertragung und Datenmenge nur 1 
Byte groß sein). Sofern ein Paket fehlt, wird das ja dann dem Empfänger 
sofort auffallen.
#5072101
Lesenswert?

Wenn überall RX/TX verfügbar ist, dann könnte man durchgängig RS485 
nutzen. Lästig ist bei RS485 nur die Steuerung der 
Sende/Empfangsrichtung über zusätzliche Signale. Im einfachsten Fall 
könnte man da aber ein Modul mit Auto Direction verwenden. Suche mal 
nach "rs485 auto direction module", da gibt es was zu finden. Bei diesen 
wenigen Bytes kann man sich im Protokoll ohne explizite Kontrolle der 
Richtung einig werden.
#5072167
Lesenswert?

Thomas schrieb:
> Hallo,
>
> ich habe 2 Arduino Mega 2560 und einen Raspberry.
>
> Der Raspberry soll zu beiden Arduinos Steuerbefehle senden können bzw.
> aktuellen Status empfangen können.
>
> Arduinos untereinander kommunizieren nicht miteinander.
>
> 1 Arduino ist vom Raspberry etwa 50cm entfernt, der andere etwa 10Meter.
>
> Es werden in der Sekunde maximal 30-40 Bytes übertragen.

RS232 ist am einfachsten.

Steck das hier in Deinen Pi:

https://www.reichelt.de/USB-Konverter/DIGITUS-DA-70158/3/index.html?ACTION=3&GROUPID=6105&ARTICLE=136304&OFFSET=16&;

und Du hast zwei RS232. An die Arduinos kommen Pegelumsetzer mit MAX232 
oder MAX3232.

Damit sind 10m überhaupt kein Problem.

fchk
#5072452
Lesenswert?

Wieso nicht mal kabellos versuchen? 3 x NRF24L01 kosten nicht die Welt. 
Man spart sich die Kabel (die kosten ja auch Geld). Ein Cat5 Kabel 
kostet dich vielleicht zwischen 20 und 30 cent / m (als Meterware). Wenn 
Du noch RS232 Stecker haben willst, summiert sich das dann doch.

Ein NRF24l01 kostet dich aus China vielleicht 1 Euro, aus D vielleicht 
2-3 Euro.

Für beide RPi und Arduino gibt's fertige Libraries dafür.
#5072462
Lesenswert?

steck den Arduino in die USB Buchse vom PI

dann kannst du seriell Daten tauschen und sogar den Ardu umprogrammieren 
auch aus der Ferne über Netzwerk

die IDE 1.8.2 & 1.8.3 gibts auch für PI Arm

hier läuft gerade mein DHT22 am Ardu am PI

Mo 10.Jul 2017
19:26:00 Uhr R
 DTH H= 56.0%
 DHT T= 24.2*C
 RTC T= 24,0*C

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren