Datenverbindung zwischen zwei Raspberry Pi's

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich hoffe mir kann jemand bei meinem Problem weiterhelfen. Ich schreibe gerade meine Masterarbeit und werde dafür einen Raspberry Pi verwenden. Das Thema ist grob gesagt die Datenanalyse eines 3D-Druckers. Der Drucker selbst wird über ein Mainboard mit einem angeschlossenem Raspberry Pi (Nr.1) gesteuert. Somit besitzt der Raspberry Pi (Nr.1) Daten über die Temperatur der Düse, welche ich gerne haben würde. Die Datenanalyse soll jedoch auf einem separaten Raspberry Pi (Nr.2) laufen. Somit bräuchte ich eine Möglichkeit die Temperaturdaten und im besten Fall auch andere Daten vom Raspberry Pi (Nr.1) am 3D-Drucker zu dem Raspberry Pi (Nr. 2) für die Datenanalyse zu schicken. Ist dies überhaupt möglich eine stetige Datenverbindung zwischen zwei Raspberry Pi's herzustellen?

  • Syldan Warum sollte das nicht möglich sein? Das sind letztlich ganz normale Linuxrechner mit Ethernet und WLAN, die Netzwerkverbindungen aufbauen können wie jeder andere Rechner auch.

    MQTT wird gerne als Protokoll zur Übertragung von Messdaten verwenden. Man könnte aber auch eine relationale Datenbank wie Postgres aufsetzen und dort die Messdaten rein schreiben. Oder tausend andere Variationen.

    “Dawn, n.: The time when men of reason go to bed.” — Ambrose Bierce, “The Devil's Dictionary”

  • Wie schon meine Vorredner würde ich zu Standard-Protokolle in diesem (IoT) Bereich raten, wie zum Beispiel die Kommunikation über MQTT. Solange beide Geräte im selben Netz sind, kann der eine Pi einen Broker aufsetzen, und der Pi vom 3D Drucker über MQTT hin senden. Wenn du Software wie z.B. OctoPrint auf dem Pi verwendest, gibt es dazu auch das MQTT Plugin. Mit diesem wird bereits einiges der Druckerdaten gesendet, alternativ kann man natürlich auch das noch weiter entwickeln, oder ein eigenes Script bauen (es ist ja immerhin eine Masterarbeit :D).

    Auf dem anderen Pi kannst du die Daten dann erst einmal speichern, je nach Menge entweder ganz leicht in einer Sqlite Datenbank, bis hin zu einer selbst dort (oder woanders) aufgesetzten Datenbank, wie Postgres o.Ä.

    Mit Python geht das alles relativ einfach. Broker Programme wie mosquitto oder paho-mqtt kann man auf dem Pi einfach aufzusetzen und du wirst umfangreiche Tutorials dazu finden. Auch das Schreiben in die Datenbank geht entweder direkt mit den build-in Python Modulen (SQLite), oder z.B. SQLAlchemy.

    MQTT ist auch generell relativ robust, und solange die Verbindung nicht lange komplett wegbricht sollten da auch keine Datenverluste eintreten.

    Grüße

  • Vielen Dank schonmal für die schnellen Antworten

    Warum sollte das nicht möglich sein? Das sind letztlich ganz normale Linuxrechner mit Ethernet und WLAN, die Netzwerkverbindungen aufbauen können wie jeder andere Rechner auch.

    MQTT wird gerne als Protokoll zur Übertragung von Messdaten verwenden. Man könnte aber auch eine relationale Datenbank wie Postgres aufsetzen und dort die Messdaten rein schreiben. Oder tausend andere Variationen.

    Soweit ich das MQTT Protokoll verstanden habe, ist es ein Netzwerk Protokoll was leider bei meinem Projekt nicht in frage kommt, da ich gerne die Daten über ein USB-Kabel oder die GPIO-Pins erhalten wollen würde.


    Du kannst auch Daten über die TX/RX Pins der beiden Pis übertragen.

    Servus !

    Das hört sich nach einer sehr guten Möglichkeit an. Gibt es dafür vielleicht ein Tutorial oder eine Anleitung um meine beschriebenes Projekt zu realisieren?

  • Wie schon meine Vorredner würde ich zu Standard-Protokolle in diesem (IoT) Bereich raten, wie zum Beispiel die Kommunikation über MQTT. Solange beide Geräte im selben Netz sind, kann der eine Pi einen Broker aufsetzen, und der Pi vom 3D Drucker über MQTT hin senden. Wenn du Software wie z.B. OctoPrint auf dem Pi verwendest, gibt es dazu auch das MQTT Plugin. Mit diesem wird bereits einiges der Druckerdaten gesendet, alternativ kann man natürlich auch das noch weiter entwickeln, oder ein eigenes Script bauen (es ist ja immerhin eine Masterarbeit :D).

    Auf dem anderen Pi kannst du die Daten dann erst einmal speichern, je nach Menge entweder ganz leicht in einer Sqlite Datenbank, bis hin zu einer selbst dort (oder woanders) aufgesetzten Datenbank, wie Postgres o.Ä.

    Mit Python geht das alles relativ einfach. Broker Programme wie mosquitto oder paho-mqtt kann man auf dem Pi einfach aufzusetzen und du wirst umfangreiche Tutorials dazu finden. Auch das Schreiben in die Datenbank geht entweder direkt mit den build-in Python Modulen (SQLite), oder z.B. SQLAlchemy.

    MQTT ist auch generell relativ robust, und solange die Verbindung nicht lange komplett wegbricht sollten da auch keine Datenverluste eintreten.

    Grüße

    Vielen Dank für die ausführliche Antwort aber wie in meiner letzten Nachricht beschrieben fällt leider die Möglichkeit der Datenübertragung über ein Netzwerk weg. (Universität und das W-Lan ist leider nicht so benutzerfreundlich) Ich müsste die IT fragen/bitten das möglich zu machen und das ist so gut wie ausgeschlossen (Cyber-Sicherheit usw.)

    Was auch gut zu erwähnen wäre ist, dass ich am Raspberry Pi, welcher an dem Mainboard angeschlossen ist, Im besten Fall nicht verändere. Sprich neues Betriebssystem oder Ähnliches.

  • Gibt es dafür vielleicht ein Tutorial oder eine Anleitung

    Die Aktivierung der seriellen Schnittstelle findest Du in https://www.raspberrypi.org/help/ -> Documentation -> Computers -> Configurations -> Configuring UARTs.

    Dann vebindest Du Pi1 TX mit Pi2 RX, RX mit TX und Masse mit Masse.

    Die am Pi 1 gesammelten Daten schickst Du als Zeichenkette an /dev/ttyS0 (bzw /dev/tty/AMA0). Auf Pi 2 holst Du die seriellen Daten zur weiteren Verarbeitung auf /dev/ttyS0 (oder /dev/ttyAMA0) ab.

    Servus !

    RTFM = Read The Factory Manual, oder so

  • Wenn der RPi, welcher den 3D Drucker steuert kein w-Lan nutzt und der andere RPi sich nicht all zu weit weg befindet sowie u.U. keine anderen Gegebenheiten dagegen sprechen, so könnte man vermutlich den "3D Drucker RPi" auch so konfigurieren, das dieser als Access-Point ein eigenes w-Lan Netz anbietet, mit dem sich der zweite RPi zwecks Datenaustausch verbinden kann.

    Bei der direkten Verbindung perRS232 via 3,3V TTL Pegel, könnte es je nach Leitungslänge, Kabeltyp bzw. zwischen verschiedenen RPi Stromversorgungen ohne galvanische Trennung, zu ungewollten Beeinflussungen kommen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!