Получить температуру малины из зелени - PullRequest
0 голосов
/ 03 апреля 2019

Я могу получить температуру Raspberry pi с помощью команды python:

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

Но когда я запускаю эту команду внутри лямбда-функции (python 2.7) на развернутом greengrass на устройстве, она дает мнеошибка:

Ошибка инициализации VCHI

Я полагаю, это потому, что лямбда-функция работает в контейнере, не осведомлена о raspberry pi, на котором она запущена.

Как узнать температуру малины пи из лямбда-функции, работающей на greengrass?

1 Ответ

0 голосов
/ 04 апреля 2019

Существует два способа считывания температуры процессора - один с помощью 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())
...