Zugrif auf Python Funktionen

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

    Ich möchte eine LED über ein Python script steuern.

    Dabei soll beim booten des raspi automatisch das script starten um die ports zu initialisieren. Später soll eine Funktion (via php) aufgerufen werden, die die LED aktiviert.

    Das Script sieht folgender maßen aus.

    Um die Sache zu vereinfachen lasse ich php und das starten über autostart erst einmal weg.

    Die initialisieren des GPIO Ports (I2C Expander pcf8574) erfolgt über
    "sudo python beispiel.py 1"

    -> die Funktion init() wird ausgeführt.

    Danach möchte ich über ein script die LED toggeln lassen
    "sudo python"

    Code
    Python 2.7.3 (default, Jan 13 2013, 11:20:46)
    [GCC 4.6.3] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import beispiel as b
    >>> b.LED_toggle()
    >>> b.LED_toggle()

    Leider ändert sich nach dem Aufrufen der LED_toggle()- Funktion der Zustand der LED nicht.

    Scheinbar habe ich da ein grundsätzlichen Fehler. Was mache ich Falsch?
    Wenn ich das script aufrufe und die init-Funktion mit ausführe, dann Funktioniert das alles wunderbar.
    Es macht ja aber keinen Sinn, jedesmal die Ports neu zu initialisieren. Einmal sollte ja reichen.

    Wie kann man so was realisieren?

    Vielen dank im Voraus Gruß

    croeh

  • Passiert denn gar nichts oder ändert er sich nur nicht?

    Ich denke mal das init() in jedem fall erst mal ausgeführt werden muß, denn sonst kannst du auch kein GPIO pin ändern
    Wenn du nicht jedesmal die GPIO Ports neu initialisieren willst dann prüf ob sie "gesetzt" sind, also zB ob die virtuellen dateien existieren -> wenn nicht muß init() ausgeführt werden

  • Oder du baust das in deine rc.local, dann kannst du alle GPIO´s (in meinem Fall GPIO 25) so nutzen, wie du es brauchst.

    Ich hab das für die IR-Fernbedienung gebraucht, um darüber ein angeschlossenes Relais zu schalten.


    Hier mal ein Link, wo das beschrieben wird:

    http://raspberrypiguide.de/howtos/raspberry-pi-gpio-how-to/

    .

    Einmal editiert, zuletzt von Pieper (23. Februar 2014 um 20:49)


  • Pieper: Wenn man es in /etc/rc.local einfügt brauch man kein sudo ... Die Datei wird nämlich bereits mit root Rechten ausgeführt und somit auch alle dadrin befindlichen Befehle

    Dem ist leider nicht so :no_sad:

    Habe mal das "sudo" vor diesen Zeilen gelöscht, und nach dem erneuten Hochfahren kam eine Fehlermeldung und es wurden diese Zeilen nicht ausgeführt !!!

Jetzt mitmachen!

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