我已经阅读了很多有关此主题的文章和论坛帖子,但是几乎所有事情都非常复杂,而且都是2年前的事情了。
所以我想知道,用C#获取Raspberry Pi 的CPU温度的最佳方法是什么?
我拥有Windows 10 IoT核心版的最新版本。
更新
我不想降低CPU温度。我正在使用Sense HAT。该设备的温度传感器位于CPU附近,因此读数不准确。我发现一个Python脚本可以使读数准确,但是需要CPU温度。
注意:
我正在使用Windows 10 IoT核心版!
我请勿拥有此文件:/sys/class/thermal/thermal_zone0/temp
更新2:
如果唯一的方法是编写自己的驱动程序,请指导我如何做。我对编写驱动程序一无所知,也没有那么低级的东西。
答案 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#使其工作。
文章摘录:
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(电池电压)读数来测量温度的方式没有太大不同。