从青草中获取树莓的温度

时间:2019-04-03 16:18:58

标签: raspberry-pi aws-lambda aws-iot greengrass

我可以使用python命令获得Raspberry pi的气质:

os.popen("vcgencmd measure_temp").readline()

但是当我在设备上已部署的greengrass上的lambda函数(python 2.7)中运行此命令时,它给了我错误:

  

VCHI初始化失败

我相信这是因为在容器中运行的lambda函数并不了解正在运行的树莓派。

如何从在greengrass上运行的lambda函数获取树莓派的温度?

1 个答案:

答案 0 :(得分:0)

有两种读取CPU温度的方法-一种使用vcgencmd,另一种使用文件界面。可能是greengrass阻止了您运行vcgencmd,也可能是它不允许您访问文件接口,但值得尝试一下。该文件位于/sys/class/thermal/thermal_zone0/temp

一种方法是使用gpiozero's CPUTemperature class

from gpiozero import CPUTemperature

cpu = CPUTemperature()

print(cpu.temperature)

或者,直接读取文件,然后提取温度(如gpiozero在下面):

def cpu_temp():
    sensor_file = '/sys/class/thermal/thermal_zone0/temp'

    with io.open(sensor_file, 'r') as f:
        return float(f.readline().strip()) / 1000

print(cpu_temp())