Raspberry über Ethernet bedienen

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
TenchiMuyo1984
User
Beiträge: 18
Registriert: Donnerstag 17. Januar 2019, 21:17

Hallo zusammen,

ich bin neu hier und hoffe, dass ich meine Frage im richtigen Bereich gepostet habe.
Wenn falsch @Admin, bitte verschieben. Danke! ;)

Ich möchte einen Raspberry über Ethernet "fernsteuern" und somit ein Display (E-Ink) ansteuern.

Das soll wie folgt aussehen:
PC (Windows) <-(Ethernet)-> Raspberry -> Display (E-Ink)

Ich habe schon Python-Bibliotheken beim Hersteller des E-Ink Displays (WaveShare) gefunden, jedoch sind diese "nur" für eine Ausführung direkt auf dem Raspberry ausgelegt.

Nun zu meiner Frage:
Kann ich über "Remote" von meinem PC aus mittels Python über Ethernet dem Raspberry mitteilen, dass er die Operation xyz ausführt?
Gibt es hierzu Beispiele?

Grüße
----- ===== TenchiMuyo1984 ===== -----
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@TenchiMuyo1984: Du müsstest halt eine RPC-Schnittstelle programmieren. Wenn es auf Python beschränkt sein darf, dann ist wahrscheinlich Pyro 4 eine Option wo man nicht viel selbst machen muss. Ansonsten JSON-RPC, oder eine REST-API (vielleicht mit JSON), oder XML-RPC, oder…
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
ArtooDetoo
User
Beiträge: 60
Registriert: Dienstag 4. Dezember 2018, 16:57

Einfacher und für den Fall vielleicht auch ausreichend wäre, das Skript auf dem Pi über SSH zu aufzurufen: https://www.cyberciti.biz/faq/unix-linu ... using-ssh/
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

@TenchiMuyo1984: wie soll den gesagt werden, welche Operation durchgeführt werden soll? Über eine Oberfläche? Dann böte es sich an, einen einfachen Webserver per bottle/flask zu programmieren, der die GUI bereits bereitstellt.
TenchiMuyo1984
User
Beiträge: 18
Registriert: Donnerstag 17. Januar 2019, 21:17

Danke für eure zahlreichen Antworten.

@__blackjack__
Ich möchte komplett auf Python-Ebene arbeiten.

@ArtooDetoo
Klingt interessant, aber kann ich so auch Operations aus vorhandenen Bibliotheken ansteuern?

@Sirius3
Nein, ich will keine GUI oder der Gleichen haben. Es soll komplett auf Python-Befehlsebene laufen.


Das E-Ink Display von Waveshare kann ich aktuell sehr gut direkt mit dem Raspberry-Pi ansteuern. Nun möchte ich über Ethernet die Befehle schicken, welche der Raspberry-Pi ausführen soll.

Ich dachte da an sowas in die Richtung:
Präferierte Variante:
1. Ich habe ein Programm "main.py" auf meinem PC und "sage" über Ethernet, was der Raspberry-Pi machen soll. Dabei verwende ich die Bibliotheken auf dem Raspberry-Pi.

Alternative, falls Vorherige nicht klappt.
2. Auf meinem PC schreibe ich ein Python-Programm, welches ich dann auf den Raspberry-Pi kopiere und dann "über Remote" den Befehl "sudo python main.py" ausführt, was das Programm "main.py" ausführt.

MfG
----- ===== TenchiMuyo1984 ===== -----
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

Schau Dir mal das Modul `paramiko` an, damit kannst Du per ssh ein Python auf dem RPi starten und Befehle absetzen. Direktes Aufrufen von Bibliotheksfunktionen im Python-Programm auf dem PC ist natürlich nicht möglich.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Sirius3: Naja, nicht direkt, aber eben schon relativ transparent mit Pyro. Die Verbindungen kann man da auch mit SSL/TLS absichern falls das wichtig wäre.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
TenchiMuyo1984
User
Beiträge: 18
Registriert: Donnerstag 17. Januar 2019, 21:17

@Sirius3
"damit kannst Du per ssh ein Python auf dem RPi starten und Befehle absetzen"

Also geht sowas direkt: "sudo python main.py"? Oder geht das einzig direkt an die python-Konsole von Raspberry-Pi?

@__blackjack__
Irgendwie raffe ich Pyro4 nicht :(
Antworten