从绿草中获取覆盆子的温度

问题描述 投票:0回答:1

我可以使用python命令获取Raspberry pi的温度:

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

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

VCHI初始化失败

我相信这是因为lambda函数在容器中运行并不知道它正在运行的覆盆子pi。

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

raspberry-pi aws-lambda aws-iot greengrass
1个回答
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())
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.