Hallo Leute,
ich weiß das dieses Thema schon ziemlich oft angesprochen worden sein muss und ggf. auch gelöst wurde, aber ich habe nichts wirklich gefunden.
Da ich kompletter RaspberryPi neuling bin und kein Plan habe wie die Kommunizieren könnten brauche ich Hilfe.
Mir ist klar das hier hauptsächlich bzw. ausschließlich die "Arduino-Seite" behandelt werden sollte, aber ich bin echt momentan hilflos und benötige von jeder Seite alle Möglichen Tipps und Hilfen und wenn es nur die Arduino-Seite ist!!!
Zuerst möchte ich gerne nochmal geklärt haben, ob nun es möglich ist über Ethernet den Arduino(Client) mit dem Raspberry(Server) zu verbinden und über WLAN auf den Raspberry(Server) zuzugreifen?
Es gab keine klare Aussage zu dieser Frage, jedoch ist diese grundlegend für mein weiteres Vorgehen, denn falls dies nicht funktioniert muss ich komplett anders planen bzw. kommunizieren lassen.
Ich möchte nämlich über das Tablet auf den Raspberry(Server) zugreifen, welcher mir grafisch den Verlauf von Temperatur, Feuchtigkeit, usw. anzeigt und über den ich die Sollwerte zum Arduino schicken möchte.
Dies ist im Groben mal mein erstes Vorhaben, sodass ich darauf aufbauen kann.
Kann jemand von Erfahrungswerten sprechen oder mich auf hilfreiches hinweisen?
Vielen Dank im Voraus an euch!!!!!!
hi,
ich hatte einen arduino als webserver, ging ohne probleme mit tablet.
jetzt bin ich auf raspberry als server umgestiegen, weil das vorteile hat. link zu meiner doku unten.
was ich nie gemacht habe ist eine raspberry <> arduino-kommunikation über ethernet. sollte grundsätzluch möglich sein, warum auch nicht. ich bevorzuge aber zwischen raspberry und arduinos RS485.
gibt es einen grund für ethernet?
ein problem sehe ich beim gleichzeitigen ansprechen des raspberry über LAN und WLAN. glaube nicht, daß das so geht.
gruß stefan
http://playground.arduino.cc/PmWiki/Haustechnik-Eisebaer
zusatz:
RS485 ist natürlich nur dann sinnvoll, wenn's über größere entfernungen gehen soll, ansonsten einfache serielle verbindung oder I²C (beides schon gemacht).
gruß stefan
Hallo Stefan,
vielen vielen Dank für deine schnelle Antwort und den Link!!!!
Ich dachte an Ethernet, weil es ja schon ein gewisser Standard ist und in Zukunft bleiben wird.
An RS485 habe ich noch nicht gedacht gehabt.
Ich wollte den PI als Server im Haus haben und nur den Arduino im "Schaltschrank" im/am Gewächshaus haben, deshalb die TCP trennung, da Ethernet eine gute Strecke überbrückt und eben ein gewisser Standard ist.
Falls jedoch RS485 "leichter" wäre, dann würde ich mich für den anfang gerne fügen und wenigstens mal anfangen können, weil mich das ewige rumsuchen und lesen ohne Erfolg nur nervös macht 
Ich lese nun mal deine Doku und hoffe ich bekomme das Verständnis so langsam 
Hast du dort keine LAN/WLAN zur Verfügung, wo du einfach alle beide einhängen kannst? Dann kann das Tablet am AP bleiben und muss sich nicht extra mit dem Pi verbinden
hi,
falls Du den node-server nach meiner doku installierst, gib bitte bescheid, wo man sie verbessern könnt, bzw. wo Du nicht klargekommen bist.
RS485 ist nicht "besser", ich mag es, weil ich die kontrolle behalten kann und jedes byte "kenne", das da drüberläuft. ist geschmackssache.
so wie Du es vorhattest, mit 2 netzen, geht, glaube ich, so nicht. da würde ich, wie der spanier sag, alles in ein netz hängen. zugriff über WLAN auf Deinen router und von dort per ethernet auf den raspberry und vom raspberry übers gleiche ethernet auf den arduino.
gruß stefan
eben. alles andere ist netzwerktechnisch Blödsinn. Es sei denn, auf den Pi soll mit Geräten zugegriffen werden, die du sonst nicht in deinem Netz haben willst. Z.B Handy vom Schwiegersohn

