使用Python的RPi温度记录程序

时间:2014-01-12 11:02:46

标签: python raspberry-pi

我一直在尝试创建一个小程序来记录每分钟的CPU温度,这就是我想出来的。

    import os
    import time
    import datetime

    var = 1

    while var == 1:
        timesStamp = time.time()
        temperature = os.popen('vcgencme measure_temp').readline()

        date = datetime.datetime.fromtimestamp(timeStamp).strftime('%d/%m/%y    %H: %M: %S')

        text_file = open("TempLog.log")
        text_file.write(str(temp) + '    ' + str(date) + '\n')
        text.file.close()
        time.sleep(60)

我运行并创建日志文件,但它只执行一次,而不是每分钟运行一次并将结果记录在新行上。

我是RPi和python(版本3.3)的新手。

3 个答案:

答案 0 :(得分:1)

您需要以追加模式打开文件。

text_file = open('TempLog.log', 'a')

open采用第二个参数指定访问模式。其他有效值为读取访问的“r”,写入访问的“w”,二进制访问的“b”和写入和附加到文件的“a”。

您可以在以下网址找到:http://docs.python.org/2/tutorial/inputoutput.html#reading-and-writing-files

答案 1 :(得分:0)

#!/bin/bash
cpuTemp0=$(cat /sys/class/thermal/thermal_zone0/temp)
cpuTemp1=$(($cpuTemp0/1000))
cpuTemp2=$(($cpuTemp0/100))
cpuTempM=$(($cpuTemp2 % $cpuTemp1))

echo CPU temp"="$cpuTemp1"."$cpuTempM"'C"
echo GPU $(/opt/vc/bin/vcgencmd measure_temp)

答案 2 :(得分:0)

如果我没记错的话,它读取的是GPU温度,而不是CPU

temperature = os.popen('vcgencme measure_temp').readline()

CPU温度应该是这样

tFile = open('/sys/class/thermal/thermal_zone0/temp')
temp = float(tFile.read())
tempC = temp/1000

再加上Halfdan的答案,应该可以让您完全正常工作。