【问题标题】:CPU temperature of Raspberry Pi in C#C#中树莓派的CPU温度
【发布时间】:2018-08-29 00:08:24
【问题描述】:

我已经阅读了很多关于这个主题的文章和论坛帖子,但几乎所有内容都相当复杂,而且都是 2 多年前的事情。

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

我有最新版本的 Windows 10 IoT Core。

更新

我不想降低 CPU 温度。我正在使用 Sense HAT。那东西的温度传感器位于 CPU 附近,因此读数不准确。我找到了一个可以使读数准确的 python 脚本,但它需要 CPU 温度。

注意:

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

更新 2:

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

【问题讨论】:

  • 好的,但我使用的是 Windows 10 IoT Core。不是 Raspbian 或任何顺序的 Linux 发行版。
  • 我不想降低 CPU 温度。我正在使用 Sense HAT。那东西的温度传感器位于 CPU 附近,因此读数不准确。我找到了一个可以使读数准确的 python 脚本,但它需要 CPU 温度。

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


【解决方案1】:

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

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

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

【讨论】:

  • 是的,我以前在一个问题上读过这样的答案。对我来说唯一的问题是我以前从未编写过自己的驱动程序。我不知道 C 或 C++,所以这对我来说有点难。没有任何令人兴奋的司机可以从中读取温度吗?或者我可以用来制作自己的指南?为什么我不能只访问低级 BCM2836 外设?
  • 很遗憾,windows iot core上目前没有读取CPU温度的驱动。您可以使用 Feedback Hub 应用发布此问题。
  • 所以你告诉我没有简单的方法来获取 CPU 温度????这怎么可能以及为什么不可能?
  • @LuukWuijster,是的,没有简单的方法可以在 windows iot 核心上获取 CPU 温度。可以,但是需要自己开发驱动。
  • 有没有关于如何做到这一点的指南?
【解决方案2】:

您可以使用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 支持该协议。由于该协议已经广泛集成到框架中,这使得编码变得更加容易。 MCP9808可以使用0x18的从机地址进行初始化,将0x05写入设备后,可以从两个字节的数据中回读环境温度。

将 MCP9808 连接到树莓派

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

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

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

希望对您有所帮助!

【讨论】:

  • 感谢您的回答,但这不是我要找的。首先,我所有的引脚都被 Sense Hat 用完了,所以我不能添加一些芯片。其次,这在 Raspbian 上是可能的,所以这是一个软件问题,而不是硬件问题,所以它必须在 Win 10 IoT Core 上也是可能的!
【解决方案3】:

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

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

【讨论】:

  • 我认为在 Windows 10 IoT Core 中无法读取 CPU 电流消耗。
猜你喜欢
  • 1970-01-01
  • 2018-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-23
相关资源
最近更新 更多