Температура процессора малины Pi в С# - программирование

Температура процессора малины Pi в С#

Я прочитал много статей и сообщений на форуме по этой теме, но почти все довольно сложно и все из-за 2+ лет назад.

Поэтому мне было интересно, что лучше всего получить температуру процессора малины Pi в С#?

У меня есть новейшая версия Windows 10 IoT Core.

Обновить

Я не хочу понижать температуру процессора. Я использую Sense HAT. Датчик температуры этой вещи находится рядом с ЦП, поэтому чтение неточно. Я нашел скрипт python, что делает чтение точным, но ему нужна температура процессора.

НОТА:

Я использую Windows 10 IoT Core! У меня нет этого файла: /sys/class/thermal/thermal_zone0/temp

Обновление 2:

Если единственный способ написать собственный драйвер, пожалуйста, помогите мне, как это сделать. Я ничего не знаю о написании драйверов или чего-то такого низкого уровня...

4b9b3361

Ответ 1

Насколько я знаю, IoT SDK или клиент powershell не могут получить доступ к периферийным устройствам низкого уровня BCM2836. Вам нужно написать свои собственные драйверы. Вы можете следовать образцам кода из https://github.com/ms-iot/bsp/tree/master/drivers, написанных в рамках WDK, поэтому вам нужно ознакомиться с этим, чтобы начать работу.

Другим вариантом является измерение температуры с использованием датчиков температуры DS18B20. Этот температурный датчик соединяет малиновый pi через I2C. И вам нужно установить пакет Rinsen.OneWire через nuget в вашем решении, эта библиотека написана на С# и имеет встроенную поддержку датчиков DS18B20 и DS18S20.

Я не уверен на 100 процентов, что это правильный путь, но если кто-то может исправить меня или указать лучшее решение, я был бы более чем счастлив узнать об этом.

Ответ 2

Вы можете добиться этого, используя чип MCP9808.

Существует статья Джереми Линдсей, в которой рассказывается о том, как заставить ее работать с использованием С# на ядре IOT Window 10.

https://jeremylindsayni.wordpress.com/2016/06/09/how-to-measure-temperature-using-c-raspberry-pi-windows-10-iot-core-and-the-adafruit-mcp9808-sensor/

Некоторые выдержки из статьи:

Как работает MCP9808?

Этот датчик использует протокол I2C, который поддерживается ядром IOT Windows 10 на Pi 3. Поскольку уже существует обширная интеграция этого протокола в инфраструктуру, это значительно упрощает кодирование. MCP9808 может быть инициализирован с использованием подчиненного адреса 0x18, а температура окружающей среды может быть считана с двух байтов данных после записи 0x05 на устройство.

Подключение MCP9808 к малине Pi

На датчике температуры MCP9808 имеется 4 контакта, которые необходимо использовать для получения базового показания температуры. Я подключил шахту к Pi, используя указанные ниже контакты.

• Напряжение питания - контакт 2
• Масса - контакт 6
• Последовательные часы - Контакт 5 • Последовательные данные - Контакт 3

Джереми также поделился кодом на GitHub: https://github.com/jeremylindsayni/Magellanic.Sensors.MCP9808

Надеюсь, это поможет!

Ответ 3

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

Я не знаю, как сегодня производители мобильных телефонов измеряют температуру устройства. Но это не сильно отличается от того, как Nokia использовала для измерения температуры, основанной на показаниях IBATT (ток батареи) и VBATT (напряжение аккумулятора) в тот же день (когда я там работал).