HD | RaspberryPi B+ |
---|---|
OS | Raspbian GNU/Linux 8.0 (jessie) |
Python | ver 2.7.9 |
RaspberyPi verfügt über einen einfachen Befehl namens "vcgencmd-Befehle", der Insiderinformationen zu RaspberyPi abruft.
RPI vcgencmd commands | Means |
---|---|
vcgencmd measure_temp | CPU-Temperatur |
vcgencmd measure_clock arm | Python-CPU-Frequenz |
vcgencmd measure_voltsp | Spannungserfassung |
vcgencmd get_mem arm | CPU(arm)Speichernutzung |
vcgencmd get_mem gpu | GPU(gpu)Speichernutzung |
Früher habe ich dies in "Shell" geschrieben, aber da Python besser mit späteren Grafikzeichnungen kompatibel ist, hatte ich das Gefühl, dass ich es schreiben würde, damit externe Befehle in Python ausgeführt werden können.
#!/usr/bin/env python$
#coding:utf-8$
#Importieren Sie die Bibliothek.$
import os
import commands
#Führen Sie den Raspbian-Steuerbefehl (vcgencmd) aus.$
#RPi-Befehl zum Abrufen der Temperatur
temp = commands.getoutput("vcgencmd measure_temp").split('=')
print temp[1]
#CPU-Frequenz abrufen
clock=commands.getoutput("vcgencmd measure_clock arm").split('=')
print clock[1]
#Spannung bekommen
volt=commands.getoutput("vcgencmd measure_volts").split('=')
print volt[1]
#CPU(arm),GPU-Speichernutzung
arm=commands.getoutput("vcgencmd get_mem arm").split('=')
print arm[1]
gpu=commands.getoutput("vcgencmd get_mem gpu").split('=')
print gpu[1]
Ausführungsergebnis
38.5'C
700000000
1.2000V
448M
64M
** getoutput () ** führt externe Befehle von Python aus. getoutput () gibt nur das Ergebnis der Ausführung des Befehls zurück. Wenn Sie getoutput () verwenden, importieren Sie bitte das Befehlsmodul.
import commands
commands.getoutput('ls')
** str.split (sep) ** ist eine Methode, die Wörter mit sep als Trennzeichen in eine Liste unterteilt. Wenn kein Trennzeichen angegeben ist, kann es sich um eine Sonderregel handeln, die durch Leerzeichen, Tabulatoren und Zeilenvorschubzeichenfolgen getrennt ist.
In diesem Fall werden sie durch =
getrennt. Der Grund ist, dass, wenn Sie es ohne Split ausführen
temp = commands.getoutput("vcgencmd measure_temp")
print temp
Ausführungsergebnis
temp=37.9'C
Dieses Mal ist Temp überflüssig, wenn ich es in einem Diagramm verwende, da ich nur numerische Werte verwenden möchte. Trennen Sie Zeichen mit "split ('=')".
temp = commands.getoutput("vcgencmd measure_temp").split('=')
print temp
Ausführungsergebnis
['temp', "38.5'C"]
Da es sich um eine solche Liste handelt, geben Sie danach den Index an und extrahieren und zeigen Sie nur den numerischen Teil an. Da der Wert nach dem Trennen zu diesem Zeitpunkt vom Typ ** str ** ist, konvertieren Sie die Zeichenfolge mit ** int () ** in einen numerischen Wert, wenn Sie ihn als numerischen Wert behandeln.
temp = commands.getoutput("vcgencmd measure_temp").split('=')
temp_i = int(temp[1])
Ich habe versucht, die CPU-Temperatur von Raspberry Pi (Raspbian) ohne Verwendung von cat zu ermitteln So führen Sie externe Shell-Skripte und -Befehle mit Python aus String teilen / verbinden, verbinden, rsplit
Recommended Posts