C#中的Raspberry Pi CPU温度

时间:2018-08-29 00:08:25

标签: c# raspberry-pi windows-10-iot-core

我已经阅读了很多有关此主题的文章和论坛帖子,但是几乎所有事情都非常复杂,而且都是2年前的事情了。

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

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

更新

我不想降低CPU温度。我正在使用Sense HAT。该设备的温度传感器位于CPU附近,因此读数不准确。我发现一个Python脚本可以使读数准确,但是需要CPU温度。

注意:

我正在使用Windows 10 IoT核心版! 我请勿拥有此文件:/sys/class/thermal/thermal_zone0/temp

更新2:

如果唯一的方法是编写自己的驱动程序,请指导我如何做。我对编写驱动程序一无所知,也没有那么低级的东西。

3 个答案:

答案 0 :(得分:2)

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

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

我不是100%肯定这是正确的方法,但是如果有人可以纠正我或指出更好的解决方案,我将非常乐于从中学习。

答案 1 :(得分:1)

您可以使用MCP9808芯片来实现。

Jeremy Lindsay的一篇文章将引导您逐步了解如何在Window 10 IoT核心版上使用 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如何工作?

     

此传感器使用Pi 3上的Windows 10 IoT核心支持的I2C协议。由于该协议已经在框架中进行了广泛集成,因此使编码变得非常容易。 MCP9808可以使用从机地址0x18进行初始化,将0x05写入器件后,可以从两个字节的数据中读取环境温度。

     

将MCP9808连接到Raspberry Pi

     

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

     

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

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

希望获得帮助!

答案 2 :(得分:0)

我认为您可以尝试通过reading the current consumption计算当前的CPU温度,然后使用this formula计算温度。

我不知道目前的手机制造商如何测量设备的温度。但这与诺基亚过去(当我在那里工作)根据IBATT(电池电流)和VBATT(电池电压)读数来测量温度的方式没有太大不同。