0

我可以使用 python 命令获取树莓派的温度:

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

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

VCHI 初始化失败

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

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

4

1 回答 1

0

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

一种方法是使用gpiozero 的CPUTemperature

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())
于 2019-04-04T09:36:36.290 回答