C#中Raspberry Pi的CPU温度

问题描述 投票:14回答:3

我已经阅读了很多关于这个主题的文章和论坛帖子,但几乎所有内容都非常复杂,而且都来自2年多以前。

所以我想知道,在C#中获取Raspberry Pi的CPU温度的最佳方法是什么?

我有最新版本的Windows 10 IoT核心版。

更新

我不想降低CPU温度。我正在使用Sense HAT。该物体的温度传感器位于CPU附近,因此读数不准确。我发现了一个python脚本是什么让读数准确,但它需要CPU温度。

注意:

我正在使用Windows 10 IoT核心!我没有这个文件:/sys/class/thermal/thermal_zone0/temp

更新2:

如果唯一的方法是编写自己的驱动程序,请指导我如何做到这一点。我对编写驱动程序或任何低级别的东西一无所知......

c# raspberry-pi windows-10-iot-core
3个回答
2
投票

据我所知,没有IoT SDK或powershell客户端可以访问低级BCM2836外设。您需要编写自己的驱动程序。您可以按照https://github.com/ms-iot/bsp/tree/master/drivers中的代码示例进行操作,它是在WDK框架下编写的,因此您需要熟悉它才能开始使用。

另一种选择是使用DS18B20热传感器测量温度。该热传感器通过I2C连接树莓派。您需要在解决方案中通过nuget安装Rinsen.OneWire软件包,该库是用C#编写的,它内置了对DS18B20和DS18S20传感器的支持。

我不是百分百肯定这是正确的方法,但如果有人能够纠正我或指出更好的解决方案,我会非常乐意从中吸取教训。


1
投票

你可以使用MCP9808芯片实现这一目标。

Jeremy Lindsay撰写了一篇文章,向您介绍如何在Window 10 IoT Core上使用C#使其工作的过程。

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协议,该协议由Pi 3上的Windows 10 IoT Core支持。由于此协议已在框架中进行了广泛集成,因此编码变得更加容易。可以使用0x18的从地址初始化MCP9808,并且在将0x05写入器件后,可以从两个字节的数据中读回环境温度。

将MCP9808连接到Raspberry Pi

MCP9808温度传感器上有4个引脚,我们需要使用这些引脚来获得基本温度读数。我使用下面指定的引脚将我连接到Pi。

•电源电压 - 引脚2 •接地 - 引脚6 •串行时钟 - 引脚5•串行数据 - 引脚3

Jeremy还在GitHub上分享了代码:https://github.com/jeremylindsayni/Magellanic.Sensors.MCP9808

希望这有帮助!


0
投票

我想你可以尝试通过reading the current consumption计算当前CPU温度,然后使用this formula来计算温度。

我不知道当前的手机制造商如何测量今天的设备温度。但这与诺基亚在当天(当我在那里工作时)基于IBATT(电池电流)和VBATT(电池电压)读数测量温度的方式没什么不同。

© www.soinside.com 2019 - 2024. All rights reserved.