Kommunikation mehrerer Arduinos (>2)

Hallo Allerseits!

Ich bin ganz neu in dem Thema, habe mir ein paar Arduinos besorgt und bin seit einigen Tagen mit Freude am Basteln und Löten und dem Lesen von Datasheets von Komponenten beschäftigt.

Jetzt stehe ich nach ein paar erfolgreichen Beispielprojekten vor einer konkreten Aufgabe, für deren Planung ich Hilfe benötige weil mich howto's und Foren nicht mehr weiterbringen.

Ich will in meinem Haus zahlreiche Parameter überwachen, natürlich auch darauf reagieren, das Ganze erweiterbar gestalten und ich möchte das möglichst modular aufbauen.

[u]In der ersten Ausbaustufe stelle ich mir Folgendes vor:[/u]

Keller: Arduino#1 (Slave) Hier hängen ein paar Fensterkontakte und ein Temperatursensor dran. Gesteuert wird hier lediglich ein Schrittmotor für die Bedienung einer Lüftungsanlage. EG: Arduino#2 (Slave) Temperatursensoren; Fensterkontakte Arduino#0 (Master) LCD; Tastenfeld OG: Arduino#3 (Slave) Temperatursensoren; Fensterkontakte

[u]2. Ausbaustufe:[/u] EG: ein weiterer Slave (falls technisch erforderlich), der die Protokollierung von Events erledigt (Daten -> Internet)

[u]Kommunikation:[/u]

Der Master soll von allen Slaves Statusmeldungen (Temp, Fensterstatus) erhalten; Der Master muss an Arduino#1 die Schrittmotorstellung übermitteln.

Technische Gegebenheiten:

CAT5 Verkabelung ist umfassend; neue Leitungen sind im Keller kein Thema; in EG und OG wird es schwieriger, meine Frau mag keine neuen Löcher in den Wänden ;) .Unmöglich isses nicht, hier hätte drahtlos aber schon einen gewissen Charme.

Und jetzt endlich zu meiner Frage:

Wie kommunizieren?

-> I2C - darüber bin ich bald mal gestolpert. Irgendwie bin ich aber zu der Meinung gekommen, dass das nett innerhalb eines Gerätes, aber nicht gut für so ein modulares System ist. Stimmt das? Dazu verwirren mich widersprüchliche Infos die max. Entfernungen betreffend. Da reden einige von wenigen ft, andere übertragen 100m und mehr? Schön ist, dass nur 2 Pins gebraucht werden ...

-> Funk? Hiervon weiss ich noch weniger als vom Rest (schwer zu glauben - ist aber so). Gibt es hier auch preiswerte Lösungen?

-> über mein lokales Netz?

-> WLAN

-> ganz anders?

So! Genug geschwafelt. Bin für jede Anregung dankbar. LG, hh

Hey!

Also ich würde eher zu einer Low level Kommunikation greifen, da diese billiger und einfacher zu implementieren sind. Sprich I2c oder Funk mit xbee:

→ I2C
Jepp, i2c wäre in der Tat das einfachste. Das ist ein 2 Adriger Kommunikationsbus ideal um deine Arduinos zu verbinden und untereinander zu kommunizieren. Zur Übertragunsweite kann ich nicht viel sagen, bin bei mir noch nicht über 1M rausgekommen, aber laut wikipedia ist wegen hoher Störanfälligkeit für länge stecken eher nicht geignet…

→ Funk
dafür gibts xbee funk module die quasi die serielle Kommunikation ersetzten. Preise sind zwischen 25EUR-60EUR akzeptabel. Habs bis jetzt nur mit zwei Arduinos ausprobiert (master<->slave) - ging problemlos. weitere slaves sollten möglich sein mir jedoch unklar wie einfach das von Arduino libs unterstützt wird. reichweite auf jeden Fall innerhalb Haus möglich…

→ über mein lokales Netz?
wäre auch möglich, es gibt ehternet shields und auch fertige libs. jedoch teurer und brauch mehr strom…

→ WLAN
gibts auch, jedoch teuer >80EUR pro shield und hoher strom verbrauch…

Gruß Tobi

Ich wuerde das versuchen das mittels Funk zu realisieren - XBEE duerfte da super funktionieren… Was das Thema I2C angeht… es IST moeglich I2C ueber CAT5 laufen zu lassen. Habe mit Cat5 rund 10m - mit Cat7 25m hinbekommen - habe dafuer aber auch ‘range expander’ chips nutzen muessen. Und Ethernet gleichzeitig zu nutzen ist dann natuerlich auch nicht moeglich ;0)

Hallo zusammen,

beim Thema I2C habe ich keine Erfahrungen, weiß aber das es ein Bus-System ist.

Mit den XBee Shields habe ich hingegen schon das ein oder andere gemacht. Aber wie stellt ihr euch denn die Kommunikation mit mehreren Arduinos seriell vor? Klappt es, wenn man die RX/TX einfach parallel schaltet und dann vom Master "Steuerbefehle" sendet um die Slaves der Reihe nach abzufragen? Sauber ist das aber nicht oder verstehe ich da etwas falsch?

Gruß Poldi