Che conoscenza di python hai? Di linux sei pratico? Conosci sensors?
Ho scritto questo al volo:
import subprocess
proc = subprocess.Popen("sensors", shell=True, stdout = subprocess.PIPE)
output = proc.communicate()[0]
lista = output.split()
print(lista)
che ti da il seguente output:
runfile('/home/pollo/.config/spyder/Macchine/ITG/untitled0.py', wdir='/home/pollo/.config/spyder/Macchine/ITG')
['iwlwifi-virtual-0', 'Adapter:', 'Virtual', 'device', 'temp1:', '+32.0\xc2\xb0C', 'coretemp-isa-0000', 'Adapter:', 'ISA', 'adapter', 'Package', 'id', '0:', '+38.0\xc2\xb0C', '(high', '=', '+100.0\xc2\xb0C,', 'crit', '=', '+100.0\xc2\xb0C)', 'Core', '0:', '+37.0\xc2\xb0C', '(high', '=', '+100.0\xc2\xb0C,', 'crit', '=', '+100.0\xc2\xb0C)', 'Core', '1:', '+36.0\xc2\xb0C', '(high', '=', '+100.0\xc2\xb0C,', 'crit', '=', '+100.0\xc2\xb0C)', 'Core', '2:', '+38.0\xc2\xb0C', '(high', '=', '+100.0\xc2\xb0C,', 'crit', '=', '+100.0\xc2\xb0C)', 'Core', '3:', '+37.0\xc2\xb0C', '(high', '=', '+100.0\xc2\xb0C,', 'crit', '=', '+100.0\xc2\xb0C)', 'pch_skylake-virtual-0', 'Adapter:', 'Virtual', 'device', 'temp1:', '+33.5\xc2\xb0C']
essendo la temperatura che ci interessa la quinta posizione in lista = output.split(), devo stampare solo lista[5]
Quindi il codice diventa:
import subprocess
proc = subprocess.Popen("sensors", shell=True, stdout = subprocess.PIPE)
output = proc.communicate()[0]
lista = output.split()
print(lista[5])
output:
runfile('/home/pollo/.config/spyder/Macchine/ITG/untitled0.py', wdir='/home/pollo/.config/spyder/Macchine/ITG')
+32.0°C
Mo sta a te andarti a vedere come usare pyserial per passare la temperatura ricavata, tramite seriale all'arduino.
Buon lavoro