Hallo Leute, 
zuerst möchte ich mich bei euch allen viiiiiiiiiiiielmals bedanken!!!!
Vielen Dank Eisebaer für dein Projektbeitrag, welches sehr gut beschrieben ist, jedoch bin ich zu dem I2C-Entschluss gekommen, aber trotzdem vielen Dank und ich werde es für weitere Lernzwecke vielleicht verwenden.
Natürlich auch vielen Dank an dich skorpi08, lange ist es her (2013 letzter Post) :D.
Bei dir hat sich ja echt ein Haufen getan von deinem Projekt und ich wurde gar nicht fertig mit dem Lesen und den geilen Schematicen der Platinen!!!
Vielen Dank dafür!!
Last but not Least der nette Spanier
der mich auch so nett supportet 
Leider habe ich für die Kommunikation per Ethernet keine richtige Anleitung gefunden und bin auf der I2C-Variante hängen geblieben und folgender Anleitung:
http://blog.oscarliang.net/raspberry-pi-arduino-connected-i2c/
Leider funktioniert das Senden der Nummern zum Arduino irgendwie nicht richtig und ich bekomme beim Ausführen und der Eingabe des Befehls "Enter 1 - 9: " einen "SyntaxError".
Wälze jetzt Phython-Skripte und versuche schlau zu werden.
Sobald ich weiterkomme berichte ich sofort!!! 
Bitte sendet weiterhin nette Tipps und Tricks 
Vielen Dank nochmal und auf weiteren Erfolg!!! 
Dir ist klar, daß I²C für sehr kurze entfernungen geschaffen wurde? man kann mit expandern zwar auf ein paar meter kommen, aber das sind workarounds und in keiner spezifikation.
davon abgesehen kannst Du mit meinem node-server natürlich ohne große änderungen auch mit I²C arbeiten, aber wie gesagt: nur wenn der raspberry und das gewächshaus nicht mehr als einige zehn zentimeter voneinander entfernt sind.
I²C ist außerdem störanfällig, weil keine symmetrische leitung. jede einstrahlung führt zu datenverlust. ein I²C-node in einem schaltkasten ist, gelinde gesagt, gewagt...
gruß stefan
Also wenn du schon so nah arbeiten willst (I²C ist ja eigentlich nur für Entfernungen auf Platinen gedacht), dann mach es besser über USB.
http://www.mikrocontroller.net/articles/Evaluations-Platine_für_Heimautomatisierung#Die_Heimautomatisierung
hi,
Ich wollte den PI als Server im Haus haben und nur den Arduino im "Schaltschrank" im/am Gewächshaus haben, deshalb die TCP trennung, da Ethernet eine gute Strecke überbrückt und eben ein gewisser Standard ist.
irgendwie hab' ich das gefühl, daß die dinger einander nicht sehr nah sind...
gruß stefan
Guten Morgen Leute muss ich schon sagen, 
also ich habe mich auf I2C umentschieden, da es in der Praxis möglich ist, dass der Raspberry Pi 3 mit seinem WLAN zum router kommt.
Natürlich ist auch die USB-Variante möglich und muss ich mir auch mal betrachten, da ich daran auf den ersten Gedanken nicht gedacht hatte. (USB ist für mich nur zum Programmieren da :D)
Die Steueraufgaben übernimmt der Arduino trotzdem noch 
Es gibt einige die in diesem Fall nur den Raspberry Pi verwenden, aber ich möchte gerne "Regelung" und "Visualisierung" trennen.
Ich habe es nun geschafft die beiden über I2C kommunizieren zu lassen (ein stundenlanger Kampf war das, weil die Beispiele und Programmcodes für Python noch alte Befehle hatten.
Als totaler LINUX und PYTHON Anfänger war das Drama im wahrsten Sinne schon "vorprogrammiert".
Als nächstes möchte ich schauen, wie ich die Daten in verschiedenen Datentypen übertragen und diese in eine Visualisierung (Python+QT oder Python+Tkinter) überführen kann.
Dabei werde ich mal schauen, ob es per USB leichter geht!
@Eisebaer: Was ist der Unterschied zu dem Node-Server nochmal und ist die grafische Bearbeitung auf Windows einfacher? Vielen Dank schon vorab für deine Antwort!!!
Vielen Dank nochmal an alle, denn ich bin echt froh für eure Tipps!!!!!
Na dann kämpf dich da mal durch. Wenn beide Geräte wie auch immer am Netzwerk hängen, wäre UDP das einfachste. Und erst recht, wenn es nur der Visualisierung dient und somit nicht zeitkritisch ist. Und Beispiele gibt es genug dafür. Die Kommunikation wird wie bei seriell per print-Befehl gemacht. Selbst die Empfangsroutinen sind gleich.
Ich würde da noch etwas drauf rum denken.
hi,
also ich habe mich auf I2C umentschieden, da es in der Praxis möglich ist, dass der Raspberry Pi 3 mit seinem WLAN zum router kommt.
den satz verstehe ich nicht so ganz. Du kannst jede verbindung nutzen. prinzipiell ist es ja nichts schlechtes, den raspberry zur visualisierung zu nutzen und den arduino zur steuerung.
Was ist der Unterschied zu dem Node-Server nochmal und ist die grafische Bearbeitung auf Windows einfacher?
die vorteile für mich:
ich muß mich nicht mit den linux-typischen dingen herumärgern, sondern kann ALLES im node-server mit java-script machen. netzwerk-kommunikation, I²C, serial (USB oder RS485), einfach alles.
zweitens ist es doch gerade bei einer visualisierung wichtig, daß der server dem tablet/handy/PC etwas "sagen" kann. mit node.js ist das möglich, ohne muß das tablet andauernd nachfragen, ob sich etwas geändert hat.
wie sieht es mit der entfernung aus?
gruß stefan
Ich habe es nun geschafft die beiden über I2C kommunizieren zu lassen (ein stundenlanger Kampf war das, weil die Beispiele und Programmcodes für Python noch alte Befehle hatten.
Als totaler LINUX und PYTHON Anfänger war das Drama im wahrsten Sinne schon "vorprogrammiert".
genau das fällt bei node weg. eine neue technik, die momentan den totalen hype hat. da findest Du nur aktuelle dinge.
z.B. I²C: ich war neugierig, hab "raspberry node.js I2C" bei google gesucht.
zwei, drei interessante beiträge gelesen, das einfachst ausgesucht, nach der anleitung mit
npm install i2c
i2c installiert, die beispiele probiert und fertig.
ich will mich eben nicht mit dem linux-zeuch herumärgern.
gruß stefan
Openhab nutzen, da haste auch kein Linux kram.
Servus Leute,
nachdem ich wieder den ganzen Tag an Code gekämpft hatte, der nach den Compilern (Arduino + Python) ok ist, aber die keine Daten Austauschen, werde ich nun zu dem Beispiel mit dem Nodeserver gehen und schauen das dieses läuft.
Die UDP-Geschichte werde ich parallel auch betrachten!
Die Entfernung zwischen RPI und Arduino sind 5cm im Schaltschrank in einem Gehäuse.
Die Entfernung zum Schaltschrank und dem Endgerät nur ein paar Meter, da dies ein Versuchsaufbau wird.
Vielen Dank nochmal an euch alle und ich werde nun die Alternativen probieren!
Ach anbei habe ich die funktionierenden Codes, welche nichts austauschen
für die wahren Profis 
hi,
tobias, bitte beschreibe es mal genauer, so isses schwer.
was soll die endgültige entfernung zwischen raspberry und arduino sein? 5cm ist natürlich ok für I²C, aber auch für serial.
entfernung zum endgerät? welches gerät und welche verbindung?
falls Du wirklich node nimmst, helf ich Dir, soweit ich kann...
gruß stefan
Hallo Stefan,
die Entfernung ist wirklich 5 cm zwischen RPI und Arduino.
Vom RPI soll dann per WLAN die Visualisierung gestreamt werden.
Ich habe jetzt mal deine Anleitung durchgemacht und es wurde alles installiert.
Leider kann ich den Server nicht starten (habe dir die Fehlerausgabe in deinen Blog geschrieben).
Würde wenn das läuft mich an dich halten bei dem weiteren Vorgehen!
Vielen vielen Dank schon mal für deine große Hilfe!!!!
p.s. ich habe Ubuntu 15.10. drauf und schon etwas wegen I2C umgestellt und wegen dem USB-Port für die Arduino IDE. Hat das was mit diesen Dingen zu tun?
Ansonsten installiere ich auf eine andere microSD die "jessie" bzw. Raspbian, wenn es nicht zum Laufen kommt.