Ausgabe via Phyton auf 2x16 Zeilen-Display

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo!
    Habe laut Anleitung
    http://www.schnatterente.net/technik/raspbe…tzter-kommentar
    das Script geladen. Soweit so gut.

    Nun möchte ich die IP anzeigen lassen und die CPU-Freq. weil diese laut Anleitung nur 0MHz anzeigt.
    Auch wenn ichs direkt via Putty am Pi abfrage erhalte ich null.
    Auch unter Last bleibt der Wert 0.

    Mit folgendem Befehl erhalte ich meine 700Mhz.
    /opt/vc/bin/vcgencmd measure_clock arm
    Wie kann ich diesen Wert ausgeben lassen? In meiner Anzeige sehe ich nur (45MHz.

    Wie kann ich meine IP anzeigen lassen? Z.B. 192.168.0.1
    hostname -I zeigt mir diese an - wie kann ich dass auf der Anzeige ausgeben.

    Ich bin kein Phyton-Kenner und Könner und vielleicht kann mir jemand den Input dazu liefern.

    Danke und VG Moach
    PS: Ich habe auch diorekt auf der Seite einen Post abgegeben - da die Anleitung aber schon älter ist, weiß ich nicht ob ich von dort Antwort erhalte - darum der Post hier ins Forum.
    Danke!

  • Hi,

    wenn du deinen Code dazu gepostet hättest, wäre es vielleicht ein bisschen einfacher gewesen :rolleyes:

    Code
    #Abfragen und Speichern der CPU Temperatur
    def get_cpu_temp():
            tempFile = open("/sys/class/thermal/thermal_zone0/temp")
            cpu_temp = tempFile.read()
            tempFile.close()
            return float(cpu_temp)/1000
    Code
    #Abfragen und Speichern der CPU Geschwindigkeit
    def get_cpu_speed():
            tempFile = open("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq")
            cpu_speed = tempFile.read()
            tempFile.close()
            return float(cpu_speed)/1000
    Code
    #Anzeige im Display
    def temp():
            lcd_byte(DISPLAY_LINE_1, DISPLAY_CMD)
            lcd_string("CPU Temp: " + str(round(get_cpu_temp(), 2)))
            lcd_byte(DISPLAY_LINE_2, DISPLAY_CMD)
            lcd_string("CPU Speed: "  + str(round(get_cpu_speed(), 2)))
            time.sleep(2)

    Wenn du auch so mit der IP Adresse umgehst, sollte das auch kein Problem sein, diese anzuzeigen.

  • Hallo!
    Sorry - bekomme den Code nicht aus putty raus (zumindest nicht wirklich einfach).
    Dein Input hat schon mal geholfen - nur wie lese ich nun die IP aus?
    Weil mein Befehl funktioniert zur Zeit nicht...

    def get_ip():
    ip = subprocess.check_output('ifconfig | grep broadcast | awk \'{print $2}\'', shell=True).decode('utf-8')
    print('IP is: {}'.format(ip))
    return ip

    Abfrage dann via
    lcd_byte(DISPLAY_LINE_1, DISPLAY_CMD)
    lcd_string('IP Address)
    lcd_byte(DISPLAY_LINE_2, DISPLAY_CMD)
    lcd_string('Test'+str(get_ip))
    time.sleep(5)

    VG Moach

    • Offizieller Beitrag

    [code=php]
    import socket
    def getip():
    ip = ([ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] if not ip.startswith("127.")][:1]
    return ip[0]

    lcd_byte(DISPLAY_LINE_1, DISPLAY_CMD)
    lcd_string("IP Address")
    lcd_byte(DISPLAY_LINE_2, DISPLAY_CMD)
    lcd_string(getip()))
    [/php]


    Darf ich dir noch das RPLCD Modul ans Herz legen, dann hört dieses grauenhaft lcd_* geschreibsle auf ;)

  • hallo!
    danke für deinen Input - geht aber nicht...
    hier
    ip = ([ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] if not ip.startswith("127.")][:1]

    fehlt eine ")" - ich habe angenommen am ende....

    hier
    lcd_string(getip()))
    ist eine klammer zu viel - habe ich weggelassen....

    folgender fehler
    fehler in main bei lcd_string(getip())
    fehler in getip return [0]

    Idee?
    VG Moach

    • Offizieller Beitrag

    hihi...doofes copy + paste (dann ist der computer schuld, nicht ich) ;)
    [code=php]
    import socket
    def getip():
    ip = ([ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] if not ip.startswith("127.")][:1])
    return ip[0]

    test = getip()
    lcd_byte(DISPLAY_LINE_1, DISPLAY_CMD)
    lcd_string("IP Address")
    lcd_byte(DISPLAY_LINE_2, DISPLAY_CMD)
    lcd_string(test) [/php]

    Was passiert denn wenn du die Funktion einfach mal so aufrufst. funktioniert bei mir tadellos

  • das gibt bei mir eine leere Liste zurück.

    Code
    socket.gethostbyname(socket.gethostname())

    geht unter Windows aber auf dem RPi kommt die Localhost Adresse. Aber auf der stackoverflow Seite weiter unten steht eine Lösung, welche geht.

    Edit:

    • Offizieller Beitrag

    hatte das nur schnell auf ner debiankiste probiert, da lief es:

    Code
    Linux owncloud 3.2.0-4-amd64 #1 SMP Debian 3.2.57-3+deb7u2 x86_64 GNU/Linux
    root@owncloud:~#python
    >>> import socket
    >>> ([ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] if not ip.startswith("127.")][:1])
    ['10.1.14.68']

    :denker:

  • hallo!
    dbv - der überarbeitet code geht auch nicht. diesesmal hängts bei
    test = getip()
    da dürfte am ende was fehlen?
    ansonsten lass ich es weg geht's auch nicht....fehler wie zuvor....

    als referenz habe ich gedacht, kann ich folgenden code verwenden
    http://raspberry.tips/raspberrypi-tu…play-ansteuern/
    dort hatte ich die Funktion der ipadresse und Uhrzeit...nur bekomme ich diesen code, da scheinbar doch anderes geschrieben nicht in jenen von http://www.schnatterente.net/technik/ras...-kommentar
    hinein.....

Jetzt mitmachen!

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