Drei RPis miteinander verbinden

  • Hallo zusammen, :)


    ich würde gerne 3 Pis miteinander verbinden. Jetzt gibt es sicherlich unzählige Möglichkeiten...
    Um etwas einzuschränken, schildere ich mal, was ich vorhabe:


    Es soll eine Zeichenkette über Funk (WLAN?) oder (wenn einfacher) Kabel an die 2 Pis gesendet werden. 1 Pi darf senden, die anderen Sollten dann die Nachricht lesen.
    Gleichzeitig sollten die andren PIs aber auch senden können. Ich hoffe, dass ich das nicht zu umständlich beschrieben habe.


    Ungefähre Idee:
    PI 1 sendet "Start2" --> Motor am PI 2 startet --> Motor hat sich XY mal gedreht --> PI 2 sendet "Fertig"
    PI 1 sendet "Start3" --> Motor am PI 3 startet --> Motor hat sich XY mal gedreht --> PI 3 sendet "Fertig"


    1.) Kann ein solches Vorhaben mit WLAN und Python realisiert werden?
    2.) Gibt es zur Funklösung auch eine Kabellösung?


    :danke_ATDE:

  • 1. Ja klar, Python Socketserver und ab gehts
    2. Ab nun Wlan oder Lan spielt keine Rolle

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Hallo PythonRapPi,


    Wenn Du nicht auf Python festgefahren bist:
    Lazarus mit lNet-Package und lNet-Tutorial. 30 Minuten später steht der Code für einen Socket-Server und Socket-Clients - inklusive GUI.


    Dann kann jeder senden und empfangen. Jeder kann an alle senden oder an einen gezielten Empfänger. Der Empfänger kann unterscheiden, was für ihn bestimmt ist und darauf reagieren - der Rest wird ignoriert. Der Empfänger kann je nach Sender unterschiedliche Prioritäten setzen.


    Sprich, alles, was Du umsetzen möchtest, ist da recht einfach möglich.


    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Andreas


    Du hast nen hang zu Randgruppensprachen, oder? ;). Na klar wird es auch damit gehen, aber man würde sich den Supporterpool von >100 auf <= 2 reduzieren.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.

  • Ich frag mich gerade was der Thread im Forumsbereich "Elektronik-Grundlagen" zu suchen hat wenn aber denn die Frage eher Software Seitig ausgereichtet ist? :s


    Also entweder eine Frage bezüglich Software oder Netzwerk, aber Elektronik-Grundlagen passt wie ich finde gar nicht.


    Bezüglich Software kann das in jeder nur erdenklichen Sprache umgesetzt werden - fraglich wäre nur ob es evtl. Sinnvoll wäre einen Pi als "Master" zu deklarieren, so als eine Art "Brain" ders dann verwaltet usw. Würde es Denk ich einfacher machen als wenn jeder Pi von jedem anderen weiß und explizit dem was zusenden kann.

  • Ich habe da noch eine Frage. Bei mir ist gerade das Problem, dass er die IP Adresse wohl nicht findet...


    Was ich gemacht habe:


    sudo service dhcpcd status


    sudo service dhcpcd stop


    sudo update-rc.d -f dhcpcd remove


    sudo nano /etc/network/interfaces


    auto wlan0
    allow-hotplug wlan0
    iface eth0 inet static
    address 192.168.100.2
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 192.168.1.1



    ifconfig


    wlan0 Link encap:Ethernet HWaddr 74:da:31:33:81:4e
    inet6 addr: fe80::77de:ce65:78df:bbb3/64 Scope:Link
    UP BROADCAST MULTICAST MTU:1500 Metric:1
    RX packets:0 errors:0 dropped:0 overruns:0 frame:0
    TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)


    sudo nano /etc/resolv.conf


    nameserver 192.168.1.1
    domain localhost raspberrypi.local


    sudo reboot


    Python Server File:


    sudo python tcpServer.py


    Traceback (most recent call last):
    File "tcpServer.py", line 7, in <module>
    s.bind((host, port))
    File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
    socket.error: [Errno 99] Cannot assign requested address

  • ..
    address 192.168.100.2
    netmask 255.255.255.0
    gateway 192.168.1.1
    ..
    IP-Adresse, Netzmaske, Gateway etc passen nicht zusammen. IP sollte wohl "address 192.168.1.2" heissen

    "Wenn du nichts zu sagen hast, sag einfach nichts."

    Edited once, last by llutz ().

  • OK werde ich mal testen! Melde mich gleich nochmal


    ---


    Also ich habe das soweit eingebaut, aber gleiches Problem.


    In der ifconfig wlan0 steht aber auch keine ipv4 ???


    ---


    Ich musste die ipv6 deaktivieren:


    sudo nano /etc/sysctl.conf
    Dort einfügen: net.ipv6.conf.all.disable_ipv6 = 1


    Nach einem Neustart und anpassen der IP Adressen, war das Problem gelöst!

  • Es hat sich doch noch eine Frage ergeben.


    Mein Socket Server läuft jetzt auf Pi 1 mit der IP 192.168.1.2
    Mein Client lauft auf Pi 2 mit der IP 192.168.1.3


    Der Client meldet jedoch No route to host...

    GELÖST, Router oder LAN muss konfiguriert werden. Ich bin letztlich auf die LAN Variante umgestiegen, da ich keine Lust hatte am Router herumzuspielen...