2017-11-20 2 views
1

Dies ist mein erstes Mal mit Raspberry Pi 3 mit Python Tkinter, um eine GUI zu erstellen.Tkinter GUI läuft nicht korrekt beim automatischen Booten

Ich habe mein Skript mit Python geschrieben. Mein Code verwendet Raspberry Pi 3 GPIO 8 und GPIO 11 als Eingänge. Ich habe 2 Relais an die 2 Eingänge angeschlossen. Das Relais wird als Schalter fungieren. Mein Code zählt, wie oft das Relais eingeschaltet und in der GUI angezeigt wurde.

ich getestet habe es Raspberry Pi 3 LXTerminal mit mit

sudo python /home/pi/Desktop/test.py 

Die GUI öffnet und es funktioniert perfekt. Jedes Mal, wenn das Relais schaltet, zählt +1.

Dann entschied ich, es jedes Mal automatisch zu starten, wenn ich meinen Pi neu starte. Ich benutze die folgende Technik.

Dann fügen Sie der letzten Zeile den folgenden Code hinzu und speichern Sie ihn.

sudo python /home/pi/Desktop/test.py 

ich meine Raspberry Pi und die GUI-Boot-Neustart automatisch. Aber die GUI reagiert nicht auf die Relaisumschaltung.

Ich versuchte ein paar Mal Neustart und es arbeitete nach einigen Neustart. Dann habe ich versucht, erneut Neustart und das nächste Mal funktioniert nicht wieder. Diese Schritte wiederholen sich immer und immer wieder. Manchmal funktioniert die GUI, manchmal nicht.

Wer ist auf diese Art von Problem gestoßen? Was muss ich tun, damit der GUI-Autostart 100% funktioniert?

HINWEIS:

  • Mit Ladegerät 5V 1A Telefon Leistung Pi zu versorgen. (Versuchte als auch 5V 2.1A mit)
  • einem HDMI-auf-VGA-Konverter Anschluss an einen Monitor anschließen
  • nicht Tastatur und Maus funktioniert, wenn die GUI auf Autostart eingestellt ist
+0

haben Sie sich eingeloggt? Hast du es im Hintergrund ausgeführt? Hast du versucht, es in '/ home/pi/.bashrc' oder'/home/pi/.profile' zu ​​setzen? Vielleicht im Skript Code hinzufügen, die in der Datei einige Informationen und Ausnahmen speichern - Sie werden sehen, welcher Teil ausgeführt wird. – furas

+0

Hi furas, Mein Pi ist so konfiguriert, dass es automatisch bootet und sich anmeldet. Wo sollte ich /home/pi/.bashrc oder /home/pi/.profile einfügen? Ich verstehe deine letzte Aussage nicht ganz. Ich bin immer noch sehr neu in Python und Raspberry. –

Antwort

2

Ich habe einen tkinter GUI, die beim Start auf meinem Raspberry Pi startet. Ich habe es getan, indem ich es zur Autostart-Datei hinzugefügt habe.

Zuerst machen Sie das Skript ausführbar. Fügen Sie

#!/usr/bin/python 

als die erste Zeile Ihres Python-Skripts hinzu.

dann diesen Befehl verwenden, um die Datei ausführbar

chmod +x /home/pi/Desktop/test.py 

Jetzt machen sollten Sie in der Lage sein, das Programm ohne „sudo python“ Präfix zu beginnen. Wenn Sie im Terminal einfach /home/pi/Desktop/test.py eingeben, sollte Ihr Programm gestartet werden.

Dann öffnen Autostart-Datei zur Bearbeitung mit

nano /home/pi/.config/lxsession/LXDE-pi/autostart 

und fügen

@/home/pi/Desktop/test.py 

BTW: Sie verwenden "sudo" viel zu viel. Sie sollten sudo sehr selten verwenden. Wenn Sie Benutzerdateien mit sudo bearbeiten, können Sie Ihre Dateiberechtigungen vermasseln, was zu sehr seltsamen Fehlern führt. Sie sollten "sudo" benötigen, wenn Sie etwas installieren, und das ist es.

+0

Danke Roman !! Ich habe automatisch mit chmod + x nach Ihrem Weg gestartet. Leider gibt es ohne das sudo-Präfix, dass es einen Fehler im Code gibt. Also verwende ich stattdessen @sudo python /home/pi/Desktop/test.py. Und es funktioniert soweit gut. Ich habe das System mehr als 10 mal neu gestartet und es funktioniert perfekt 100%. Vielen Dank –

+0

@BrandonLok Sie sollten diesen Fehler beheben, anstatt sudo die ganze Zeit zu verwenden. Dies führt zu Fehlern aufgrund von Zugriffsfehlern. – Novel