我可以使用python命令获取Raspberry pi的温度:
os.popen("vcgencmd measure_temp").readline()
但是当我在设备上部署的greengrass上的lambda函数(python 2.7)中运行此命令时,它会给出错误:
VCHI初始化失败
我相信这是因为lambda函数在容器中运行并不知道它正在运行的覆盆子pi。
如何从greengrass上运行lambda函数获得树莓派的温度?
有两种方法可以读取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())