2016-06-07 7 views
0

Ich habe ein Raspberry Pi, das ein Python-Skript ausführen muss, damit es manuell eine LED ein-/ausschalten kann. Da ich keinen Webserver auf dem Pi betreiben möchte, habe ich Web2Py auf einem anderen Rechner installiert. Momentan kann ich nur Daten aus einer MySQL-Datenbank (Temperatur und Luftfeuchtigkeit) abrufen, aber ich kann keine anderen Skripte mit einem Knopf von der Webseite ausführen.Es ist möglich, ein Python-Skript auf einem Raspberry Pi mit Web2Py auszuführen, das auf einem anderen Rechner installiert ist?

Beispiel: Ich drücke ON-Taste auf dem Web2Py-Server, der auf dem Laptop installiert ist => Raspberry Pi LED leuchtet auf. (die mit GPIO verbunden ist).

Es ist möglich, dies zu tun, oder verschwende ich meine Zeit?

Antwort

1

Auf Ihrem Computer mit dem Webserver, verwenden Sie paramiko (Python-Bibliothek), um mit dem Pi zu kommunizieren und ein Skript dort zu starten, dann die Antwort zurück und zeigen Sie es (falls es eines gibt).

Auf der Web-Server-Maschine:

// server.py 

def leds_set(state): 
    import paramiko 
    ssh = paramiko.SSHClient() 
    ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) 
    ssh.connect('127.0.0.1', username='ahah', password='lol') 
    if state: 
    state = 'on' 
    else: 
    state = 'off' 
    stdin, stdout, stderr = ssh.exec_command('python /home/ahah/ledson.py ' + state) 
    print(stdin, stdout, stderr) 
    return dict() 

// view.html 
{{extend 'layout.html'}} 

<form> 
<input type="button" onclick="leds_set(True);" value="leds on"/> 
<input type="button" onclick="leds_set(False);" value="leds off"/> 
</form> 

Auf Ihrem pi:

// ledson.py 

state = sys.argv[1] 

if state =='on': 
    print('Leds ON') 
else: 
    print('Leds OFF') 
+0

Danke. Muss ich Paramiko auf meinem RPi installieren? Ich habe Ihren Code und meinen Code in Web2Py-Controller richtig? –

+1

@JohnDow Ich habe ein vollständigeres Beispiel für Sie hinzugefügt. Auf Ihrem PI müssen Sie nur über ssh eine Verbindung herstellen können. –

+0

Ich hätte nie gedacht, SSH zu verwenden. Du hast mir viel Zeit gespart. –

Verwandte Themen